【Mybatis】——mapper代理方法
来源:互联网 发布:网络系统安全巡检方案 编辑:程序博客网 时间:2024/06/05 05:34
mapper代理方法(程序员只需要mapper接口(相当于dao接口))
思路(mapper代理开发规范)
程序员还需要编写mapper.xml映射文件
程序员编写mapper接口需要遵循一些开发规范,mybatis可以自动生成mapper接口实现类代理对象。
开发规范:
1、在mapper.xml中namespace等于mapper接口地址
2、mapper.java接口中的方法名和mapper.xml中statement的id一致
3、mapper.java接口中的方法输入参数类型和mapper.xml中statement的parameterType指定的类型一致。
4、mapper.java接口中的方法返回值类型和mapper.xml中statement的resultType指定的类型一致。
Mapper.java
//根据id查询用户信息public User findUserById(int id) throws Exception;
mapper.xml
<!-- 在 映射文件中配置很多sql语句 --><!-- 需求:通过id查询用户表的记录 --><!-- 通过 select执行数据库查询id:标识 映射文件中的 sql将sql语句封装到mappedStatement对象中,所以将id称为statement的idparameterType:指定输入 参数的类型,这里指定int型 #{}表示一个占位符号#{id}:其中的id表示接收输入 的参数,参数名称就是id,如果输入 参数是简单类型,#{}中的参数名可以任意,可以value或其它名称resultType:指定sql输出结果 的所映射的java对象类型,select指定resultType表示将单条记录映射成的java对象。 --><select id="findUserById" parameterType="int" resultType="user">SELECT * FROM USER WHERE id=#{value}</select>
在SqlMapConfig.xml中加载mapper.xml
<configuration><!-- 和spring整合后 environments配置将废除--><environments default="development"><environment id="development"><!-- 使用jdbc事务管理,事务控制由mybatis--><transactionManager type="JDBC" /><!-- 数据库连接池,由mybatis管理--><dataSource type="POOLED"><property name="driver" value="${jdbc.driver}" /><property name="url" value="${jdbc.url}" /><property name="username" value="${jdbc.username}" /><property name="password" value="${jdbc.password}" /></dataSource></environment></environments><!-- 加载 映射文件 --><mappers><mapper resource="sqlmap/User.xml"/> <mapper resource="mapper/UserMapper.xml"></mappers></configuration>
测试
@Testpublic void testFindUserById() throws Exception {SqlSession sqlSession = sqlSessionFactory.openSession();//创建UserMapper对象,mybatis自动生成mapper代理对象UserMapper userMapper = sqlSession.getMapper(UserMapper.class);//调用userMapper的方法User user = userMapper.findUserById(1);System.out.println(user);}
一些问题总结
代理对象内部调用selectOne或selectList
如果mapper方法返回单个pojo对象(非集合对象),代理对象内部通过selectOne查询数据库。
如果mapper方法返回集合对象,代理对象内部通过selectList查询数据库。
mapper接口方法参数只能有一个是否影响系统开发
mapper接口方法参数只能有一个,系统是否不利于扩展维护。
系统 框架中,dao层的代码是被业务层公用的。
即使mapper接口只有一个参数,可以使用包装类型的pojo满足不同的业务方法的需求。
注意:持久层方法的参数可以包装类型、map。。。,service方法中建议不要使用包装类型(不利于业务层的可扩展)。
阅读全文
0 0
- 【Mybatis】——mapper代理方法
- Mybatis之mapper代理方法
- Mybatis中mapper代理方法
- mapper代理方法开发mybatis
- Mybatis——Mapper动态代理
- JavaWeb——Mybatis进阶mapper代理
- 【Mybatis】深入浅出Mybatis(六)——mapper代理方法使用
- 【SpringMVC+mybatis】6.mybatis mapper代理方法
- 【MyBatis框架点滴】——MyBatis开发DAO的两种方法:原始DAO开发方法和Mapper代理方法
- mybatis的mapper动态代理方法
- mybatis框架(2)---mapper代理方法
- mybatis——使用mapper代理开发方式
- Mybatis-Mapper代理
- myBatis中的Mapper代理
- mybatis mapper代理
- MyBatis---mapper动态代理
- Mybatis中mapper代理方法替换原始Dao开发方法
- 【MyBatis学习04】mapper代理方法开发dao
- linux系统结构,文件寻址,文件管理编辑,正则表达式
- ArrayList源码分析
- [java]集合
- 浏览器渲染页面过程
- 状态栏
- 【Mybatis】——mapper代理方法
- HDU
- 初探GDI——基本框架(载入位图)
- 深度学习DeepLearning.ai系列课程学习总结:课程概述
- Java基础----集合
- dubbo可通过指定Url方式绕过注册中心直连指定的服务地址
- MyBatis初探
- 伸展树(splay tree)
- -----hdu 2181 哈密顿绕行世界问题