说明:今天想要批量存储一些记录,百度了一下,自己写了出来,在这里记录一下:
先看一下mybaits的Mapper文件:
<sql id="Base_Column_List">
id, title, url, time, type, discussnum, description,
imagesurl, ishot,
source, storage_time,
status
</sql>
<insert id="batchInsert" parameterType="java.util.List" >
insert into ss_news (
<include refid="Base_Column_List" />
)
values
<foreach collection="list" index="index" item="n" separator=",">
(#{n.id},#{n.title},#{n.url},#{n.time},#{n.type},#{n.discussNum},#{n.description},#{n.imagesUrl},#{n.isHot},#{n.source},#{n.storageTime},#{n.status})
</foreach>
</insert>
对应的Service:
package cn.cupcat.service;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import cn.cupcat.dao.DaoSupport;
import cn.cupcat.models.News;
@Service
@Transactional
public class NewsService {
@Autowired
private DaoSupport dao;
public void batchInsert(List<News> list) throws Exception{
dao.save("NewsMapper.batchInsert", list);
}
}
测试:
package cn.cupcat.test;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.List;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import cn.cupcat.models.News;
import cn.cupcat.service.NewsService;
import cn.cupcat.util.DateTimeUtil;
import cn.cupcat.util.UUIDUtil;
public class TestNewsService {
ApplicationContext ac ,bc= null;
@org.junit.Before
public void before(){
bc = new ClassPathXmlApplicationContext("spring-mybatis.xml");
//ac = new ClassPathXmlApplicationContext("spring.xml");
}
public List<News> getNews() throws ParseException{
List<News> list = new ArrayList<News>();
News news = null;
int num =100;
for(int i=0;i<num;i++ ){
news = new News();
news.setId(UUIDUtil.get32UUID());
news.setTitle("测试标题");
news.setUrl("http://www.cupcat.cn");
news.setTime(DateTimeUtil.getDateTime());
news.setSource("向杨新闻");
news.setStorageTime(DateTimeUtil.getTimestamp());
list.add(news);
}
System.out.println(list);
return list;
}
@Test
public void testNewsService(){
NewsService newsService = (NewsService) bc.getBean("newsService");
try {
newsService.batchInsert(getNews());
} catch (Exception e) {
e.printStackTrace();
}
//System.out.println(newsService);
}
}
说明:这里是模拟的数据;