项目与外界交互大概过程如下图:
一般过程是:
- 前端发送请求,查询数据、增加数据、修改数据、删除数据
- 中间件经过处理后,对数据发送请求
- 数据库返回数据,中间件再对数据处理
- 中间件响应前端请求
上一节关注的重点是WebProject与前端的交互,这次重点是与数据库的交互。
spring整合mybatis分为以下几步:
- 添加相关jar包
- 创建实体类
- 创建数据访问接口
- 配置SQL映射文件
- 配置Mybatis文件
- 将Mybatis整合到Spring中去
1. 添加maven依赖
<!--连接mysql驱动-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.40</version>
</dependency>
<!--数据源包-->
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
</dependency>
<!--mybatis jar包-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.3</version>
</dependency>
<!--mybatis-spring整合jar包-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.1</version>
</dependency>
2. 创建实体类
省略set,get方法
public class User {
private Integer id;
private String username;
private Date birthday;
private String sex;
private String address;
}
3. 创建持久层接口
@Repository
public interface IUserMapper {
public List<User> getUserList();
}
4. 配置sql映射文件
<?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.ssm.dao.IUserMapper">
<resultMap id="userList" type="User"></resultMap>
<select id="getUserList" resultMap="userList">
select * from user1
</select>
</mapper>
注意select的id要与方法名称对应。
5. mybatis配置文件
<?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>
<package name="com.ssm.model"/>
</typeAliases>
</configuration>
6. 将mybatis整合到spring容器中去
<!--配置数据源-->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<!--连接数据库的基本信息-->
<property name="driverClass" value="com.mysql.jdbc.Driver"></property>
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/sc?characterEncoding=utf-8"></property>
<property name="user" value="root"></property>
<property name="password" value="123456"></property>
</bean>
<!--配置SQLSessionFactory工厂-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="configLocation" value="classpath:configure/mybatis-config.xml"></property>
<property name="mapperLocations" >
<list>
<value>classpath:mapper/UserMapper.xml</value>
</list>
</property>
</bean>
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.ssm.dao"/>
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
</bean>