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值,不用太纠结,没啥用

  • 相关阅读:
    Enhancing State-of-the-art Classifiers with API Semantics to Detect Evolved Android Malware论文阅读笔记
    this和super的总结
    软件工程结对WordCount项目
    软工个人作业 数独
    问题
    自我介绍
    shuduku
    access to DeepLearning
    自我介绍
    学习软工基目标
  • 原文地址:https://www.cnblogs.com/qqwhsj/p/11028201.html
Copyright © 2011-2022 走看看