使用preparedStatement进行增删改操作出现错误,可以进行查询,而使用Statement是可以进行增删改查操作,用错误内容百度说是权限问题,而jdbc登陆的用户是具有所有权限的,小白求解!!
提示错误信息代码:
@Test
public void preparedStatement() {
String sql = "INSERT INTO test.student(name,age) values (?,?);";
Connection c = null;
java.sql.PreparedStatement pre = null;
try {
c = getConnection();
pre.setString(1, "张琳");
pre.setInt(2, 18);
pre = c.prepareStatement(sql);
pre.executeQuery();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
close(c,pre,null);
}
}
你这截图,代码真看不清
@Test
public void preparedStatement() {
String sql = "INSERT INTO test.student(name,age) values (?,?);";
//String sql = "select * from test.student;";
Connection c = null;
java.sql.PreparedStatement pre = null;
try {
c = getConnection();
pre = c.prepareStatement(sql);
pre.setString(1, "张亚林");
pre.setInt(2, 18);
//ResultSet ResultSet=
pre.executeUpdate();
// while( ResultSet.next()){
// int id = ResultSet.getInt(1);
// String name = ResultSet.getString(2);
// int age = ResultSet.getInt(3);
// System.out.print(id);
// System.out.print(name);
// System.out.print(age);
// System.out.println();
// }
} catch (Exception e) {
// TODO Auto-generated catch block
图片说明](https://img-ask.csdn.net/upload/201607/14/1468507769_830304.png)
e.printStackTrace();
}finally{
close(c,pre,null);
}
这是发生错误的代码:
@Test
public void preparedStatement() {
String sql = "INSERT INTO test.student(name,age) values (?,?);";
Connection c = null;
java.sql.PreparedStatement pre = null;
try {
c = getConnection();
pre = c.prepareStatement(sql);
pre.executeQuery();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
close(c,pre,null);
}
}
换个数据库驱动包试一试
错误排除:
1、保证sql没错,在图形工具运行正确再放入编码。
2、保证数据库可以操作,而不是只读。
没有注册驱动?,。。。
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
Class.forName("oracle.jdbc.driver.OracleDriver");//引用Oracle数据库连接驱动包
Connection con =DriverMa......
答案就在这里:jdbc preparedstatement 使用
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?