Spring(4):Mybatis和Spring整合

第一步:创建数据库

MySQL代码

复制代码
 1 CREATE DATABASE `mybatis` ;
 2 
 3 USE `mybatis`;
 4 
 5 CREATE TABLE `user` (
 6 `id` INT(20) NOT NULL,
 7 `name` VARCHAR(30) DEFAULT NULL,
 8 `pwd` VARCHAR(30) DEFAULT NULL,
 9 PRIMARY KEY (`id`)
10 ) ENGINE=INNODB DEFAULT CHARSET=utf8;
11 
12 INSERT INTO `user`(`id`,`name`,`pwd`) 
13 VALUES (1,'闪电侠','123'),(2,'蜘蛛侠','abc'),(3,'钢铁侠','520');
复制代码

第二步:创建一个Maven项目

导入相关架包

  • junit
  • mybaits
  • mysql连接驱动
  • Spring
  • spring-jdbc
  • mybatis-spring
复制代码
 1 <dependencies>
 2 <!--junit 单元测试-->
 3 <dependency>
 4 <groupId>junit</groupId>
 5 <artifactId>junit</artifactId>
 6 <version>4.11</version>
 7 </dependency>
 8 
 9 <!--mybaits-->
10 <dependency>
11 <groupId>org.mybatis</groupId>
12 <artifactId>mybatis</artifactId>
13 <version>3.4.6</version>
14 </dependency>
15 
16 <!--mysql连接驱动-->
17 <dependency>
18 <groupId>mysql</groupId>
19 <artifactId>mysql-connector-java</artifactId>
20 <version>5.1.47</version>
21 </dependency>
22 
23 <!--Spring的包-->
24 <dependency>
25 <groupId>org.springframework</groupId>
26 <artifactId>spring-webmvc</artifactId>
27 <version>4.3.9.RELEASE</version>
28 </dependency>
29 
30 <!--spring-jdbc -->
31 <dependency>
32 <groupId>org.springframework</groupId>
33 <artifactId>spring-jdbc</artifactId>
34 <version>4.3.9.RELEASE</version>
35 </dependency>
36 
37 <!--mybatis-spring-->
38 <dependency>
39 <groupId>org.mybatis</groupId>
40 <artifactId>mybatis-spring</artifactId>
41 <version>1.3.2</version>
42 </dependency>
43 </dependencies>
44 
45 <build>
46 <!--希望maven在导出项目的时候,能够将我们的配置及资源导出-->
47 <resources>
48 <resource>
49 <directory>src/main/java</directory>
50 <includes>
51 <include>**/*.properties</include>
52 <include>**/*.xml</include>
53 </includes>
54 <filtering>false</filtering>
55 </resource>
56 <resource>
57 <directory>src/main/resources</directory>
58 <includes>
59 <include>**/*.properties</include>
60 <include>**/*.xml</include>
61 </includes>
62 <filtering>false</filtering>
63 </resource>
64 </resources>
65 </build>
复制代码

第三步:创建实体类

复制代码
 1 public class User {
 2 
 3 private int id;
 4 private String name;
 5 private String pwd;
 6 
 7 public User() {
 8 }
 9 
10 public User(int id, String name, String pwd) {
11 this.id = id;
12 this.name = name;
13 this.pwd = pwd;
14 }
15 
16 public int getId() {
17 return id;
18 }
19 
20 public void setId(int id) {
21 this.id = id;
22 }
23 
24 public String getName() {
25 return name;
26 }
27 
28 public void setName(String name) {
29 this.name = name;
30 }
31 
32 public String getPwd() {
33 return pwd;
34 }
35 
36 public void setPwd(String pwd) {
37 this.pwd = pwd;
38 }
39 
40 @Override
41 public String toString() {
42 return "User{" +
43 "id=" + id +
44 ", name='" + name + '\'' +
45 ", pwd=" + pwd +
46 '}';
47 }
48 }
复制代码

