一.基础方式的增删该查:
1.mybatis约定:输入参数parameterType和输出参数resulrType在形式上只能有一个。
2.如果输入/输出参数:是简单类型(8个基本类型加String)则可以使用任何占位符,#{xxx};
                                如果是对象类型,则必须是对象的属性,#{属性名}。
3.输出参数:如果返回值类型是一个对象(如Person),则无论返回一个还是多个,在resultType都写成org.lanqiao.entity.Person,即resultType="org.lanqiao.entity.Person"。
4.注意事项:a.如果使用的是JDBC事务方式则需要commit手动提,即session.commit();
                    b.所有的标签<select>.<update>等,都必须有sql语句,但sql参数值可选
                        sql有参数:session.insert(statement,参数值);
 
二.mapper动态代理方式的CRUD(MyBatis接口开发):
原则:约定优于配置
硬编码方式:abc.java
                                    Configuration conf=new Configuration();
                                    conf.setName("myProject");
配置方式:abc.xml
                                <name>myProject</name>
约定:默认值是myProject
 
具体实现的步骤:
1.基础环境:mybatis.jar/ojdbc.jar/conf.xml/mapper.xml
2.(不同之处)约定的目标:省略掉statement,即根据约定,直接可以定位到sql语句。
    a.接口,接口中的方法必须遵循以下约定:
          1)方法名和mapper.xml文件中标签的id值相同;
          2)方法的输入参数和mapper.xml文件中标签的parameterType类型一致;
          3)方法的返回值和mapper.xml文件中标签的resultType类型一致;
除了以上约定,要实现接口中的方法和Mapper.xml中的SQL标签一一对应,还需要以下一点:
    1)namespace的值,就是接口的全类名(接口-mapper.xml一一对应)
匹配的过程:(约定的过程)
1.根据接口名找到mapper.xml文件
2.根据接口的方法名找到mapper.xml文件中的sql标签(方法名=sql标签的id)
习惯:SQL映射文件(mapper.xml)和接口放在同一个包中(注意修改conf.xml文件中加载mapper.xml的路径)
代码:PersonMappe personMapper=session.getMapper(PersonMapper.class);
     personMapper.方法
 
优化:
1.可以将配置信息单独放入db.properties文件中,然后再动态引入
db.properties;
    k=v
<properties resource="db.properties"/>
引入之后使用${key}
2.Mybaites全局参数
    <settings>
            <setting/>
    <settings/>
3.别名:(定义别名时大小写无所谓)
    a.设置单个别名
    b.设置批量别名
除了自定义别名外,MyBatis还内置了一些常见类的别名。
 
三.类型转换器:
1.MyBatis自带的一些常见的类型处理器
    int——number
2.自定义MyBatis类型处理器
    Java——数据库(jdbc类型)
自定义类型转换器(boolean-number)步骤:
a.创建转换器:需要实现TypeHandler接口
        要实现转换器有两种选择:(1)实现接口TypeHandler接口
                                                 (2)继承BaseTypeHandler
b.配置conf.xml
 
注意:设置Integer时必须是大写。
 
resultMap可以实现2个功能:
1.类型转换
2.属性-字段的映射关系
 

