一、Mybatis基础
1.1辅助配置
配置 SQL 提示。
默认在 mybatis 中编写 SQL 语句是不识别的。可以做如下配置:



现在就有sql提示了

新的问题
产生原因: Idea 和数据库没有建立连接,不识别表信息
解决方式:在 Idea 中配置 MySQL 数据库连接



可以了不冒红(可以建立多个连接)

配置 Mybatis 的日志输出


1.2 JCBD VS Mybaits

1.3数据库连接池
数据库连接池是个容器,负责分配、管理数据库连接 (Connection) 。
它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个。
释放空闲时间超过最大空闲时间的连接,来避免因为没有释放连接而引起的数据库连接遗漏(比如,一个sql用了一个连接,但它迟迟没有使用,就无法归还,连接越用越少)。
怎么解决呢:连接池里面有一个类似定时器的东西,如果持续不释放,定时到了会强制归还连接
优势:
-
资源重用
-
提升系统响应速度
-
避免数据库连接遗漏
标准接口: DataSource
官方 (sun) 提供的数据库连接池接口,由第三方组织实现此接口。
功能:获取连接


推荐使用

咱们的入门程序是Hikari,默认的
现在咱们来切换



结果

小结
数据库连接池
是一个容器,负责分配、管理数据库连接 (Connection)
优势:资源复用、提升系统响应速度
接口: DataSource
产品: C3P0 、 DBCP 、 Druid 、 Hikari
1.4 XML映射配置
前言:咱们的Mybaits当中sql语句是定义在注解里面。

下面解释另一种方法,可以将sql语句定义在XML文件中。
在 Mybatis 中,既可以通过注解配置 SQL 语句,也可以通过 XML 配置文件配置 SQL 语句。
规则:
- XML 映射文件的名称与 Mapper 接口名称一致,并且将 XML 映射文件和 Mapper 接口放置在相同包下(同包同名)。

扩展一下







- XML 映射文件的 namespace 属性为 Mapper 接口全限定名一致。


- XML 映射文件中 sql 语句的 id 与 Mapper 接口中的方法名一致,并保持返回类型一致。

在sql语句(select....)查询完成之后,每一条记录都需要封装到User对象当中


结果


XML映射文件
提高XML效率

那在 Mybatis 的开发中,到底使用注解开发还是使用 XML 开发呢 ?
使用 Mybatis 的注解,主要是来完成一些简单的增删改查功能。如果需要实现复杂的 SQL 功能,建议使用 XML 来配置映射语句。
小结
