zoukankan      html  css  js  c++  java
  • MyBatis(二)--基本使用

    一 增删改查XML配置

    注:下方是一些描述,具体执行继续往下看

    1.如同上一篇文章所说,可以将XML配置文件看做一个类,namespace看做类的全地址,而无论是update还是select都看作是个方法,id看做方法名,可以设置paramterType与resultType控制返回类。。

    2.不使用动态代理的情况下,能有一个参数,不过参数可以是map,可以是list,也可以是基本类型与Object衍生类。

    二 增删改查Java代码实现

    1.工具类的创建

    (1)工具类中使用单例模式(懒汉式)来创建一个SqlSessionFactory对象(这里是必要的,不然会衍生出一些问题),如果不是同样的工厂创建Mapper是不一样的,这点会导致缓存信息错乱

    (2)SqlSession是 一个重型的对象,使用后需要关闭,所以不建议单例SqlSession。

    2.增删改

    (1)第一个参数是全路径到方法(可以说方法的全路径名),第二个参数是方法的参数,当传入user,map时,可以直接使用key值或者属性名调用,而是基本类型或者String时可以0 

    (2)增删改的操作不必多说,没什么变化,根据传入的参数对数据做出Update操作,并且返回一个int值

    (3)SqlSession内部通过Executor来执行Sql操作,而Executor由Config(总配置文件),Transaction(事务)生成,所以这些语句是以事务的方式执行的,需要手动调用Commit()提交

    (4)如果需要自动提交事务,则在工具类中在工厂调用openSession方法的时候加入参数(true)(默认为false)。

    (5)事务的回滚由MyBatis自行完成,当事务执行失败时。

    3.查

    (1)查询操作与前面类似,第二个参数为传入方法参数,可以将一些限制sql的条件参数放入其中

    (2)select语句不会修改数据本质上是query方法的衍生,所以不需要作为事务处理(没有安全性需要考虑),MyBatis默认为提交(或许吧)

    (3)select可以在resultType规定返回值类型,select方法中又分为selectMap,selectList,selectOne,One适用于单条数据查询,List用于多条数据查询。

    (4)Map必须选择第二个参数作为设定一个列为Map的key值,不用太纠结,没啥用

  • 相关阅读:
    You are not late! You are not early!
    在同一个服务器(同一个IP)为不同域名绑定的免费SSL证书
    Vue.js Is Good, but Is It Better Than Angular or React?
    It was not possible to find any compatible framework version
    VS增加插件 Supercharger破解教程
    Git使用ssh key
    Disconnected: No supported authentication methods available (server sent: publickey)
    VS 2013打开.edmx文件时报类型转换异常
    asp.net MVC4 框架揭秘 读书笔记系列3
    asp.net MVC4 框架揭秘 读书笔记系列2
  • 原文地址:https://www.cnblogs.com/qqwhsj/p/11028201.html
Copyright © 2011-2022 走看看