java 向数据库插入记录

来源:互联网 发布:东华软件新闻 编辑:程序博客网 时间:2024/06/07 11:18

通过Statement

/** *  * @author Administrator *接口Statement *所有已知子接口:  *CallableStatement, PreparedStatement (一般使用这个) *对象由Connection.createStatement()创建 public class Insert {public static void main(String[] args) {new Insert();}Insert(){try {Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;database=student", "sa","123");Statement st = conn.createStatement();st.execute("insert into t_student(id,name,sex,face,courtyard,classs,dorm,tel) values('16','6','6','6','6','6','6','213e')");System.out.println("插入成功");st.close();conn.close();} catch (Exception e) {e.printStackTrace();}}}


通过PreparedStatement

/** *  * @author Administrator *PreparedStatement接口   表示预编译的 SQL 语句的对象 *比Statement的好处 *1、相对比较安全,可以防止sql注入 *2、有预编译功能,相同操作批量数据效率较高public class Insert {public static void main(String[] args) {new Insert();}Insert(){try {Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;database=student", "sa","123");PreparedStatement pre = conn.prepareStatement("insert into t_student(id,name,sex,face,courtyard,classs,dorm,tel) values(?,?,?,?,?,?,?,?)");pre.setString(1, "lisi");pre.setString(2, "12");//也可以使用setObject方法,避免判断参数的麻烦pre.setObject(3, "32");pre.setObject(4, "32");pre.setObject(5, "32");pre.setObject(6, "32");pre.setObject(7, "32");pre.setObject(8, "32");System.out.println("插入成功");pre.close();conn.close();} catch (Exception e) {e.printStackTrace();}}} 

使用Statement插入20000条记录,不使用PreparedStatement因为预处理消耗较大

/**  * @author Administrator *批量处理, 一次性插入大量数据 *1 关闭自动提交模式 conn.setAutoCommit(false); *2通过st.addBatch()将给定的 SQL 命令添加到此 Statement 对象的当前命令列表中。 *还要 通过调用方法 executeBatch 批量执行此列表中的命令。  *3 提交 conn.commit(); */public class Insert {public static void main(String[] args) {new Insert();}Insert(){try {Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");Connection conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;database=student", "sa","123");Statement st = conn.createStatement();conn.setAutoCommit(false);for (int i=0; i<20000; i++){st.addBatch("insert into t_student(id,name,sex,face,courtyard,classs,dorm,tel) values('"+i+"','姓名','8','9','6','6','6','213e')");System.out.println(i);}st.executeBatch();conn.commit();ResultSet re = st.executeQuery("select * from t_student");while(re.next()){System.out.println(re.getString(1));}System.out.println("插入成功");st.close();conn.close();} catch (Exception e) {e.printStackTrace();}}}



原创粉丝点击