• Mybatis核心配置文件,传统开发和代理开发(主流)


    原始jdbc操作有很大优化空间:


    Mybatis框架完成了这些事情。

    Mybatis
    文档官网:https://mybatis.org/mybatis-3/zh/index.html
    持久层框架。DAO层,用于处理数据库。

    核心配置文件 sqlMapConfig.xml(老版本xml内部标签按以下顺序)


    properties标签用于加载属性文件


    配置:





    settings标签手动设置当前mybatis使用的日志工具为log4j

    配置:





    typeAliases标签自定义实体类的别名,一般统一扫描实体类的包即可

    使用即可实现domain包下任何类的类名都直接作为不区分大小写的别名使用

    配置:





    environments标签用于配置mybatis连接数据库的参数

    事务管理方式

    连接池

    配置





    mappers标签用于指定我们要加载的映射配置

    配置









    映射配置文件UserMapper.xml

    mapper标签:用于配置DAO的。

    属性:namespace:用于指定DAO类的名称,必须是唯一的。写DAO的全类名。





    子标签增删改查的标签,用于指定某个操作的sql语句如select、insert、delete、update标签

    属性id:对应dao中的方法名



    属性resultType:指定该方法的返回值类型,如果返回的是集合,只需要写集合的泛型类型

    现在我们用自定义类型来替代



    属性parameterType:指定dao方法参数类型,可以在sql语句中,使用#{属性名}格式的表达式获取参数值进行设置,如果参数类型是简单类型,而且只有一个,我们在sql语句中可以使用#{任意字符串}进行参数设置

    现在我们用自定义类型来替代





    在insert操作时,有时需要获取自动生成的id,可以在insert标签上设置以下属性

    useGeneratedKeys="true" 使用自动生成的主键,设置为true即可


    ###keyColumn="id" 主键列的名称,填写数据库中的列名即可
    ###keyProperty="id" 实体类中的属性名,和get方法相关
    ###指定上述属性后,在执行完insert之后,传递的参数位置的实体类会被自动设置上自动生成的主键。



    mybatis的api


    SqlSession工厂构造器SqlSessionFactoryBuilder:


    通常这样写:



    SqlSession工厂对象SqlSessionFactory:

    openSession()没设置为true,则要在执行SqlSession后提交事务



    执行(增删改查执行时不同)


    执行插入


    释放资源



    Mybatis 的代理开发方式实现DAO层的开发(主流)

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


    编写UserMapper接口



    让mybatis框架实现代理dao的要求:

    UserMapper.xml文件中的namespace与UserMapper接口的全限定名相同**


    UserMapper.xml中定义的每个statement的id和UserMapper接口方法名相同**


    UserMapper.xml中定义的每个sql的parameterType的类型和UserMapper接口方法的输入参数类型相同

    这里二者都没有参数


    UserMapper.xml中定义的每个sql的resultType的类型和UserMapper接口方法的输出参数类型相同**


    UserMapper.xml配置文件的位置和名称要和dao接口的目录层级关系及名称保持一致(这里都叫UserMapper)



    调用实现

  • 相关阅读:
    qemu-img check命令详解
    cinder migrate基础内容-1
    lvm常用指令
    ceph 快照,克隆
    http请求工作流程
    Python 生成二维码
    python 往 elasticsearch 存入数据时,文档字段类型问题注意事项
    python 往 elasticsearch 存入数据,然后通过kinaba 检索分析
    git 删除某次提交
    git 强制回滚【覆盖】远程 源码库
  • 原文地址:https://www.cnblogs.com/maomaodesu/p/12306804.html
Copyright © 2020-2023  润新知