我正在处理批量准备声明。
import java.sql.*;
import java.util.Arrays;
public class QryBtch {
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost/test";
static final String USER = "root";
static final String PASS = "roottoor";
public static void main(String[] args) {
Connection conn = null;
int[] results = null;
try{
Class.forName("com.mysql.jdbc.Driver");
System.out.println("Connecting to database...");
conn = DriverManager.getConnection(DB_URL,USER,PASS);
PreparedStatement ps = null;
String query = "insert into mytable (Emp_ID, Emp_Name) values (?,?)";
ps = conn.prepareStatement(query);
String name1 = "Name1";
String name2="Big Big Name Name 1"; //longer than column length
String name3="Name2";
ps.setInt(1, 1);
ps.setString(2, name1);
ps.addBatch();
ps.setInt(1, 2);
ps.setString(2, name2);
ps.addBatch();
ps.setInt(1, 3);
ps.setString(2, name3);
ps.addBatch();
results = ps.executeBatch();
System.out.println(Arrays.toString(results));
conn.close();
}catch(SQLException se){
System.out.println(Arrays.toString(results));
se.printStackTrace();
}catch(Exception e){
e.printStackTrace();
}finally{
try{
if(conn!=null)
conn.close();
}catch(SQLException se){
se.printStackTrace();
}
}
System.out.println("Goodbye!");
}
}
我正在尝试插入名称定义为8个字符的表中。正如所料,我的第二个陈述失败了。是否可以跟踪失败的语句或错误处理的绑定值。