zoukankan      html  css  js  c++  java
  • Mybatis|小总结

    1. mybatis是一个持久层框架, 作用是跟数据库交互完成增删改查

    2.原生Dao实现(需要接口和实现类)

    3.动态代理方式(只需要接口)

    mapper接口代理实现编写规则:
    1) 映射文件中namespace要等于接口的全路径名称
    2) 映射文件中sql语句id要等于接口的方法名称
    3) 映射文件中传入参数类型要等于接口方法的传入参数类型
    4) 映射文件中返回结果集类型要等于接口方法的返回值类型

    4. #{}占位符:占位

    如果传入的是基本类型,那么#{}中的变量名称可以随意写
    如果传入的参数是pojo类型,那么#{}中的变量名称必须是pojo中的属性.属性.属性...

    5. ${}拼接符:字符串原样拼接

    如果传入的是基本类型,那么${}中的变量名必须是value
    如果传入的参数是pojo类型,那么${}中的变量名称必须是pojo中的属性.属性.属性...
    注意:使用拼接符有可能造成sql注入,在页面输入的时候可以加入校验,不可输入sql关键字,不可输入空格

    6. 映射文件:

    1)传入参数类型通过parameterType属性指定
    2)返回结果集类型通过resultType属性指定

    7. 输入映射(就是映射文件中可以传入哪些参数类型)

    1)基本类型
    2)pojo类型
    3)Vo类型

    8. 输出映射(返回的结果集可以有哪些类型)

    1)基本类型
    2)pojo类型
    3)List类型

    9. 动态sql:动态的拼接sql语句,因为sql中where条件有可能多也有可能少

    1)where:可以自动添加where关键字,还可以去掉第一个条件的and关键字
    2)if:判断传入的参数是否为空
    3)foreach:循环遍历传入的集合参数
    4)sql:封装查询条件,以达到重用的目的

    10. 对单个对象的映射关系:

    1)自动关联(偷懒的办法):可以自定义一个大而全的pojo类,然后自动映射其实是根据数据库总的字段名称和
    pojo中的属性名称对应.
    2)手动关联: 需要指定数据库中表的字段名称和java的pojo类中的属性名称的对应关系.
    使用association标签

    11. 对集合对象的映射关系

    只能使用手动映射:指定表中字段名称和pojo中属性名称的对应关系
    使用collection标签

    12. spring和mybatis整合

    整合后会话工厂都归spring管理
    1)原生Dao实现:
    需要在spring配置文件中指定dao实现类
    dao实现类需要继承SqlSessionDaoSupport超类
    在dao实现类中不要手动关闭会话,不要自己提交事务.
    2)Mapper接口代理实现:
    在spring配置文件中可以使用包扫描的方式,一次性的将所有mapper加载

    13. 逆向工程:自动生成Pojo类,还可以自动生成Mapper接口和映射文件

    注意:生成的方式是追加而不是覆盖,所以不可以重复生成,重复生成的文件有问题.
    如果想重复生成将原来生成的文件删除
  • 相关阅读:
    ios7 苹果原生二维码扫描(和微信类似)
    ios7之后 根据UILabel的文字计算frame的方法
    [Luogu1944] 最长括号匹配
    [bzoj3916] friends
    [NOIp2006] 能量项链
    [NOIp2003] 加分二叉树
    [Luogu1353] 跑步Running
    [Luogu2214] Mooo Moo S
    [POJ2452] Sticks Problem
    [POJ2406] Power Strings
  • 原文地址:https://www.cnblogs.com/jumpkin1122/p/11628326.html
Copyright © 2011-2022 走看看