1. Mybatis原生态(过时了)

/*** step1: 根据配置mybatis_config.xml(全局配置文件)创建一个SqlSessionFactory对象* step2: sql映射文件EmployeeMapper,配置了一个sql以及sql的封装规则等* step3: 将sql映射文件注册在全局配置文件中* step4: 写代码:* 1. 通过全局配置文件得到sqlSessionFactory* 2. 使用sqlSession工厂建造器,build一个sqlSessionFactory对象* 3. 通过sqlSessionFactory.openSession()创建一个sqlSession* 4. sqlSession.selectOne(sql语句的唯一id,返回的映射类)** @return*/
| sqlSession的特点: |
|---|
| 1. 的底层就是Connection, 是非线程安全的——》意味着不能反编译。 每次使用都应该去获取新的对象; |
2. 用完需要释放; |
| 2个重要的配置文件: |
|---|
1. mybatis_conf.xml: 全局配置文件, 包含数据库和xxxMapping的配置文件 |
2. xxxMapping.xml: sql映射类配置文件, 包含了sql的映射信息—-》sql语句的唯一标识,返回的类型 |
1.1 mybatis的接口式编程(流行)

| 这样做的优点: |
|---|
1. 接口的参数类型固定,防止sql参数类型错误; |
2. 接口的返回值类型固定,而不像原始的那样是Object类型; |
2. 接口式编程的进化史
| 原生态: 定义接口Dao——->通过DaoImpl来实现功能 |
|---|
| Mybatis: 定义一个全局配置文件(mybatis_conf.xml), 指明映射的配置文件:xxxMapping.xml———-》在xxxMapping.xml中的名称空间指定mapping接口, 将sql语句的id赋值为mapping接口中的方法, val赋值给mapping的bean类; |
3. Mybatis的全局设置项
注意: setting之前需要引入mybatis相关的包
<!--2、settings,是setting的集合,包含很多重要的设置项setting:用来设置每一个设置项name:设置项名value:设置项取值--><settings><!--开启驼峰命名--><setting name="mapUnderscoreToCamelCase" value="true"/></settings>
4. 为处理器起别名
| 作用: 为Java类(主要是mysql的映射类)其别名,减小书写的长度 有了别名后,在sql映射类中,resultType值直接写别名即可。 |
|---|
4.1 typeAlias
4.2 package
|
5. typeHandler 类型处理器
| 作用: 将Java的类属性与数据库中的字段进行一一映射,比如,Java中的string匹配mysql中的varchar |
|---|
6. environments标签
| 环境,mybatis可以配置多种环境 ,default指定使用某种环境,用id来标识环境。 可以达到快速切换环境。 有2个子标签,transactionManager和dataSource |
|---|
6.1 transactionManager
事物管理器, type指定管理器的类型
type:事务管理器的类型;JDBC(JdbcTransactionFactory)|MANAGED(ManagedTransactionFactory)
自定义事务管理器:实现TransactionFactory接口.type指定为全类名
最终的事物控制是Spring,以上的是历史版本。 |
|
6.2 dataSource
数据源
type:数据源类型;UNPOOLED(UnpooledDataSourceFactory)
|POOLED(PooledDataSourceFactory)
|JNDI(JndiDataSourceFactory)
自定义数据源:实现DataSourceFactory接口,type是全类名 |
7. mappers
| 作用: 将sql映射注册到全局配置中 处理的逻辑: 全局配置文件中注册sql的映射文件(如果有)——》映射文件配置对应的接口(resultType属性) |
|---|
7.1 注册配置文件类型
resource:引用类路径下的sql映射文件
mybatis/mapper/EmployeeMapper.xml
url:引用网路路径或者磁盘路径下的sql映射文件
file:///var/mappers/AuthorMapper.xml |
|
7.2 注册接口类型
class:引用(注册)接口,
1、有sql映射文件,映射文件(xxx.xml)名必须和接口的文件名同名,并且放在与接口同一目录下;
2、没有sql映射文件,所有的sql都是利用注解写在接口上;——-》在方法名上加上insert/select等注解标签
推荐:
比较重要的,复杂的Dao接口我们来写sql映射文件
不重要,简单的Dao接口为了开发快速可以使用注解; |
|
7.3 批量注册接口
此时依旧需要sql的映射文件: xxxMapping.xml |
