这是把次数计算在同一个类里
你的GoddessDao类里面虽然定义了List<Goddess>类型的集合变量,但是你的while循环中得到的只是Goddess类型的g变量的值,需要使用gs.add(g);把单个女神添加到集合中去,不然你集合始终都是空的,所以你的query()方法返回值返回的是集合也是空的,肯定遍历不出来东西,也不会报错
我的也是这个问题
查看一下数据库里面的数据
查找你要返回值也行啊 比如用布尔型来返回是否查询到需要的数据,看情况 ,你要是愿意查询方法你用void也行 只要在控制台输出点东西
这是在封装基本类型int
静态代码块 只执行一次 一般把只需要进行一次的初始化操作都放在static代码块中进行
你认真看,哪里来的com.imocc包?
MySql 里面的吗?
这里老师着重讲的是JDBC,关于异常直接throw,其实这样子做法值得商榷的。老师的目的是让听者更加关注JDBC。
你可以用那个慢倍速播放试试 我觉得效果挺好的
第一个是用构造方法初始化 ,第二个不是,当然你也可以第二个先new一下 再赋值进去,那岂不是麻烦了吗
是为了和前端好交接吗。
解决了吗,是这里的问题,dao层里面的改成Goddess g=new Goddess()就可以了,因为没有创建该对象
输Ctrl+/ 就会有提示
Integer是包装类,允许赋值为null Integer id = null 而int不可以 可以避免传入的参数万一是null,不会引起空指针异常 希望没有说错,希望对你有帮助
因为导入的文件变了
..这个方法是自己创建的..你自己去看模型层的课程..
课程不是讲了吗
preparedStatement 中预编译的sql语句可以用占位符"?"来表示,然后后面在用setObj(位置,值)来赋予sql中的值
注意类型要对应
把定义方法添加个形参就行了
你需要的修改的变量i
add(Type i){
Connection conn=DriverManager.getConnection(URL, USER, PASSWORD);
String sql="select name from person where name =? ";
PreparedStatement stmt=conn.preparedStatement(sql);
stmt.setType(1,i.);//对应sql第一个"?"的位置 ,如果有很多个参数的话 ,对应设置就行了,下标从1开始
}
Goddess类里面不就是
SET NAMES gbk;
你在创建子包的时候,要在子包名的前面加上父包的包名。然后在父包的后面用“点”加上子包。格式为:
父包名.子包名
检查一下你的URL USER和PASSWORD 看是不是写错了
static全局变量只初使化一次,防止在其他文件单元中被引用
静态初始化块是用来初始化类的,当创建类对象时会先调用静态初始化块,然后是初始化块,然后是构造方法进行初始化,设置为静态共有感觉类似于单例吧,都是为了返回一个对象。
代码排版好看一些
将 DBUtil中的 private static Connection conn=null 中的null去掉