JdbcTemplate
- 它是spring框架提供的一个对象,这个对象对原始的jdbc api做了简单封装,提供了很多可以操作关系型数据库的api。
- 它的好处就是通过sql+参数的形式进行模板化了编程,比如还有HibernateTemplate,RedisTemplate,JmsTemplate等等
rewriteBatchedStatements参数
- MySQL Jdbc驱动在默认情况下会逐条执行一组sql语句,那么性能就不会好
- 当在url上指定rewriteBatchedStatements=true, 驱动才会帮你批量执行sql,如
jdbc:mysql://ip:port/db_name?useUnicode=true&characterEncoding=UTF-8&rewriteBatchedStatements=true
- 这个参数对INSERT/UPDATE/DELETE都有效
- 驱动所做的事就是把多条sql语句累积起来再一次性发出去,比如发送10次insert 请求变成发送一次请求,内容为"insert into
t (…) values (…) , (…), (…)"
创建JdbcTemplate对象
public static JdbcTemplate connectDataSource(ConnectVo dataBaseInfo) throws SQLException {
DruidDataSource dataSource = new DruidDataSource();
String url = "";
switch (dataBaseInfo.getDbType())
{
case "DS_MYSQL":
url = String.format("jdbc:mysql://%s:%s/%s?useSSL=false&useUnicode=true&characterEncoding=UTF-8&rewriteBatchedStatements=true", dataBaseInfo.getIp(), dataBaseInfo.getPort(), dataBaseInfo.getSchemal());
break;
case "DS_ORACLE":
url = String.format("jdbc:oracle:thin:@%s:%s/%s"