使用mapper代理的方式去整合spring和mybatis的思路
1.需要先配置Mybatis的全局配置檔案(在此之前需要先把工程結構搭建好)
2.需要配置spring的全局配置檔案
3.然後配置mybatis的mapper的SQL映射配置檔案,并把這個xml檔案路徑加載到Mybatis的全局配置檔案中
4.建立對應資料庫的實體類bean
5.這裡是直接建立一個UserMapper的接口(因為沒有了接口的實作類,是以現在需要去建立一個專門實作UserMapper中接口的功能,也就是映射SQL)
6.然後這裡使用的是mapper代理的方式,是以在用的時候需要先從spring中得到一個UserMapper對象,再通過這個UserMapper對象去調用映射SQL語句的功能id
7.最後是使用Junit測試(使用的時候需要先建構屬性applicationContext來把spring的全局配置檔案加載進來用ClassPathXmlApplicationContext方法)
這裡的前四步和上一篇的步驟都是一樣的,隻是多建了一個mapper的包,來代替之前的那個dao的包,連結如下:
https://blog.csdn.net/qq_36520235/article/details/79691417
5. 這裡是直接建立一個UserMapper的接口(因為沒有了接口的實作類,是以現在需要去建立一個專門實作UserMapper中接口的功能,也就是映射SQL)
package cn.itcast.ssm.mapper;
import cn.itcast.ssm.po.User;
public interface UserMapper {
//用mapper實作代理的目的就是最直接的就是可以不用寫之前的那種UserDao那樣的時間接口的方法
//根據id查詢使用者資訊
public User findUserById(int id) throws Exception;
}
6.然後這裡使用的是mapper代理的方式,是以在用的時候需要先從spring中得到一個UserMapper對象,再通過這個UserMapper對象去調用映射SQL語句的功能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">
<!-- namespace命名空間,作用就是對sql進行分類化管理,了解sql隔離
注意:使用mapper代理方法開發,namespace有特殊重要的作用
-->
<mapper namespace="cn.itcast.ssm.mapper.UserMapper">
<!-- 在 映射檔案中配置很多sql語句 -->
<!-- 需求:通過id查詢使用者表的記錄 -->
<select id="findUserById" resultType="user" parameterType="int">
SELECT * FROM user WHERE id =#{id}
</select>
</mapper>
7.最後是使用Junit測試(使用的時候需要先建構屬性applicationContext來把spring的全局配置檔案加載進來用ClassPathXmlApplicationContext方法)
#
package test;
import cn.itcast.ssm.mapper.UserMapper;
import cn.itcast.ssm.po.User;
import org.junit.Before;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class UserMapperTest {
private ApplicationContext applicationContext;
@Before
public void setUp() throws Exception {
//這裡是使用mapper代理的方式的測試類,因為你需要把你的bean都交給spring來去管理,是以你需要得到spring的容器,也就是需要得到spring的全局配置檔案
applicationContext = new ClassPathXmlApplicationContext("classpath:spring/applicationContext.xml");
}
@Test
public void findUserById() throws Exception {
//因為使用的是mapper代理的方式,是以也需要把要實作的UserMapper對象(裡面是要實作功能接口)從spring容器中得到
UserMapper userMapper = (UserMapper) applicationContext.getBean("userMapper");
User user = userMapper.findUserById();
System.out.println(user.toString());
}
}