慕仰0033664
你的ID定义的是Goddess类型,你这里输入的应该是id.getId()
我是北方栖姬
执行了 excuteQuery() 方法后返回的是查询到的记录的集合,以行为单位,然后通过这集合的 next() 方法一条条取出数据,也就是每次取出一个记录,然后对记录的每个字段分别操作。
qq_一曲离殇丶笑看人世繁华_3
特别注意SQL语句的符号和字符串拼接时若两个SQL字符串必须空格的注意空格,再就是检查一下数据库是否正确创建。
比如很容易把SQL语句写成以下这样:
String sql = "update imooc_goddess set user_name,...";
当输入中文的符号很难辨别,见你你在SQL上执行一遍update以下数据,再复制到Java代码改成参数形式。
以下是参考代码,实测没问题:
String sql = " update imooc_goddess " + " set user_name=?,sex=?,age=?,birthday=?,email=?,mobile=?, " + " update_user=?,update_date=current_date(),isdel=? " + " where id=? ";
慕侠302652
在建立数据库和表的设置注意设置编码方式为utf8
在连接数据库时也标明编码方式:"jdbc:mysql://127.0.0.1:3306/imooc?useUnicode=true&characterEncoding=utf8"
qq_慕移动215866
你之前的代码没注释掉吧
苍蝇拍拍
应该把报错贴出来啊
qq_MEGALOVANIA_0
g忘记实例化了
姚宝源
有多少输出多少,是因为你查询语句没有限制条件。每行记录数据都是相同,有以下两个可能:
你插入了相同的数据源
在插入新数据时,没有清空数据对象。即在每次新增数据时,需要将数据对象置为null(给默认值)。
慕圣6698645
public class Test(){
public static void main(String[],args){
System.out.println("这个错误是提示你的sql语句有问题,而且是在这一句的附近有问题!");
}
}
qq_孔洁钰May_03759002
原因是MySQL在高版本需要指明是否进行SSL连接。解决方案如下:
在mysql连接字符串url中加入ssl=true或者false即可,如下所示。
url=jdbc:mysql://127.0.0.1:3306/framework?characterEncoding=utf8&useSSL=true
初级阶段
qq_不囧_0
试着写了一下,两种都对的。
String sql="" +
" select * from imooc_goddess" +
" where user_name like ? and mobile like ? and email like ? ";
System.out.println("sql:"+sql);
PreparedStatement ptmt=conn.prepareStatement(sql);
泥土的诉说
不是前边补空格吗 String sql里面每一行前边
慕九州1570938
// 拼写sql语句
String sql = "" +
" selete * from imooc_goddess "
+ " set user_name=?,sex=?,age=?,birthday=?,email=?,mobile=?, "
+ " update_user=?,update_date=current_date(),isdel=? "
+ " where id=? ";
?在第一行要有,后面要给这些属性赋值,第一个属性赋值为任意类型的字符串,所以要用?表示
秦家小小神
我自己找到如何遍历女神信息的方法了!老师估计是漏录了部分代码。
以下是GoddessAction中,利用Field类遍历所查找女神信息的方法:
for(int i=0;i<gs.size();i++){
System.out.println("******第"+(i+1)+"条记录******");
for(Field f:gs.get(i).getClass().getDeclaredFields()){
//private字段需要先获取权限
f.setAccessible(true);
//注意get方法括号内是类类型的实例(obj或类名.Class.newInstance())
System.out.println(f.getName()+"="+f.get(gs.get(i)));//之前报错写的是f.get(f)
}
}
moummm
这是SQLException,我猜你应该是在更新信息的时候出的,表中id最大的为3,但是你要把数据更新在id位4的上面
孤诉丶
泰国人妖
爱学习的青柠气泡
update 不需要into
qq_nevergiveup_15
主要是讲的JDBC,其他的知识点可以在其他课上先学习。还有,学习的时候最好一边听一边动手跟着写。
慕粉1556379847
exception包含SQLexception,也就是说SQLexception是exception的子集
培根熏肉
他是卸载引号里面的,怎么会报错。。
慕少9021734
每次返回的都是一个结果集,哪怕结果集是只有一个元素
weibo_肖邦在对我微笑_0
问题已经被我查找API帮助文档解决了,删除功能代码块没有问题,出问题的是查询功能代码块里面,executeQuery方法不应该传入参数,将括号里面的String字符串去掉即可,希望各位对各位同学有帮助。
qq_爱的海洋_03445206
没刷新吧
花道人
update女神信息报错了



花道人
你指定了10个问号(占位符),却只赋了9个值,所以出错了哦。
慕尼黑2215218
Adam静栖
。。。同学你的想法很好,据我所知,已经有这样子的框架实现了,就是DBUtils框架。实现起来也不复杂,很好用,有兴趣的话,去学习下也很不错。
望采纳,谢谢。
追梦21
检查你的数据库中的数据,ID=8是否存在
qq__3590
执行语句的参数id没传进去,把ps=setInt(1,id)放在executequuery前面