EmployeeMapper.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="cn.bdqn.dao.EmployeeMapper"> <select id="getEmployeeList" resultType="Employee"> select * from Employee </select> <insert id="addEmployee" parameterType="Employee"> insert into employee (sn,name,gender) values (#{sn},#{name},#{gender}) </insert> <update id="modifyEmployee" parameterType="Employee"> update employee <set> <if test="sn != null"> sn = #{sn},</if> <if test="name != null"> name = #{name},</if> <if test="gender != null"> gender = #{gender}</if> </set> where id = #{id} </update> <delete id="deleteEmployee" parameterType="Employee"> delete from employee where id = #{id} </delete> </mapper>
Employee.java
public class Employee { private Integer id; private String sn; private String name; private String gender; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getSn() { return sn; } public void setSn(String sn) { this.sn = sn; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } }
测试类
public class EmployeeDaoTest { private SqlSessionTemplate sqlSessionTemplate; protected ApplicationContext ctx = null; private EmployeeDaoTest test; private Logger logger = Logger.getLogger(EmployeeDaoTest.class); @Before public void setUp() throws Exception{ ctx = new ClassPathXmlApplicationContext("applicationContext-mybatis.xml"); test = (EmployeeDaoTest)ctx.getBean("employeeDaoTest"); } @Test public void getEmployeeListTest() { List<Employee> list = test.sqlSessionTemplate.selectList("cn.bdqn.dao.EmployeeMapper.getEmployeeList"); logger.debug("testGetEmployeeList---> " + list.size()); } @Test public void addEmployeeTest(){ Employee employee = new Employee(); employee.setSn("CESHI"); employee.setName("测试"); employee.setGender("男"); int flag = test.sqlSessionTemplate.insert("cn.bdqn.dao.EmployeeMapper.addEmployee", employee); Assert.assertEquals(1, flag); } @Test public void modifyEmployeeTest(){ Employee employee = new Employee(); employee.setId(8); employee.setSn("CESHI888"); employee.setName("测试888"); employee.setGender("男"); int flag = test.sqlSessionTemplate.update("cn.bdqn.dao.EmployeeMapper.modifyEmployee", employee); Assert.assertEquals(1, flag); } @Test public void deleteEmployeeTest(){ Employee employee = new Employee(); employee.setId(8); int flag = test.sqlSessionTemplate.delete("cn.bdqn.dao.EmployeeMapper.deleteEmployee", employee); Assert.assertEquals(1, flag); } public SqlSessionTemplate getSqlSessionTemplate() { return sqlSessionTemplate; } public void setSqlSessionTemplate(SqlSessionTemplate sqlSessionTemplate) { this.sqlSessionTemplate = sqlSessionTemplate; } }
mybatis-config.xml
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <typeAliases> <!--这里给实体类取别名,方便在mapper配置文件中使用--> <package name="cn.bdqn.pojo"/> </typeAliases> </configuration>
applicationContext-mybatis.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"> <!-- Properties文件读取配置,base的properties --> <context:property-placeholder location="classpath:jdbc.properties"/> <!-- JNDI获取数据源(使用dbcp连接池) --> <!-- 因为我们使用的这个数据源是采用 dbcp连接池,对于连接池来说,整个应用中只有一个, 所以作用域需要设置成单例 因为获取数据源是非常消耗性能,所以我们也要采用单例模式--> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close" scope="singleton"> <property name="driverClassName" value="${driverClassName}" /> <property name="url" value="${url}" /> <property name="username" value="${username}" /> <property name="password" value="${password}" /> </bean> <!-- 事务配置 在需要事务管理的地方加@Transactional 注解或者AOP进行事务处理--> <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource" /> </bean> <!-- 配置mybitas SqlSessionFactoryBean --> <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource" /> <property name="configLocation" value="classpath:mybatis-config.xml" /> <property name="mapperLocations" value="classpath:cn/bdqn/dao/*.xml"/> </bean> <!-- 配置SqlSessionTemplate --> <bean id="sqlSessionTemplate" class="org.mybatis.spring.SqlSessionTemplate"> <!-- spring使用构造的方法进行注入 --> <constructor-arg name="sqlSessionFactory" ref="sqlSessionFactory" /> </bean> <!-- 把sqlSessionTemplate注入测试类 --> <bean id="employeeDaoTest" class="cn.bdqn.test.EmployeeDaoTest"> <property name="sqlSessionTemplate" ref="sqlSessionTemplate"/> </bean> </beans>
加个日志文件和数据文件就好了。