項目與外界交互大概過程如下圖:
一般過程是:
- 前端發送請求,查詢數據、增加數據、修改數據、刪除數據
- 中間件經過處理後,對數據發送請求
- 數據庫返回數據,中間件再對數據處理
- 中間件響應前端請求
上一節關注的重點是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>