第四步:创建接口和实现类

接口UserMapper

1 public interface UserMapper {
2 
3 List<User> getUser();
4 
5 }

实现类UserMapper.xml

复制代码
 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE mapper
 3 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 4 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 5 
 6 <!--mapper标签的namespace对应Mapper接口的类-->
 7 <mapper namespace="com.shandx.dao.UserMapper">
 8 
 9 <select id="getUser" resultType="User">
10 select * from user
11 </select>
12 
13 </mapper>
复制代码

第五步:配置mybatis文件

在resources下创建mybatis-config.xml文件,简单的设置别名和mapper映射文件

复制代码
 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE configuration
 3 PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 4 "http://mybatis.org/dtd/mybatis-3-config.dtd">
 5 <configuration>
 6 
 7 <!--别名-->
 8 <typeAliases>
 9 <package name="com.shandx.pojo"/>
10 </typeAliases>
11 
12 <!--关联映射文件-->
13 <mappers>
14 <mapper resource="com/shandx/dao/UserMapper.xml"/>
15 </mappers>
16 
17 </configuration>
复制代码

第六步:编写spring配置文件

在resources创建beans-config.xml文件

1.数据源配置

复制代码
 1 <?xml version="1.0" encoding="UTF-8"?>
 2 <beans xmlns="http://www.springframework.org/schema/beans"
 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 4 xsi:schemaLocation="http://www.springframework.org/schema/beans
 5 http://www.springframework.org/schema/beans/spring-beans.xsd">
 6 
 7 <!--1.配置数据源-->
 8 <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
 9 <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
10 <property name="url" value="jdbc:mysql://localhost:3306/mybatis?
11 useSSL=true&amp;useUnicode=true&amp;characterEncoding=utf-8"/>
12 <property name="username" value="root"/>
13 <property name="password" value="123456"/>
14 </bean>
15 
16 </beans>
复制代码

2.sqlSessionFactory配置

复制代码
1 <!--2.配置SqlSessionFactory-->
2 <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
3 <property name="dataSource" ref="dataSource"/>
4 <!--关联mybatis的配置文件-->
5 <property name="configLocation" value="classpath:mybatis-config.xml"/>
6 </bean>
复制代码

3.sqlSession配置

1 <!--3.创建SqlSession-->
2 <bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate">
3 <constructor-arg index="0" ref="sqlSessionFactory" />
4 </bean>

4.接口实现类增加一个属性:sqlSession

在dao类下创建UserMapperImpl

复制代码
 1 public class UserMapperImpl implements UserMapper {
 2 
 3 private SqlSessionTemplate sqlSession;
 4 
 5 public void setSqlSession(SqlSessionTemplate sqlSession) {
 6 this.sqlSession = sqlSession;
 7 }
 8 
 9 public List<User> getUser() {
10 
11 UserMapper mapper = sqlSession.getMapper(UserMapper.class);
12 return mapper.getUser();
13 
14 }
15 }
复制代码

5.将接口的实现类交给spring来管理

1 <!--4.接口实现类注入SqlSession-->
2 <bean id="UserMapperImpl" class="com.shandx.dao.UserMapperImpl">
3 <property name="sqlSession" ref="sqlSession"/>
4 </bean> 

第七步:测试

复制代码
 1 public class UserMapperTest {
 2 
 3 @Test
 4 public void getUser(){
 5 ApplicationContext context = new ClassPathXmlApplicationContext("beans-config.xml");
 6 UserMapper userDaoImpl = (UserMapper) context.getBean("UserMapperImpl");
 7 List<User> users = userDaoImpl.getUser();
 8 for (User user : users) {
 9 System.out.println(user);
10 }
11 }
12 }
复制代码

第八步:运行结果

项目结构

posted @ 2020-07-20 09:51  edda_huang  阅读(142)  评论(0编辑  收藏  举报