Mapper编写的三种方法
传统的做法:
接口实现类继承SqlSessionDaoSupport

使用此种方法需要编写mapper接口,mapper接口实现类、mapper.xml文件

1、  在sqlMapConfig.xml中配置mapper.xml的位置

<mappers>

<mapper resource="mapper.xml文件的地址" />

<mapper resource="mapper.xml文件的地址" />

</mappers>

2、  定义mapper接口

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

3、  mapper的实现类集成SqlSessionDaoSupport

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

mapper方法中可以this.getSqlSession()进行数据增删改查。

4、  spring 配置

<bean id=" " class="mapper接口的实现">

<property name="sqlSessionFactory" ref="sqlSessionFactory"></property>

</bean>

sqlSession的配置需要两个:一个是dataSource。一个是SqlMapper.xml:

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

思路:我们配置Mapper时是需要SqlSeeion的,那么SqlSession怎么来,用SqlSessionFactroy来得到。所以mapper的实现类要继承SqlSessionDaoSupport

然后就可以用this.getSqlSession()来得到SqlSession来增删改查。。

使用org.mybatis.spring.mapper.MapperFactoryBean

1、  在sqlMapConfig.xml中配置mapper.xml的位置

<mappers>

<mapper resource="mapper.xml文件的地址" />

<mapper resource="mapper.xml文件的地址" />

</mappers>

2、  定义mapper接口

注意

1、mapper.xml中的namespace为mapper接口的地址

2、mapper接口中的方法名和mapper.xml中的定义的statementid保持一致

3、  Spring中定义

<bean id="" class="org.mybatis.spring.mapper.MapperFactoryBean">

<property name="mapperInterface"   value="mapper接口地址" />

<property name="sqlSessionFactory" ref="sqlSessionFactory" />

</bean>

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

使用mapper扫描器

1、  mapper.xml文件编写,

注意:

mapper.xml中的namespace为mapper接口的地址

mapper接口中的方法名和mapper.xml中的定义的statementid保持一致

 

2、  定义mapper接口

注意mapper.xml的文件名和mapper的接口名称保持一致,且放在同一个目录

3、  配置mapper扫描器

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">

<property name="basePackage" value="mapper接口包地址"></property>

<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>

</bean>

4、 使用扫描器后从spring容器中获取mapper的实现对象

扫描器将接口通过代理方法生成实现对象,要spring容器中自动注册,名称为mapper 接口的名称。

如果将mapper.xml和mapper接口的名称保持一致则不用在sqlMapConfig.xml中进行配置

<context:property-placeholder location="classpath:db.properties"/>

<!-- 数据库连接池 -->
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" >
<property name="driverClassName" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
<!-- 开发阶段建议最大连接数据尽量少,够用即可 -->
<property name="maxActive" value="${jdbc.maxActive}"/>
<property name="maxIdle" value="${jdbc.maxIdle}"/>
</bean> <!-- 配置SqlSessionFactory
从spring和mybatis的整合包中获取
-->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 加载数据源 -->
<property name="dataSource" ref="dataSource"/>
<!-- 配置SqlMapConfig.xml -->
<property name="configLocation" value="classpath:mybatis/SqlMapConfig.xml"/>
</bean> <!-- 使用MapperFactoryBean 生成mapper的代理对象
在mybatis和spring的整合包中
--> <!--配置 mapper自动扫描器
bean名称就是mapper类型(首字母小写)
--> <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!-- 配置扫描包路径 ,如果扫描多个包路径,中间使用半角逗号分隔-->
<property name="basePackage" value="yycg.base.dao.mapper"/>
<!-- 配置SqlSessionFactory -->
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
</bean> </beans>
classpath:mybatis/SqlMapConfig.xml"用包扫描的话,因为xml文件和接口在同一个文件夹下面,所以SqlMapConfig.xml里面可以不写子xml的地址。

