網(wǎng)絡營銷策劃實訓報告路由優(yōu)化大師官網(wǎng)
使用XML文件進行開發(fā),在調(diào)用SqlSession進行操作時,需要指定MyBatis映射文件中的方法,這種調(diào)用方式過于煩瑣。為解決此問題,MyBatis提供了接口開發(fā)的方式。
接口開發(fā)的目的:
-
解決原生方式中的硬編碼
-
簡化后期執(zhí)行SQL
使用和指定語句的參數(shù)和返回值相匹配的接口(比如 UserMapper.class),現(xiàn)在你的代碼不僅更清晰,更加類型安全,還不用擔心可能出錯的字符串字面值以及強制類型轉(zhuǎn)換。
需修改的地方:
1.在mapper文件夾下創(chuàng)建XxxMapper接口,并定義相應的抽象方法。
2.在mapper文件夾下創(chuàng)建映射文件XxxMapper.xml,并指定其namespace為對應Mapper接口的絕對路徑。
3.在MyBatis主配置文件中,將mapper包下所有的Mapper接口引入
<mappers><!--<mapper resource="com/ambow/mapper/UserMapper.xml"/>--><package name="com.foxbill.mapper">
<mappers>
?4.在pom.xml中配置resource,指定打包資源,使mapper包中的映射文件可以被打包到classes中【另一種方式:也可以不做如下配置,而是把映射文件,放在resources對應的文件夾中】
<build><!--加入 resource 插件--><resources><resource><directory>src/main/java</directory><includes><include>**/*.xml</include></includes></resource></resources></build>
一、實現(xiàn)步驟
1、創(chuàng)建Mapper接口
package com.ambow.mapper;import com.ambow.pojo.User;import java.util.List;public interface UserMapper {public List<User> selectUser();public List<User> searchUser(String keywords);public int insertUser(User user);public int updateUser(User user);public int deleteUser(int id);
}
2、修改mapper.xml文件中的namespace
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--MyBatis接口開發(fā),需要修改namespace-->
<mapper namespace="com.ambow.mapper.UserMapper"><select id="selectUser" resultType="com.ambow.pojo.User">select * from tb_user</select><select id="searchUser" resultType="com.ambow.pojo.User">select * from tb_user where username like '%${_parameter}%'</select><!--新增用戶--><insert id="insertUser" parameterType="com.ambow.pojo.User">insert into tb_user values(null,#{username},#{password},#{gender},#{addr})</insert><update id="updateUser" parameterType="com.ambow.pojo.User">update tb_user set username = #{username},password = #{password}, gender = #{gender},addr = #{addr}where id = #{id}</update><delete id="deleteUser">delete from tb_user where id = #{id}</delete></mapper>
3、修改主配置文件中映射文件的路徑
<mappers><!--<mapper resource="com/ambow/mapper/UserMapper.xml"/>--><package name="com.ambow.mapper"/>
</mappers>
4、測試接口開發(fā)
?
@Testpublic void test() throws IOException {String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);//獲取SqlSessionFactory - 工廠對象SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
// System.out.println(sqlSessionFactory);//獲取SqlSession - 連接對象SqlSession sqlSession = sqlSessionFactory.openSession();UserMapper userMapper = sqlSession.getMapper(UserMapper.class);List<User> list = userMapper.selectUser();for (User user : list) {System.out.println(user);}}
二、MyBatis動態(tài)代理原理
?
三、MyBatisX 插件
MybatisX 是一款基于 IDEA 的快速開發(fā)插件,為效率而生。
主要功能:
-
XML 和 接口方法 相互跳轉(zhuǎn)
-
根據(jù)接口方法生成 statement
安裝:
?