其中通过Connection建立连接,Connection是一个接口类 。其功能是与数据库进行连接(会话) 。建立Connection接口类对象:Connection conn =DriverManager.getConnection(url, user, password);其中url的格式要求为:
- jdbc:mysql://:/?property1=value1&property2=value2…
- host为主机地址或者域名,本地可以用localhost或127.0.0.1.
- database_name为MySQL中创建数据库名,本案例中数据库名为boxuegu 。
- property用来配置一些例如编码、时区等属性 。
单个插入MySQL插入的sql语句很简单:
insert into 表名( 字段1, 字段2,...字段n)value( 值1, 值2,...值n );
我们JDBC中进行插入操作使用的sql满足上述规范,在sqlmanage中编写insertStudent(student student)函数用来插入单个学生记录,具体函数如下: public void insertStudent(student student) throws SQLException { //创建sql语句 String sql="insert into student(name,age,high)value(?,?,?)"; //PreparedStatement能够对SQL语句进行预编译,这样防止了 SQL注入 提高了安全性 。 PreparedStatement ps = con.prepareStatement(sql); ps.setString(1,student.getName()); ps.setInt(2,student.getAge()); ps.setInt(3,student.getHigh()); //执行 sql 因为这里插入操作就不对结处理 ps.executeUpdate(); ps.close(); }
在test类中的编写insertTest()函数,用来测试插入三条学生的记录:@Testpublic void insertTest() throws SQLException, ClassNotFoundException { sqlmanage sqlmanage=new sqlmanage(); sqlmanage.insertStudent(new student("bigsai",22,180)); sqlmanage.insertStudent(new student("bigpian",21,165)); sqlmanage.insertStudent(new student("doudou",20,160)); }
执行完毕刷新navicat中student表你会发现数据被成功插入了:文章插图
批量插入如果同时有100组数据或者更多若干组数据让你插入你会怎么操作?
- 循环一个一个的插入
- 批处理一次插入多个
批量处理相比循环的单个单个处理起来省了很多时间,提高了系统效率 。所以当遇到较多数据时可以选择多个插入 。
public void insertStudents(student students[]) throws SQLException { this.con.setAutoCommit(false);//不自动提交 String sql="insert into student(name,age,high)value(?,?,?)"; PreparedStatement ps =con.prepareStatement(sql); for(int i=0;i<students.length;i++) { ps.setString(1,students[i].getName()); ps.setInt(2,students[i].getAge()); ps.setInt(3,students[i].getHigh()); ps.addBatch(); if(i%1000==0) { ps.executeBatch(); } } ps.executeBatch(); con.commit(); ps.close(); }
其中:- con.setAutoCommit(false)意为不自动提交,因为我们在批量处理的时候一般手动提交提高效率 。
推荐阅读
- 两期比重差公式推导-平均数增长率公式和两期比重差公式-
- 尤克里里新手入门须知
- 不知不觉已是容器化时代,这篇文章带你快速入门Docker容器技术
- 龙井茶菊花鱼,越南对东盟各国的茶鱼出口量猛增
- 乳腺小叶增生如何治疗
- 为什么10个女人9个乳腺增生 治疗乳腺增生多做这运动
- 跑步会有增高作用吗?
- 《学习强国》怎么快速增分?
- 安徽以鱼泡茶,越南对东盟各国的茶鱼出口量猛增
- 止汗剂会增加乳腺癌风险吗