MyBatis基础
1. 在MyBatis的核心配置文件中引入外部的properties文件
有时候需要将外部的与连接数据库相关的参数(比如数据库密码等),毕竟连接外部文件的话以后修改就只需要修改外部文件;
一般在核心配置文件中通过标签<properties>调用;
如下:
<properties resource="JDBC.properties"/>
然后在<dataSource>
中<property>
标签的value中填写即可,如下填写方式:(配置文件用键值对的方式进行书写)
<dataSource type="POOLED">
<property name="driver" value="${drive}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
注意点:这些标签,如<properties>都是有放置顺序的,如果顺序出错,就会报错;下面就是报错的内容;
还有就是在<properties>标签中,还有一个property标签,这个标签可以用来设置键值对,就和外部文件的设置方法一样,但是在<dataSource>标签中使用时,优先会调用外部文件,只是说如果外部文件不存在这个参数的情况下,内部属性定义也是可以的;
如下:
2. MyBatis中别名的设置
就像是之前博客学习的一样,很多的地方其实名字很负责,因为很多地方都需要完整的路径,但是这里有一个创建别名的方法,也就是说可以不需要每一次都写那么长的路径,只需要使用自己设置好的别名,就可以指向特定的位置;
1. 主要使用到的标签
主要使用到的标签是 <typeAliases>,在这个标签里面有<typeAlias>标签,在这个标签里面进行别名的设置就可以;
<typeAliases>
<!--这个属性type填写的是完整的类名路径;alias表示自己设置的别名;-->
<typeAlias type="dxs.pojo.User" alias="User"/>
<!--在这里面还可以只是定义一个包名;-->
</typeAliases>
---------------上面也可以是这样写---------------------------
<typeAliases>
<!--在这里面还可以只是定义一个包名;-->
<package name="dxs.pojo"/>
</typeAliases>
就像是上面说的一样,可以定义一个包名,然后默认情况下,它的别名就是首字母小写;当然也可以通过注解进行设置,注解是
@Alias()
;
3. 在MyBatis的核心配置文件中,环境的配置
这里的环境是指,你所连接的数据库环境;如下:
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${drive}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
其中<environments>标签有一个叫做默认的属性(default),这个属性表示你当前使用的环境;可以这样理解,你可能有多个环境,不一定是连接这个数据库的,当你需要换其它的环境时,只需要修改这个default属性值就可以了;
environment 标签
的属性id,是用来给这个环境起名的,也就相当于一个区分符,防止环境之间互相冲突;transactionManager 标签
中有两个type,一个是JDBC,还有一个是MANAGED;第一个是有数据的提交和回滚,第二个几乎没什么用,所以常用的就是第一个JDBC;dataSource标签
中的type属性,默认值是POOLED;还有的属性值有:UNPOOLED(unpooled),JNDI;
POOLED是一种类似于连接池的思想,如果有空闲的就返回空闲的连接,否则才创建一个新连接;
UNPOOLED则是每一次都会有一个新的连接;
JNDI
网上有很多资料,讲的很乱,大致也是一种连接查询的方式;
4. 映射器Mapper
在Mybatis的核心配置文件中,需要使用<mappers>标签对实现了接口的Mapper.xml配置文件进行引入;使用的方式,有以下几种:
<mappers>
<mapper resource="UserMapper.xml"/>
</mappers>
如果是resource属性的话,那么这个配置文件可以不用和接口放在一个包;
也可以如下地方方式引入:
<mapper class="dxs.dao.UserMapper"/>
使用class属性时,必须要完整的路径;还有这个class里面只要名字就可以了,不需要添加后面的后缀;
4. MyBatis的SqlSession创建
在Mybatis中每个数据库代表一个SqlSessionFactory实例;
每一个SqlSession实例都可以看成是一次请求;一个SqlSessionFactory可以有多个SqlSession;
每一个SqlSession又可以获得不同的接口;