mybatis和spring集成
一、加入spring 和mybatis的jar包,spring的依赖包,mybatis-spring.jar,数据库驱动包
二、配置spring
1、配置数据源dataSource
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver"></property> <property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis"></property> <property name="username" value="root"></property> <property name="password" value="root"></property> </bean>
2、配置sqlSessionFactory
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> <property name="dataSource" ref="dataSource"></property> <property name="typeAliasesPackage" value="com.hy.mybatis.entity"></property> </bean>
3、配置映射文件扫描bean
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> <property name="basePackage" value="com.hy.mybatis.mapper"></property> <property name="sqlSessionFactory" ref="sqlSessionFactory"></property> </bean>
4、配置spring的事务管理器
<bean name="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="dataSource"></property> </bean>
5、启动注解事务
<tx:annotation-driven transaction-manager="transactionManager"/>
三、创建一个bean
package com.hy.mybatis.entity; public class DUser { private int id; private String name; private int age; public DUser(int id, String name, int age) { super(); this.id = id; this.name = name; this.age = age; } public DUser() { super(); } @Override public String toString() { return "DUser [id=" + id + ", name=" + name + ", age=" + age + "]"; } public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
四、创建一个接口
package com.hy.mybatis.mapper; import com.hy.mybatis.entity.DUser; public interface UserMapper { void save(DUser user); void delete(int id); void update(DUser user); DUser findUserById(int id); }
五、创建映射文件
<?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="com.hy.mybatis.mapper.UserMapper"> <insert id="save" parameterType="DUser"> insert into d_user(name,age) values(#{name},#{age}); </insert> <delete id="delete"></delete> <update id="update"></update> <select id="findById"></select> </mapper>
注意:1、映射文件的文件名和接口类名相同;2、namespace必须是接口的全类名;3、id必须和接口对应的方法名相同
六、创建一个测试类
package com.hy.mybatis.test; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import com.hy.mybatis.entity.DUser; import com.hy.mybatis.mapper.UserMapper; @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration("/beans.xml") public class SpringBatisTest { @Autowired private UserMapper userMapper; @Test public void testSave() { userMapper.save(new DUser(-1, "hy", 28)); } }
邮箱:wangh_2@sina.com