Mybatis——Mapper动态代理
来源:互联网 发布:淘宝上进货 编辑:程序博客网 时间:2024/06/06 17:40
(一)相应的规则
Mapper动态代理需要创建Mapeer接口和与其相对应的XML文件。
一般我们可以先创建好xml文件,因为:
1、 Mapper.xml文件中的namespace与mapper接口的类路径相同。
2、 Mapper接口方法名和Mapper.xml中定义的每个statement的id相同
3、 Mapper接口方法的输入参数类型和mapper.xml中定义的每个sql 的parameterType的类型相同
4、 Mapper接口方法的输出参数类型和mapper.xml中定义的每个sql的resultType的类型相同
工程文件目录:
(二)Mapper.xml(UserMapper.xml)
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace="com.ydalien.mapper.UserMapper"><!-- 根据id获取用户信息 --><!-- parameterType:表示输入类型resultType:表示输出类型,这里是自定义的POJO类型 --><select id="findUserById" parameterType="int" resultType="com.ydalien.po.User">select * from user where id = #{id}</select><!-- 自定义条件查询用户列表 --><select id="findUserByUsername" parameterType="java.lang.String" resultType="com.ydalien.po.User"> select * from user where username like '%${value}%' </select><!-- 添加用户 --><insert id="insertUser" parameterType="com.ydalien.po.User"><selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">select LAST_INSERT_ID() </selectKey> insert into user(username,sex,address) values(#{username},#{sex},#{address})</insert><!-- 删除用户 --><delete id="deleteUserById" parameterType="int">delete from user where id=#{id}</delete><!-- 更新用户 --><update id="updateUser" parameterType="com.ydalien.po.User">update user set username=#{username},sex=#{sex},address=#{address}where id=#{id}</update></mapper>
(三)mapper接口(UserMapper.java)
package com.ydalien.mapper;import com.ydalien.po.User;public interface UserMapper {//通过id查用户public User findUserById(int id) throws Exception;//插入用户public void insertUser(User user) throws Exception;}
(四)将mapper加入全局配置文件(SqlMapConfig.xml)
<!-- 加载映射文件 --><mappers><mapper resource="com/ydalien/mapper/UserMapper.xml"/></mappers>
(五)测试类(UserMapperTest.java)
package com.ydalien.test;import static org.junit.Assert.*;import java.io.InputStream;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import org.junit.Before;import org.junit.Test;import com.ydalien.mapper.UserMapper;import com.ydalien.po.User;public class UserMapperTest {private SqlSessionFactory sqlSessionFactory;@Beforepublic void setUp() throws Exception {String resource = "sqlMapConfig.xml";InputStream inputStream = Resources.getResourceAsStream(resource);//使用SqlSessionFactoryBuilder创建sessionFactorysqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);}@Testpublic void testFindUserById() throws Exception {//获取sessionSqlSession session = sqlSessionFactory.openSession();//获取mapper接口的代理对象UserMapper userMapper = session.getMapper(UserMapper.class);//调用代理对象方法User user = userMapper.findUserById(1);System.out.println(user);//关闭sessionsession.close();}}
0 0
- Mybatis——Mapper动态代理
- MyBatis---mapper动态代理
- MyBatis之Mapper动态代理
- Mybatis之Mapper动态代理
- Mybatis之Mapper动态代理
- JavaWeb——Mybatis进阶mapper代理
- 【Mybatis】——mapper代理方法
- Mybatis(二)— 使用Mapper动态代理方式进行开发
- Mybatis实现Mapper动态代理方式
- mybatis的mapper动态代理方法
- Mybatis之Mapper动态代理方式
- Mybatis之Mapper动态代理方式
- MyBatis之Mapper动态代理开发
- Mybatis实现Mapper动态代理方式
- mybatis(6)---mapper动态代理方式
- MyBatis的Mapper接口动态代理
- mybatis——使用mapper代理开发方式
- Mybatis-Mapper代理
- ReactNative学习十三-Props和State
- Django REST framework教程一:序列化
- STL学习笔记— —容器deque
- 一个产品的完整生命周期
- [疯狂Java]SQL-DML:插入、修改、删除记录
- Mybatis——Mapper动态代理
- 穿透内网,连接动态ip,内网ip打洞-----p2p实现原理
- 苹果的CoreFoundation部分源代码
- Libevent源码分析-----TAILQ_QUEUE队列
- 【dotnet跨平台】dotnet-cli典型场景
- Gson使用总结
- 内部类和匿名内部类
- mybatis中关于like的写法
- KEIL_MDK编译问题:Error: L6200E