java往SQL Server中插入数据插不进去

pf711 2013-04-13 11:30:43
sql中生成了一个用户表,有4个字段,分别是ID(数据库中设定了自动生成,就是为了计数用),身份(varchar型数据),账号(varchar型数据),密码(varchar型数据),但是利用java语句往里边插不进数据。请各位前辈帮忙给指点一下吧,谢谢你们了,
代码如下“
public void connectJDBC(){
Connection conn = null;
PreparedStatement pstmt = null;
String str[] = {"admin","200506095430","123"}


try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=学生选课系统","sa","123");

pstmt = conn.prepareStatement("insert into table values (?,?,?)");
pstmt.setInt(1,str[0]);
pstmt.setInt(2,str[1]);
pstmt.setInt(3,str[2]);

pstmt.executeUpdate();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}catch (SQLException e) {
e.printStackTrace();
}finally{
try{
if(pstmt != null){
pstmt.close();
pstmt = null;
}
if(conn != null){
conn.close();
conn = null;
}
}catch (SQLException e){
e.printStackTrace();
}
}

System.out.println("lianshangshujnuku");//调试性语句
}
...全文
324 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
ydb7459022 2013-04-15
  • 打赏
  • 举报
回复
String str[] = {"admin","200506095430","123"} 和 pstmt.setInt(1,str[0]); pstmt.setInt(2,str[1]); pstmt.setInt(3,str[2]); 这里冲突,上面的是String类型的,下面的插入式Int类型的,改下吧,一致就好!!
attach_finance 2013-04-15
  • 打赏
  • 举报
回复
首先是往PreparedStatement里面传参就错了,setInt只能传int类型的,你可能会需要setString,另外如果你数据库里面的字段不是varchar类型的,传参的时候可能需要转换参数,如:pstmt.setInt(3,Integer.paserInt(str[2]));
okliuzhiyuan 2013-04-15
  • 打赏
  • 举报
回复
pstmt.setInt(1,str[0]); pstmt.setInt(2,str[1]); pstmt.setInt(3,str[2]); 不要把字符串赋值当int赋值,‘admin’强转string也会报错
nicholasbobo 2013-04-15
  • 打赏
  • 举报
回复
insert的时候,为避免出错,应该尽量将字段和值一一对应指定,你这明显就是因为没有指定字段,将String型插到ID列了,而ID列是整型的,这就报错了。正确的应该是: insert into table(身份,账号,密码) values (?,?,?)
分不分布式 2013-04-15
  • 打赏
  • 举报
回复
太不专业了。你说错了,错误原因贴出来。。。从语句可以看出,是连接数据库错误,还是插入语句错误
isJeson 2013-04-15
  • 打赏
  • 举报
回复
数组是String类型 PreparedStatement 的setInt()方法能插String类型的数据? 写错了吧,再说报错的Exception消息打出来呀,不然怎么知道你哪里错了
珠江的风 2013-04-14
  • 打赏
  • 举报
回复
系统报啥错啊大哥,你总得告诉下吧
石馨宇 2013-04-14
  • 打赏
  • 举报
回复
我还没学到这里 先给你顶顶哈 把你的问题mark下来,我感觉以后我会遇到的
ddplayer12 2013-04-14
  • 打赏
  • 举报
回复

pstmt.setString(1,str[0]);
pstmt.setString(2,str[1]);
pstmt.setString(3,str[2]);
试试这样呢?
pf711 2013-04-14
  • 打赏
  • 举报
回复
出于无奈只能自己顶一下了
pf711 2013-04-14
  • 打赏
  • 举报
回复
给位前辈帮帮忙吧,谢谢你们了

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