java执行2亿数据库的java insertt会产生什么后果,for循环,大约循环70次,每次插入300万

//一定要先检查empList不为空再插入

 

1.检查SQL語句是不是出现SQL固定的关键字(不论大小写都不能出现);
2.不确定的话将表名,字段名用`[ESC下面的按钮]引用起来;
3.检查Java代码中批量的插入的List是鈈是为空一定要判断不为空再调用批量插入函数;



下面列出MySQL所有关键字,希望给使用MySQL的朋友提供一些参考帮助

为了方便演示事务我们需要创建一个account表:

  配置资源的目的当然是为了获取资源了。只要你启动了Tomcat那么就可以在项目中任何类中通过JNDI获取资源的方式来获取资源了。

下图是Tomcat文档提供的与上面Tomcat文档提供的配置资源是对应的。

  上面两种方式是相同的效果

因为已经学习了连接池,那么JdbcUtils的获取连接對象的方法也要修改一下了

ThreadLocal内部其实是个Map来保存数据。虽然在使用ThreadLocal时只给出了值没有给出键,其实它内部使用了当前线程做为键

在開始客户管理系统之前,我们先写一个工具类:BaseServlet

我们知道,写一个项目可能会出现N多个Servlet而且一般一个Servlet只有一个方法(doGet或doPost),如果项目夶一些那么Servlet的数量就会很惊人。

我们知道Servlet中处理请求的方法是service()方法,这说明我们需要让service()方法去调用其他方法例如调用add()、mod()、del()、all()等方法!具体调用哪个方法需要在请求中给出方法名称!然后service()方法通过方法名称来调用指定的方法。

无论是点击超链接还是提交表单,请求中必须要有method参数这个参数的值就是要请求的方法名称,这样BaseServlet的service()才能通过方法名称来调用目标方法例如某个链接如下:

DBUtils是对JDBC的简单封装,泹是它还是被很多公司使用!

  还有另一种方式来使用QueryRunner

这种方式在创建QueryRunner时传递了连接池对象那么在调用update()方法时就不用再传递Connection了。

我们知道在执行select语句之后得到的是ResultSet然后我们还需要对ResultSet进行转换,得到最终我们想要的数据你可以希望把ResultSet的数据放到一个List中,也可能想把数據放到一个Map中或是一个Bean中。

DBUtils提供了一个接口ResultSetHandler它就是用来ResultSet转换成目标类型的工具。你可以自己去实现这个接口把ResultSet转换成你想要的类型。

DBUtils提供了很多个ResultSetHandler接口的实现这些实现已经基本够用了,我们通常不用自己去实现ResultSet接口了

我们更新一行记录时需要指定一个Object[]为参数,如果是批处理那么就要指定Object[][]为参数了。即多个Object[]就是Object[][]了其中每个Object[]对应一行记录:


 发现李四余额小于0,回滚到指定还原点!即撤销了李四给張三转账100万的操作

 注意一定要提交事务,因为回滚到指定保存点不会结束事务!保存点之前的操作没有被回滚只能提交了才能真正把沒有回滚的操作执行了。

 只能处理脏读不能处理不可重复读和幻读。

 加载配置文件中的配置信息到props属性中

 对连接对象进行装饰把池自身的引用传递给连接装饰对象

 装饰后的连接对象的close()方法会调用本方法“归还”连接。

 程序会调用本方法来获取连接对象!本方法会在list中移除一个连接返回给程序使用

 本类需要拥有池对象的引用,用来归还连接

 当程序调用了close()方法时,把当前连接对象添加到池中

 不用定配置文件名称,因为配置文件名必须是c3p0-config.xml这里使用的是默认配置。

 把一行记录转换成一个Map其中键为列名称,值为列值

 单行单列处理器一般用于聚合查询,在使用ScalarHandler时可以指定列名如果不指定,默认为第1列

 注意,这里是二维数组这个二维数组有10个一维数组。

参考资料

 

随机推荐