栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java Mybatis 03

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java Mybatis 03

3.1 配置解析


3.2 environments 的讲解

environments 指的是 环境的集合。即 使用 mybatis 之前,你需要 提供一个 环境 给它。然后 它根据这个 环境配置,去 初始化,再去执行。

那么 environments 里面 就可以 包含多个 environment !

我们可能对数据库 会有 不同的 方案操作,那么 这里 其实也就体现了 mybatis 的一个好处。那就是 不同的 需求方案,我们可以 在 这个 配置文件里 直接 写 进去。只要 它们是 单独的 每个 environment 就可以了。这样的方式 是很方便的,而且 结构非常的清晰。


然后 你选择 当前 要 执行的 方案,只需要 修改
当然 SqlSessionFactory 的实例 只能选择一个 环境被创建出来,所以 我们 可以 通过 传参的方式,来 指定 环境,创建 SqlSessionFactory 。

SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader, environment);
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader, environment, properties);

我们 还可以 通过 再创建 一个 xml 配置文件的方式,来 进行 这个 xml 文件的 读取,再创建一个 SqlSessionFactory 也能达到目的


3.2.1 transactionManager 事务管理者

在 MyBatis 中 有两种 类型的 事务管理器,JDBC||MANAGED

  • JDBC – 这个配置直接使用了 JDBC 的提交和回滚设施,它依赖从数据源获得的连接来管理事务作用域。
  • MANAGED – 这个配置几乎没做什么。它从不提交或回滚一个连接,而是让容器来管理事务的整个生命周期(比如 JEE 应用服务器的上下文)。 默认情况下它会关闭连接。 然而一些容器并不希望连接被关闭,因此需要将 closeConnection 属性设置为 false 来阻止默认的关闭行为。例如:

  

如果你正在使用 Spring + MyBatis,则没有必要配置事务管理器,因为 Spring 模块会使用自带的管理器来覆盖前面的配置。


3.2.2 dataSource 数据源

dataSource 元素使用标准的 JDBC 数据源接口来配置 JDBC 连接对象的资源。

大多数 MyBatis 应用程序会按示例中的例子来配置数据源。虽然数据源配置是可选的,但如果要启用延迟加载特性,就必须配置数据源。 有三种内建的数据源类型(也就是 type="[UNPOOLED|POOLED|JNDI`]")

UNPOOLED: 就是没有 连接池子,每次 请求 都会 正常的 打开 和 关闭 连接。虽然 有点儿 慢,但 对于 那些 数据库 连接 性能 要求不是很高的。一些 简单的应用 来说,使用 该配置会更好些。它会让你配置最基本的 五个属性:

POOLED: 这种数据源 实现 利用 池 的概念,将 JDBC 连接对象 组织起来,避免了 创建 新的 连接实例时 所必需 的 初始化和 认证时间,这种 处理方式 是 很流行的,能使得 并发 Web 应用 快速响应 请求。

它除了 上述的 基本属性以外,还有 自己专属的 很多属性。

JNDI: 这个数据源实现是为了能在如 EJB 或应用服务器这类容器中使用,容器可以集中或在外部配置数据源,然后放置一个 JNDI 上下文的数据源引用。这种数据源配置只需要两个属性:


3.3 properties 属性

我们 可以通过 properties 属性 来实现 引用 配置文件。

这些属性 都是 可外部配置 且 能够动态替换的,即可以 在 典型的 Java 属性 文件种 配置,也可以 通过 properties 里面的 属性 来传递参数。

  • db.properties
driver = "com.mysql.cj.jdbc.Driver
url = jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=utf8&serverTimezone=UTC
username = root
password = 123123

properties 属性,在 我们的 mybatis 配置文件中,是 必须 在 第一个位置的。xml 文件 是可以 规定 标签顺序的,这个一定要 有所了解!


    

        
    

在 property 里面设置的属性,优先级 是要高于 提前在 文件里 写好的属性的。所以 一旦 有 重复名 的属性,它 也会 优先选择 在 property 里设置的。


4.1 类型别名 typeAliases

类型别名 是 能够 为 Java 类型 设置一个 短的 名字的。存在的意义仅仅是 用来 减少 完全限定名 的 冗余。

说白了就是,Java 的一些对象类型,太tm 长了,每次写 都太费劲了,那我们 还不如 起个 别名,就跟 C 语言的 define 差不多,然后 你只要 调用这个 别名,就相当于是 调用了 原先的那个名字。

  • 一个 一个 类型的 去起 别名的方式
    
        
    
  • 指定一个 包名,然后 起别名,这个 别名 怎么 起呢?我们学过 注解 和反射吧,我们是不是 可以 读取到 一个类的 类注解。那么 当我们 读取到 有一个 注解 @Alias(“别名”) 的时候,我们 这个别名,就会自动设置为 @Alias 的注解值。
    

    
    



之前 讲 万能 Map 的时候,我们 用的 类型是 map,其实 就是用到了 别名机制,只是 mybatis 默认 把 Map 的别名设置为了 小写的 map。

注意点:如果 没有设定 该 注解,那么 就会 有个 默认值。所以 这里一定要注意,可能会 报错。


5.1 设置 settings

设置这东西,没有人 去背它。其实很多东西,真的不需要背。你只要 知道 它在哪里能查到,你 怎么样 能够 实现功能 就行了。

如果 想提高性能,这俩 配置可以看看。



数据库的 列名,大多数 都是 写成 last_Name 这样的形式的。因为之前 Oracle 数据库,会把 列名 全部转为大写,可读性 极差,导致 一大部分程序员 都习惯了 用 下划线,甚至 很多 新生程序员,都把这个 下划线 字段名,当作是一种 规范约束。所以 大多数 列名 都是 有下划线的。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/843182.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号