首页 新闻 搜索 专区 学院

JDBA——java连接oracle问题

0
悬赏园豆:20 [已解决问题] 解决于 2015-09-19 19:37

我想做一个简单的测试jdbc连接的问题,连接成功后,插入数据总是不成功,但是没有语法错误,系统也不提示错误,我断点测试了下,发现程序运行到pstm=con.prepareStatement(sql);这一行之后就不再走了,测试单元的绿条也不走,这时为什么,代码没什么错误啊,哪位大神告诉我?

public void insertData(Student stu) {
int num=0;//返回影响的行数
this.openCon();
//String sql="insert into student select "+stu.getSno()+",'"+stu.getName()+"'," +
//""+stu.getAge()+",'"+stu.getSno()+"' from dual";
//String sql="insert into student select "+stu.getSno()+",'"+stu.getName()+"',"+stu.getAge()+",'"+stu.getSex()+"from dual";
String sql="insert into student values("+stu.getSno()+",'"+stu.getName()+"',"+stu.getAge()+",'"+stu.getSex()+"')";
try {
pstm=con.prepareStatement(sql);
num=pstm.executeUpdate();
} catch (SQLException e) {
e.printStackTrace();
}
System.out.println(num+"行已插入");
}

问题补充:

测试单元

@Test

public void testInsert(){

dao.insertData(new Student(1001,"博智星",21,"男"));
}

连接数据库

public void openCon() {
//2句话完成操作
try {
//1.加载驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
//2.创建连接
con=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","scott","123456");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

博智星的主页 博智星 | 初学一级 | 园豆:175
提问于:2015-09-19 18:30
< >
分享
最佳答案
0

刚才一直又在测试,我把insertData的返回类型改为int 就可以操作了,真的好奇怪!

然后又把int改为void,也可以操作了,天啊!

这是为什么,我有点不能接受了!

博智星 | 初学一级 |园豆:175 | 2015-09-19 19:35
其他回答(1)
0

环境的问题吧,代码是没有问题的,在别人的机器上试验一下吧

收获园豆:20
竹沥半夏 | 园豆:296 (菜鸟二级) | 2015-09-19 19:35
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册