zoukankan      html  css  js  c++  java
  • Mybatis-02-CRUD及配置解析

    CRUD

    1.namespace

    namespace中的包名要和Dao/Mapper接口的包名一致!

    2.select

    选择,查询语句; id:对应的namespace中的方法名 resultType:Sql语句执行的返回值 parameterType:参数类型

    步骤:

    1. 编写接口
    2. 编写对应的mapper中的sql语句
    3. 测试 增删改需要提交事务

    3.insert

    ## 4.update

    5.delete

    6.分析错误

    • 便签不要匹配错
    • resource绑定mapper,需要使用路径
    • 程序配置文件必须符合规范
    • NullPointerException,没有注册到资源
    • 输出的xml文件中存在乱码
    • maven资源没有导出的问题

    7.万能Map

    如果实体类的字段或参数过多,可以考虑使用map。

    map传递参数,直接在sql中取出key即可; 而对象传递参数,直接在sql中取出属性即可。

    多个参数用Map,或者注解!

    8.思考题

    模糊查询怎么写? 1.java代码执行的时候,参数中包含通配符‘%’ 2.在sql拼接中使用通配符

    -------------------------正片开始

    配置解析(重要)

    1.核心配置文件

    mybatis-config.xml configuration(配置): properties(属性) settings(设置) typeAliases(类型别名) typeHandlers(类型处理器) objectFactory(对象工厂) plugins(插件) environments(环境配置) environment(环境变量) transactionManager(事务管理器) dataSource(数据源) databaseIdProvider(数据库厂商标识) mappers(映射器)

    2.环境配置(environments)

    Mybatis可以配置适应多种环境,不过每个sqlSessionFactory实例只能选择一种环境。 其中,Mybatis默认的事务管理器是JDBC,默认的连接池是POOLED。

    3.属性(properties)

    我们可以通过propertis属性来实现引用配置文件 编写一个配置文件 db.properties 在核心配置文件中映入 可以直接引用外部文件,也可以在其中增加一些属性配置,外部文件优先级大。

    4.类型别名(typeAliases)

    只和xml配置相关,用于减少完全限定名的冗余

    typeAlias / package=在类名上加注解 @Alias(别名)

    5.设置(setting)

    6.其他配置

    typeHandlers(类型处理器) objectFactory(对象工厂) plugins(插件)

    7.映射器(mappers)

    MapperRegistry:注册绑定我们的Mapper文件; 1.resource绑定mapper 2.class 注意点:接口和mapper配置文件同名且在一个包下 3.package: 注意点:扫描包下的接口和mapper配置文件必须同名且在一个包下。

    8.生命周期和作用域(Scope)

    错误的使用导致并发问题。 SqlSessionFactoryBuild: 一旦创造SqlSessionFactory,就不再需要了。 局部变量 SqlSessionFactory: 一旦被创建,运行期间就一直存在,没必要丢弃或重建。 最佳作用域:应用作用域。 SqlSession: 连接到连接池的一个请求,需要开启和关闭。 不是线程安全的,最佳作用域是方法作用域。

    解决属性名和字段名不一致的问题

    引出结果集映射:resultMap

    resultMap元素是Mybatis中最强大的元素

  • 相关阅读:
    讲讲HashCode的作用
    自定义一个类加载器
    从为什么String=String谈到StringBuilder和StringBuffer
    System.load(String filename)和System.loadLibrary(String libname)的区别
    自己实现一个Native方法的调用
    Java对象表示方式1:序列化、反序列化和transient关键字的作用
    Java对象表示方式2:XStream实现对对象的XML化
    static关键字作用
    final的作用
    多态
  • 原文地址:https://www.cnblogs.com/CodeHuba/p/13445409.html
Copyright © 2011-2022 走看看