33Mybatis------Mapper的编写的更多相关文章

  1. IDEA连接Mysql数据库之后,在Mapper.xml编写SQL时不会自动提示表信息问题(非常详细!)

    1.首先得连接上数据库 (一)点击IDEA右侧数据库模块 (二)选择MySql进行连接 (三)填写数据库相关配置 (四)重点!!! 这个时候点击测试连接是连接不上的,需要设置时区 (按照如下设置) ( ...

  2. 基于mapper插件编写的可定制代码生成基本框架(springboot)

    先看一下,基本结构图: 特征,提供 最佳实践的项目结构.配置文件.精简的POM 统一响应结果封装 统一异常处理 统一接口登录认证 常用基础方法抽象封装 Controller.service.dao层基 ...

  3. 030医疗项目-模块三:药品供应商目录模块——供货商药品目录查询功能----------Dao层:基本的查询语句的编写

    我们安装显示的要求: 我们能看到显示的目录里面有:供货企业的名字(这个数据来自于供货商的表[usergys]),流水号,通用名,剂型(这些都来自药品信息表),供货的状态(这个呢在gysypml_con ...

  4. XML CDATA(Mybatis mapper and XML)

    Tip:must be followed by either attribute specifications, ">" or "/>". 所有 X ...

  5. Java Maven:spring boot + Mybatis连接MySQL,通用mapper的增删改查,映射实现多表查询

    1. MySQL自带库test添加表user.role 角色表role 用户表user 2. 添加依赖,配置属性 相关依赖:百度即可,此处略 application.properties spring ...

  6. MyBatis开发Dao的原始Dao开发和Mapper动态代理开发

    目录 咳咳...初学者看文字(Mapper接口开发四个规范)属实有点费劲,博主我就废了点劲做了如下图,方便理解: 原始Dao开发方式 1. 编写映射文件 3.编写Dao实现类 4.编写Dao测试 Ma ...

  7. SpringBoot_02通用mapper

    注意:一旦引入了通用Mapper的启动器,会覆盖Mybatis官方启动器的功能,因此需要移除对官方Mybatis启动器的依赖. 无需任何配置就可以使用了.如果有特殊需要,可以到通用mapper官网查看 ...

  8. 02.MyBatis在DAO层开发使用的Mapper动态代理方式

    在实际开发中,Mybatis作用于DAO层,那么Service层该如何调用Mybatis Mybatis鼓励使用Mapper动态代理的方式 Mapper接口开发方法只需要程序员编写Mapper接口(相 ...

  9. mybatis(三)配置mapper.xml 的基本操作

    参考:https://www.cnblogs.com/wuzhenzhao/p/11101555.html XML 映射文件 本文参考mybatis中文官网进行学习总结:http://www.myba ...

  10. MyBatis工程搭建&MyBatis实现Mapper配置查询

    一.MyMyBatis工程搭建 新建Maven项目:mybatis-demo 准备数据源 1 # 删除mybatis_demo数据库 2 drop database if exists mybatis ...

随机推荐

  1. 详解;(function ($,window,document,undefined){...})(jQuery,window,document);

    1.代码最前面的分号,可以防止多个文件压缩合并以为其他文件最后一行语句没加分号,而引起合并后语法错误. 2.匿名函数(function(){})();:由于Javascript执行表达式是从圆括号里面 ...

  2. EdgesForExtendedLayout

    在IOS7 之后viewController有一个新的属性叫做edgesForExtendedLayout,这个属性指定viewController的view边缘延伸的方向,默认情况下是UIRectE ...

  3. 高级iOS面试题

    非标准答案 2 1: 类方法是可以直接通过类名直接调用,无需进行实例化对象.类方法是以+开头2. 实例方法,需要显示实例化对象,为对象分配堆栈空间,并通过对象实例调用实例方法3. RUNTIME 是在 ...

  4. iOS 开发技巧-制作环形进度条

    有几篇博客写到了怎么实现环形进度条,大多是使用Core Graph来实现,实现比较麻烦且效率略低,只是一个小小的进度条而已,我们当然是用最简单而且效率高的方式来实现. 先看一下这篇博客,博客地址:ht ...

  5. iOS之地理位置及定位系统 -- 入门笔记(用Swift)

    前言:关于地理位置及定位系统,在iOS开发中也比较常见,比如美团外面的餐饮店铺的搜索,它首先需要用户当前手机的位置,然后在这个位置附近搜索相关的餐饮店铺的位置,并提供相关的餐饮信息,再比如最常见的就是 ...

  6. socket服务器开发中的SO_REUSEADDR选项与让人心烦的TIME_WAIT

    1 发现问题 我在开发一个socket服务器程序并反复调试的时候,发现了一个让人无比心烦的情况:每次kill掉该服务器进程并重新启动的时候,都会出现bind错误:error:98,Address al ...

  7. (ios7) 解决Ios7中,Navigatebar 显示在主View中,和ios6 不一致问题

    在ios 7 系统中 NavigateBar 显示在主View中 ,Ios6 不在主View中,导致后台代码的方式编写View不一致 解决方法: 在ViewControl的viewDidLoad 方法 ...

  8. Linux iptables

    一.简介 http://liaoph.com/iptables/ 二.操作 1)查看规则 iptables -t filter -L -n iptables -t nat -L -n iptables ...

  9. 认识与学习 BASH

    2015-08-03摘自鸟哥 什么是变量? 那么,什么是『变量』呢?简单的说,就是让某一个特定字符串代表不固定的内容就是了.举个大家在国中都会学到的数学例子, 那就是:『 y = ax + b 』这东 ...

  10. 如何对ZBrush中面部进行快速布线

    面部布线的最重要目的是为了表情动画.人物内心的各种不同的心里活动,主要是通过面部表情反映出来.而面部变化最丰富的地方是眼部(眉毛)和口 部,其他部位则相应的会受这两部分的影响而变化.对于面部表情,必须 ...