步骤一:在pom文件中添加相关的jar包坐标依赖
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>5.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.6</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.7</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.2</version>
</dependency>
<!--添加mybatis的坐标依赖-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.6</version>
</dependency>
<!--添加mybatis整合Spring的坐标依赖-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>2.0.2</version>
</dependency>
</dependencies>
步骤二:编写实体类
public class User implements Serializable{
/*
* 两个保持一致:数据类型和名称
* */
private int userId; // 主键 id
private String userName; // 用户名
private Integer userAge; // 年龄
private String userAddress; // 地址
private String userGender; // 性别
private Integer userRid; // 角色id值
private Integer userDid; // 部门id值
private Department department;// association
//@One
public Department getDepartment() {
return department;
}
public void setDepartment(Department department) {
this.department = department;
}
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public Integer getUserAge() {
return userAge;
}
public void setUserAge(Integer userAge) {
this.userAge = userAge;
}
public String getUserAddress() {
return userAddress;
}
public void setUserAddress(String userAddress) {
this.userAddress = userAddress;
}
public String getUserGender() {
return userGender;
}
public void setUserGender(String userGender) {
this.userGender = userGender;
}
public Integer getUserRid() {
return userRid;
}
public void setUserRid(Integer userRid) {
this.userRid = userRid;
}
public Integer getUserDid() {
return userDid;
}
public void setUserDid(Integer userDid) {
this.userDid = userDid;
}
public User(int userId, String userName, Integer userAge, String userAddress, String userGender, Integer userRid, Integer userDid) {
this.userId = userId;
this.userName = userName;
this.userAge = userAge;
this.userAddress = userAddress;
this.userGender = userGender;
this.userRid = userRid;
this.userDid = userDid;
}
public User() {
}
@Override
public String toString() {
return "User{" +
"userId=" + userId +
", userName='" + userName + '\'' +
", userAge=" + userAge +
", userAddress='" + userAddress + '\'' +
", userGender='" + userGender + '\'' +
", userRid=" + userRid +
", userDid=" + userDid +
", department=" + department +
'}';
}
}
步骤三:编写数据库连接配置信息(db.properties)
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql:///mybatis01?CharacterEncoding=UTF-8
jdbc.username=root
jdbc.password=admin
步骤四:编写Spring核心主配置文件(applicationContext.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:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx" xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">
<!--开启全局注解扫描-->
<context:component-scan base-package="com.zhiyou100"/>
<!--引入外部数据库连接信息 db.properties文件-->
<context:property-placeholer location="classpath:db.properties"/>
<!--配置数据源-->
<bean id = "dataSource" class="com.mchange.v2.c3p0.ComboPooleDataSource">
<property name="driverClass" value="${jdbc.driver}"/>
<property name="jdbcUrl" value="${jdbc.url}"/>
<property name="user" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
<!--配置事务管理器-->
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
<!--配置事务 关联事务管理器-->
<tx:advice id="myAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="show*" isolation="DEFAULT" propagation="REQUIRED"/>
</tx:attributes>
</tx:advice>
<!--配置切面 将事务切入到service层-->
<aop:config>
<aop:poincut id = "pct" expression="execution(* com.zhiyou100.service..*.*(..))"/>
<aop:advisor advice-ref="myAdvice" pointcut-ref="pct"/>
</aop:config>
<!--创建 sqlSessionFactory工厂对象-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="typeAliasesPackage" value="com.zhiyou100.pojo"/>
</bean>
<!--配置数据库映射文件接口-->
<bean id="mapperScannerConfigurer" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.zhiyou100.mapper"/>
</bean>
</beans>
步骤五:编写mapper映射接口
public interface UserMapper {
List<User> showList();
}
步骤六:编写mapper接口映射文件
<?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.zhiyou100.mapper.UserMapper">
<resultMap id="userMap" type="user">
<id property="userId" column="id"/>
<result property="userName" column="username"/>
<result property="userAge" column="age"/>
<result property="userAddress" column="address"/>
<result property="userGender" column="gender"/>
</resultMap>
<select id="showList" resultMap="userMap">
select * from user
</select>
</mapper>
步骤七:编写service(业务层)
public interface UserService {
List<User> showList();
}
步骤八:编写service(业务层)实现类
@Service("userService")
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public List<User> showList() {
return userMapper.showList();
}
}
步骤八:Junit单元测试
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("classpath:applicationContext.xml")
public class UserTest {
@Autowired
private UserService userService;
@Test
public void testUserList(){
List<User> users = userService.showList();
for (User user : users) {
System.out.println(user);
}
}
}
测试结果如下: