上一篇文章总结了一些Dao开发的问题,所以我们这里开始讲一种mapper代理的方式去开发。

我先给出mapper代理开发的思路(mapper代理开发的规范):

我们用mapper代理开发时要写2个:

1.mapper.xml

2.mapper接口

我们写的mapper接口只要需要遵循一些开发规则,mybatis可以自动生成mapper接口实现类代理对象。(这句话很重要)

我们重点讲一下开发规则:

开发规范:

1、在mapper.xml中namespace等于mapper接口地址

aaarticlea/png;base64,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" alt="" />

2、mapper.java接口中的方法名和mapper.xml中statement的id一致

mapper.xml中是这样的:

aaarticlea/png;base64,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" alt="" />

mapper.java接口应该是这样的:

aaarticlea/png;base64,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" alt="" />

名字要一模一样的。

3、mapper.java接口中的方法输入参数类型和mapper.xml中statement的parameterType指定的类型一致。

4、mapper.java接口中的方法返回值类型和mapper.xml中statement的resultType指定的类型一致。

aaarticlea/png;base64,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" alt="" />

aaarticlea/png;base64,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" alt="" />

总结:

以上开发规范主要是对下边的代码进行统一生成:

User user = sqlSession.selectOne("test.findUserById", id);

sqlSession.insert("test.insertUser", user);

接下来将案例:

先给出案例的结构:

aaarticlea/png;base64,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" alt="" />

第一步:编写:sqlMapConfig.xml文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 和spring整合后 environments配置将废除-->
<environments default="development">
<environment id="development">
<!-- 使用jdbc事务管理-->
<transactionManager type="JDBC" />
<!-- 数据库连接池-->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/mybaits?characterEncoding=utf-8" />
<property name="username" value="root" />
<property name="password" value="root" />
</dataSource>
</environment>
</environments> <!-- 把映射文件(sqlmap/user.xml)加载进sqlMapConfig.xml-->
<mappers>
<!-- 把mapper.xml加载进sqlMapConfig.xml-->
<mapper resource="mapper/userMapper.xml"/>
</mappers> </configuration>

第二步:编写mapper/userMapper.xml文件

<?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">
<!-- nanmespace:命名空间。 作用就是对sql进行分类话管理,理解Sal分离 注意:使用mapper代理方式,namespace有特殊重要的作用
--> <mapper namespace="cn.itcast.mybatis.Dao.UserMapper"> <!-- 根据id获取用户信息 -->
<!-- 在映射文件中配置很多sql语句 -->
<!--
id:标识映射文件中的sql;
将sql语句封装到mappedStatement对象中,所以将id称为statement的id;parmenterType:指定输入的参数的类型,这里指定的int型
#{}表示一个占位符号;
#{id}:其中的id表示接收输入的参数,参数名称就是id,如果输入参数就是简单类型,#{}中的参数名可以任意,可以value或其它名称
resultType:指定的sql输出结果的所映射的java对象类型,select指定resultType表示将单条记录映射成的java对象; -->
<select id="findUserById" parameterType="int" resultType="cn.itcast.mybatis.po.User">
select * from user where id = #{id}
</select> </mapper>

第三步:UserMapper.java文件

package cn.itcast.mybatis.Dao;

import cn.itcast.mybatis.po.User;

public interface UserMapper {
//这个名字(findUserById)和UserMapper.xml里面的id要一模一样
public User findUserById(int id);
}

第四步:编写junit测试代码。编写Mybatis_mappertest.java

package cn.itcast.mybatis.first;

import java.io.IOException;
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 cn.itcast.mybatis.Dao.UserMapper;
import cn.itcast.mybatis.po.User; public class Mybatis_mappertest { private SqlSessionFactory sqlSessionFactory;
@Before
public void setup() throws IOException
{ String resource="SqlMapConfig.xml";
InputStream inputStream= Resources.getResourceAsStream(resource);
//主要是生成SqlsessionFactory。
this.sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
}
@Test
public void testMaper()
{
SqlSession sqlSession=null; sqlSession=sqlSessionFactory.openSession();
//生成代理类
UserMapper userMapper=sqlSession.getMapper(UserMapper.class);
User user=userMapper.findUserById(29);
System.out.println(user.getUsername()); } }

运行结果:正常。

---------------------------------------------------------------------------------------------------------------------------------------------------------------

扩展一下,我们在查询时如果查询到很多条数据,时怎么写?

1.修改userMapper.xml文件:

<?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">
<!-- nanmespace:命名空间。 作用就是对sql进行分类话管理,理解Sal分离 注意:使用mapper代理方式,namespace有特殊重要的作用
--> <mapper namespace="cn.itcast.mybatis.Dao.UserMapper"> <!-- 根据id获取用户信息 -->
<!-- 在映射文件中配置很多sql语句 -->
<!--
id:标识映射文件中的sql;
将sql语句封装到mappedStatement对象中,所以将id称为statement的id;parmenterType:指定输入的参数的类型,这里指定的int型
#{}表示一个占位符号;
#{id}:其中的id表示接收输入的参数,参数名称就是id,如果输入参数就是简单类型,#{}中的参数名可以任意,可以value或其它名称
resultType:指定的sql输出结果的所映射的java对象类型,select指定resultType表示将单条记录映射成的java对象; -->
<select id="findUserById" parameterType="int" resultType="cn.itcast.mybatis.po.User">
select * from user where id = #{id}
</select>
<!--where username like '%${value}%' 这句话中必须写value不然就报错。因为规则上明确说过
${}接收输入参数,类型可以是简单类型,pojo、hashmap。
如果接收简单类型,${}中只能写成value。 -->
<select id="findUserByName" parameterType="String" resultType="cn.itcast.mybatis.po.User">
select * from user where username like '%${value}%'
</select> </mapper>

2.修改UserMapper.java代码:

package cn.itcast.mybatis.Dao;

import java.util.List;

import cn.itcast.mybatis.po.User;

public interface UserMapper {
//这个名字(findUserById)和UserMapper.xml里面的id要一模一样
public User findUserById(int id);
//注意这里写的是返回的List.这样代码内部就会调用selectList,但是在userMapper.xml中要写的是
//resultType="cn.itcast.mybatis.po.User"
/*
*
* <select id="findUserByName" parameterType="String" resultType="cn.itcast.mybatis.po.User">
select * from user where username like '%${value}%'
</select>
*
*
*/
public List<User> findUserByName(String name);
}

-------------------------------------------------------------------------------------------------------------------------------------------------------------

最后对mapper开发方式做一个总结:

1. 代理对象内部调用selectOne或selectList

如果mapper方法返回单个pojo对象(非集合对象),代理对象内部通过selectOne查询数据库。

如果mapper方法返回集合对象,代理对象内部通过selectList查询数据库。

2.mapper接口方法参数只能有一个是否影响系统 开发

mapper接口方法参数只能有一个,系统是否不利于扩展维护。比如

aaarticlea/png;base64,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" alt="" />

这些方法中只有一个参数,因为:在userMapper.xml中只有一个resultType=“”但是:

系统 框架中,dao层的代码是被业务层公用的。

即使mapper接口只有一个参数,可以使用包装类型的pojo满足不同的业务方法的需求。

注意:持久层方法的参数可以包装类型、map。。。,service方法中建议不要使用包装类型(不利于业务层的可扩展)。

