public EntityManager getEntityManager() { return em; } //其实就是for循环、使⽤EntityManager的persist⽅法循环保存⽽已 @Override public void saveList(List resultList) { for (int i = 0; i < (); i++) { T t = (i); t(t); } }}改造后JdbcTemplateJdbcTemplate提供的主要⽅法:1. execute⽅法:可以⽤于执⾏任何SQL语句,⼀般⽤于执⾏DDL语句;2. update⽅法及batchUpdate⽅法:update⽅法⽤于执⾏新增、修改、删除等语句;batchUpdate⽅法⽤于执⾏批处理相关语句;3. query⽅法及queryForXXX⽅法:⽤于执⾏查询相关语句;4. call⽅法:⽤于执⾏存储过程、函数相关语句。我们只需要在使⽤jdbcTemplate类中使⽤@Autowired进⾏注⼊即可 public void batchSave(){ List
public EntityManager getEntityManager() { return em; } //其实就是for循环、使⽤EntityManager的persist⽅法循环保存⽽已 @Override public void saveList(List resultList) { for (int i = 0; i < (); i++) { T t = (i); t(t); } }}改造后JdbcTemplateJdbcTemplate提供的主要⽅法:1. execute⽅法:可以⽤于执⾏任何SQL语句,⼀般⽤于执⾏DDL语句;2. update⽅法及batchUpdate⽅法:update⽅法⽤于执⾏新增、修改、删除等语句;batchUpdate⽅法⽤于执⾏批处理相关语句;3. query⽅法及queryForXXX⽅法:⽤于执⾏查询相关语句;4. call⽅法:⽤于执⾏存储过程、函数相关语句。我们只需要在使⽤jdbcTemplate类中使⽤@Autowired进⾏注⼊即可 public void batchSave(){ List batchArgs=new ArrayList(); (new Object[]{1,"⼩明",21}); (new Object[]{2,"⼩红",22}); (new Object[]{3,"露西",23}); String sql = "insert into user (username,password) values (?,?)"; pdate(sql, batchArgs);}以上基本实现了批量插⼊功能,但是当数据库字段⽐较多的时候,再以?占位符的形式编码的话就可能不是那么好⼀ ⼀对应了,这⾥spring还提供了SimpleJdbcTemplate(Spring3.1+ 以后被标记为过时,到Spring 4.3则被完全移除,后⾯这个完全能满⾜需求)和NamedParameterJdbcTemplate模板引擎。NamedParameterJdbcTemplate相信使⽤过Hibernate的同学都知道,HQL中可以使⽤?或者:*的⽅式在外部配置查询参数。在 Spring JDBC 框架中,也提供了⼀种绑定SQL 参数的⽅式,使⽤具名参数(named parameter)。我们只需要在使⽤NamedParameterJdbcTemplate类中使⽤@Autowired进⾏注⼊即可:@Autowiredprivate NamedParameterJdbcTemplate namedParameterJdbcTemplate;批量插⼊操作public void batchSave(){ List list = new ArrayList(); //新增⽤户 (new AppStudent(1,"张三",21)); (new AppStudent(1,"李四",22)); (new AppStudent(1,"王⼆⿇⼦",23)); //批量转数组 SqlParameterSource[] beanSources = Batch(y()); String sql = "INSERT INTO app_student(class_id,name,age) VALUES (:classId,:name,:age)"; pdate(sql, beanSources);}
发布评论