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

  • 相关阅读:
    Android OpenGL ES 2.0 (四) 灯光perfragment lighting
    Android OpenGL ES 2.0 (五) 添加材质
    冒泡排序函数
    javascript object 转换为 json格式 toJSONString
    Liunx CentOS 下载地址
    jquery 图片切换特效 鼠标点击左右按钮焦点图切换滚动
    javascript 解析csv 的function
    mysql Innodb Shutdown completed; log sequence number解决办法
    Centos 添加 yum
    javascript 键值转换
  • 原文地址:https://www.cnblogs.com/qqwhsj/p/11028201.html
Copyright © 2011-2022 走看看