12Mybatis_用mapper代理的方式去开发以及总结mapper开发的一些问题的更多相关文章

  1. 【MyBatis学习04】mapper代理方法开发dao

    上一篇博文总结了mybatis使用 原始dao的方法存在的一些弊端,我们肯定不会去用它,那么mybatis中该如何开发dao呢?如题所述,这篇博文主要来总结一下使用mapper代理的方法来开发dao的 ...

  2. Mybatis的mapper代理开发dao方法

    看完了之前的mybatis原始的dao开发方法是不是觉得有点笨重,甚至说没有发挥mybatis 作为一个框架的优势.总结了一下,原始的dao方法有以下几点不足之处 dao接口实现方法中存在大量的模板方 ...

  3. Mybatis学习总结(二)——Mapper代理开发

    一.概要 1.原始DAO开发中存在的问题:(1)DAO实现方法体中存在很多过程性代码.(2)调用SqlSession的方法(select/insert/update)需要指定Statement的id, ...

  4. 【mybatis深度历险系列】深入浅出mybatis中原始dao的开发和mapper代理开发

    使用Mybatis开发Dao,通常有两个方法,即原始Dao开发方法和Mapper接口开发方法.mybatis在进行dao开发的时候,涉及到三姐妹,分别是SqlSessionFactoryBuilder ...

  5. springboot集成下,mybatis的mapper代理对象究竟是如何生成的

    前言 开心一刻 中韩两学生辩论. 中:端午节是属于谁的? 韩:韩国人! 中:汉字是谁发明的? 韩:韩国人! 中:中医是属于谁的? 韩:韩国人! 中:那中国人到底发明过什么? 韩:韩国人! 前情回顾 M ...

  6. mapper代理(十一)

    原始 dao开发问题 1.dao接口实现类方法中存在大量模板方法,设想能否将这些代码提取出来,大大减轻程序员的工作量. 2.调用sqlsession方法时将statement的id硬编码了 3.调用s ...

  7. Java动态代理实现方式一

    Java代理设计模式(Proxy)的四种具体实现:静态代理和动态代理 实现方式一:静态代理 静态代理方式的优点 静态代理方式的缺点 Java动态代理实现方式一:InvocationHandler Ja ...

  8. mybatis入门--mapper代理方式开发

    不使用代理开发 之前,我们说了如何搭建mybatis框架以及我们使用mybatis进行简单的增删改查.现在,我们一起来构建一个dao层的完整代码.并用@test来模拟service层对dao层进行一下 ...

  9. mapper代理方式开发

    使用mapper代理方式开发: 需要编写mapper接口,UserMapper.java需要编写映射文件,UserMapper.xml需要遵循一些开发规范,mybatis便可以自动生成mapper接口 ...

随机推荐

  1. CRM行编辑控件

    原创,转载请说明出处 王红福 http://www.cnblogs.com/hellohongfu/p/4792452.html CRM 本身的表格可以根据定义显示列信息,但是出于性能考虑不能详细的展 ...

  2. SharePoint 2013 自定义模板页后在列表里修改不了视图

    前言 最近系统从2010升级至2013,有自定义模板页.突然发现在列表中切换不了视图,让我很费解. 我尝试过以下解决方案: 去掉自定义css 去掉自定义js 禁用所有自定义功能 结果都没有效还是一样的 ...

  3. 详解Paint的各种set方法

    一.前言 我们用set方法来设置画笔的样式,类似于我们挑选画笔画画的过程.由于上面有些方法不支持硬件加速,所以在高版本系统中可能会没有效果.因此,我们首先来看看官方废弃的方法. 下图来自:https: ...

  4. Android—SQLITE数据库的设计和升降级

    Google为Andriod的较大的数据处理提供了SQLite,他在数据存储.管理.维护等各方面都相当出色,功能也非常的强大.SQLite具备下列特点: 1.轻量级 使用 SQLite 只需要带一个动 ...

  5. swift基础二

    import Foundation // MARK: - ?和!的区别 // ?代表可选类型,实质上是枚举类型,里面有None和Some两种类型,其实nil相当于OPtional.None,如果非ni ...

  6. iOS开发笔记15:地图坐标转换那些事、block引用循环/weak–strong dance、UICollectionviewLayout及瀑布流、图层混合

    1.地图坐标转换那些事 (1)投影坐标系与地理坐标系 地理坐标系使用三维球面来定义地球上的位置,单位即经纬度.但经纬度无法精确测量距离戒面积,也难以在平面地图戒计算机屏幕上显示数据.通过投影的方式可以 ...

  7. ubuntu15.10 给解压版的eclipse安装桌面快捷方式

    在桌面用vi 建立eclipse.desktop文件,并赋予权限 sudo chmod  u+x  /home/liujl/Desktop/eclipse.desktop [Desktop Entry ...

  8. 利用JS实现手机访问PC网址自动跳转到wap网站

    方法一:使用百度siteapp中的js进行判断 <script src="http://siteapp.baidu.com/static/webappservice/uaredirec ...

  9. WPF-拖动面板移动窗口&设置窗口状态

    在需要去掉窗口边框的情景下往往需要有拖动面板直接移动窗口和自定义按钮改变窗口状态和关闭的功能 拖动面板移动窗口 为面板控件添加MouseMove事件, 面板控件指的是用来当面板的控件,可以是grid. ...

  10. C#程序员开发WinForm必须知道的 Window 消息大全(转)

    消息,就是指Windows发出的一个通知,告诉应用程序某个事情发生了.例如,单击鼠标.改变窗口尺寸.按下键盘上的一个键都会使Windows发送一个消息给应用程序.  消息本身是作为一个记录传递给应用程 ...