1. 问题描述:
java代码中,连接到数据库,执行查询,成功。但是执行 清空数据库的语句,却失败。
2. 问题分析:
原因是代码用了同样的 executeQuery 方法 导致。executeQuery只能用于查询,execute方法才可以执行insert,update,delete操作。
错误代码如下:
String url="jdbc:mysql://10.18.xx.xx:3306/xxxx?useUnicode=true&characterEncoding=utf8";
String user="usernamexxx";
String password="passwordxxx";
//获取数据库连接
Connection targetConn =DriverManager.getConnection(url, user, password);
Statement targetStmt = targetConn.createStatement();
//执行查询 sql语句,此处执行成功
String sql = "Select * From device_model";
ResultSet coreRs = targetStmt.executeQuery(sql);
//执行删除 sql语句, 以下代码执行错误,因为delete操作不可以用executeQuery方法,得用execute方法
String sql2 = "Delete * From device_model";
targetStmt.executeQuery(sql2);
3. 问题解决
在执行delete,update,insert等操作时,将executeQuery方法改成execute方法即可
String sql2 = "Delete * From device_model";
targetStmt.execute(sql2);