首页 > 代码库 > Spring4-JdbcDaoSupport-insertBatch-执行批量添加操作

Spring4-JdbcDaoSupport-insertBatch-执行批量添加操作

1.创建项目,项目名称(springdemo12),如图所示

技术分享


2.在项目中创建目录(src->源码目录,test->测试目录,source->配置文件目录,lib->jar包目录),如图所示

技术分享


3.在lib中创建相应的jar包目录,主要用于区分jar包.如图所示

技术分享


4.在lib的相应的jar包目录中添加jar包.如图所示

技术分享


5.在src目录创建实体Bean Forum,包名(com.mycompany.shequ.bean),如图所示

技术分享


6.实体Bean Forum的内容如下

package com.mycompany.shequ.bean;

public class Forum {
	private int fid;
	private String name;
	public int getFid() {
		return fid;
	}
	public void setFid(int fid) {
		this.fid = fid;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
}


7.在src目录创建接口ForumDao,包名(com.mycompany.shequ.dao)如图所示

技术分享


8.接口ForumDao的内容如下

package com.mycompany.shequ.dao;

import java.util.List;

import com.mycompany.shequ.bean.Forum;


public interface ForumDao {
	public void insertBatch(final List<Forum> forumList);
}


9.在src目录中创建ForumDao的实现类ForumDaoImpl,包名(com.mycompany.shequ.dao.impl),如图所示

技术分享


10.ForumDao的实现类ForumDaoImpl的内容如下

package com.mycompany.shequ.dao.impl;


import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.List;

import org.springframework.jdbc.core.BatchPreparedStatementSetter;
import org.springframework.jdbc.core.support.JdbcDaoSupport;

import com.mycompany.shequ.bean.Forum;
import com.mycompany.shequ.dao.ForumDao;

public class ForumDaoImpl extends JdbcDaoSupport implements ForumDao {

	@Override
	public void insertBatch(final List<Forum> forumList) {
		String sql = "insert into hnsq_forum(name) values(?)";
		
		getJdbcTemplate().batchUpdate(sql,new BatchPreparedStatementSetter() {
			
			@Override
			public void setValues(PreparedStatement ps, int i) throws SQLException {
				
				Forum forum = forumList.get(i);
				System.out.println(forum.getName());
				ps.setString(1,forum.getName());
			}
			
			@Override
			public int getBatchSize() {
				return forumList.size();
			}
		});
	}

}


11.在source目录中创建配置文件spring-datasource.xml,如图所示

技术分享


12.配置文件spring-datasource.xml的内容如下

<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
	http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

	<bean id="dataSource"
		class="org.springframework.jdbc.datasource.DriverManagerDataSource">

		<property name="driverClassName" value="http://www.mamicode.com/com.mysql.jdbc.Driver" />
		<property name="url" value="http://www.mamicode.com/jdbc:mysql://localhost:3306/b_shequ_two" />
		<property name="username" value="http://www.mamicode.com/root" />
		<property name="password" value="" />
	</bean>
</beans>


13.在source目录中创建配置文件applicationContext.xml,如图所示

技术分享


14.配置文件applicationContext.xml的内容如下

<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
	http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
	
	<import resource="spring-datasource.xml" />

	<bean id="forumDao" class="com.mycompany.shequ.dao.impl.ForumDaoImpl">
		<property name="dataSource" ref="dataSource" />
	</bean>
</beans>


15.在test目录中创建ForumDaoImplTest测试类,包名(com.mycompany.shequ.dao.impl),如图所示

技术分享


16.ForumDaoImplTest测试类的内容如下

package com.mycompany.shequ.dao.impl;

import java.util.ArrayList;
import java.util.List;

import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.mycompany.shequ.bean.Forum;
import com.mycompany.shequ.dao.ForumDao;

public class ForumDaoImplTest {
	@Test
	public void testInsertBatch(){
	    ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
		
	    ForumDao forumDao = (ForumDao) context.getBean("forumDao");
	    
	    List<Forum> forumList = new ArrayList<Forum>();
	    Forum forum1 = new Forum();
	    forum1.setName("test1");
	    
	    Forum forum2 = new Forum();
	    forum2.setName("test2");
	    
	    forumList.add(forum1);
	    forumList.add(forum2);
	    
	    forumDao.insertBatch(forumList);
	}
}


17.运行测试类中的testInsertBatch方法,运行结果如图所示

技术分享

本文出自 “素颜” 博客,请务必保留此出处http://suyanzhu.blog.51cto.com/8050189/1909251

Spring4-JdbcDaoSupport-insertBatch-执行批量添加操作