Mybatis入门——基础方式的增删该查、mapper动态代理方式的CRUD、类型转换器的更多相关文章

  1. Mybatis框架基础入门(三)--Mapper动态代理方式开发

    使用MyBatis开发Dao,通常有两个方法,即原始Dao开发方法和Mapper动态代理开发方法. 原始Dao开发方法需要程序员编写Dao接口和Dao实现类,此方式开发Dao,存在以下问题: Dao方 ...

  2. MyBatis开发Dao层的两种方式(Mapper动态代理方式)

    MyBatis开发原始Dao层请阅读我的上一篇博客:MyBatis开发Dao层的两种方式(原始Dao层开发) 接上一篇博客继续介绍MyBatis开发Dao层的第二种方式:Mapper动态代理方式 Ma ...

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

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

  4. Mybatis之旅第二篇-Mapper动态代理方式

    一.引言 通过上一篇mybatis的入门学习,我们已经会使用mybatis实现简单的增删改查,但是我们也发现了用原始Dao开发的一些问题: Dao方法体存在重复代码:通过SqlSessionFacto ...

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

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

  6. Mybatis框架三:DAO层开发、Mapper动态代理开发

    这里是最基本的搭建:http://www.cnblogs.com/xuyiqing/p/8600888.html 接下来做到了简单的增删改查:http://www.cnblogs.com/xuyiqi ...

  7. Mybatis Mapper动态代理方式 typeAliases 别名的使用

    目录结构及配置文件与原始dao方法相比更简便 只需一个UserMapper的接口,放在一起的配置文件,配置文件中namespace的地址确定jdk动态代理的对象 <?xml version=&q ...

  8. mybatis开发Dao的Mapper动态代理方式

    1. 开发规范Mapper接口开发方法只需要程序员编写Mapper接口(相当于Dao接口),由Mybatis框架根据接口定义创建接口的动态代理对象,代理对象的方法体跟Dao原始方法中接口实现类的方法相 ...

  9. Mapper动态代理方式

    开发规范 Mapper接口开发方法只需要程序员编写Mapper接口(相当于Dao接口),由Mybatis框架根据接口定义创建接口的动态代理对象,代理对象的方法体同Dao接口实现类方法. Mapper接 ...

随机推荐

  1. 关于博主 5ab

    博主是 5ab,一个 ZJ 初一大蒟蒻. 以 5ab 及类似名号在各大 OJ 出没. 欢迎来到 5ab 这个超级大蒟蒻的博客!!! My luogu blog 关于 5ab 的码风 大括号换行!!! ...

  2. 【Vue中的坑】Vue打包上传线上报Uncaught SyntaxError: Unexpected token <

    今天在vue打包上传线上后,报一下错误,一下就懵了,这可咋整啊,一如既往的想都没想就开始复制错误,上网开搜 Uncaught SyntaxError: Unexpected token < Un ...

  3. 驰骋BPM系统-表单引擎-流程引擎 2020年大换装

      关键字:驰骋表单引擎,流程引擎,界面升级. 前言概述: 感谢美工与同事们的辛苦工作,ccbpm新年大换装,迎接爱好着,为这阴霾多日的疫情气愤增添一笔光彩. 本次的色系以浅灰色为主,因为ccbpm大 ...

  4. Vulkan 开发学习资料汇总

    开发资料汇总 1.API Reference 2.Vulkan Spec 有详细说明的pdf 文章 1.知乎Vulkan-高性能渲染 2.Life of a triangle - NVIDIA's l ...

  5. Pycharm2020最新激活码|永久激活(附最新激活码和插件)

    最近很多人的Pycharm激活时间又过期了,后台很多人索要激活码,我就再把激活的方法汇和工具再梳理一次给大家. 最主要有两种激活方式(两种方式需要的激活码不同): 一.激活码激活: 一般一年多需要激活 ...

  6. 吴裕雄--天生自然 PHP开发学习:数据类型

    <?php $x = "Hello world!"; echo $x; echo "<br>"; $x = 'Hello world!'; e ...

  7. C#高级编程(第9版) 第10章 集合 笔记

    话说 虽然敲过好多代码, 但除了C++,一直没正眼瞧过其它语言.(没办法 谁叫C++既有oop又能自由控制内存呢) 今天 看公司老项目的src,c#的,linq+Dictionary的用法有感.所以找 ...

  8. zookeeper基础教程

    一.关于zookeeper Zookeeper 作为一个分布式的服务框架,主要用来解决分布式集群中应用系统的一致性问题,它能提供基于类似于文件系统的目录节点树方式的数据存储, Zookeeper 作用 ...

  9. Mybatis框架的简单配置

    Mybatis 的配置 1.创建项目(当然,这是废话) 2.导包 下载mybatis-3.2.0版:https://repo1.maven.org/maven2/org/mybatis/mybatis ...

  10. Java 创建对象的几种方式

    转自https://www.cnblogs.com/wxd0108/p/5685817.html 作为Java开发者,我们每天创建很多对象,但我们通常使用依赖管理系统,比如Spring去创建对象.然而 ...