在mybaties的核心配置文件中,我们可以在根标签configruation里面配置的标签有:
properties 属性:该标签可以加载外部的properties文件
settings设置
typeAliases类型别名:设置类型别名
typeHandlers类型处理器
objectFactory对象工厂
plugins插件
environnents环境:数据源环境配置标签。它内部还有其他的子标签:
environment:环境变量的配置。
transactionManager:配置事物管理器
datasource:配置数据源
databaseldProvider数据车厂商标识
mappers映射器:加载映射文件配置
下面对一些常用的配置进行讲解:
environnents环境:数据源环境配置标签:
<!-- 数据源的环境-->
<environments default="developement">
<environment id="developement">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test01"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<transactionManager type="JDBC"></transactionManager>它的属性type:表示的事物管理器的类型。它的type虽然还有其他的,但是不常用,这里就不讲解了。
<dataSource type="POOLED">:这个标签是用来配置数据源信息的。然后type类型表示的是指定当前的数据类型是连接池。它的type虽然还有其他的,但是不常用,这里就不讲解了。 在开发中这部分代码基本上都是复制粘贴,需要修改的也就下面数据源的信息。
mappers映射器:加载映射文件配置:
<!-- 加载映射文件-->
<mappers>
<mapper resource="com/outlier/mapper/UserMapper.xml"></mapper>
</mappers>
因为我们使用的sql语句我们自己都写在里面,我们在编写逻辑代码的时候,都是通过调用里面的sql语句。
然后它的路径加载的方式:
使用相对于类路径的资源引用,例如<mapperresource="org/mybatis/builder/AuthorMapper.xml"/>
使用完全限定资源定位符(URL),例如: <mapper url="file://var/mappers/AuthorMapper.xml"/>·
使用映射器接口笑现类的完全限定类名,<mapper class="org.mybatis.builder.AuthorMapper"/>·
将包内的映射器接口实现全部主册为映射器,例如: <package name="org.mybatis.builder" />
我们常用的就是第一个。
properties 属性:该标签可以加载外部的properties文件
这个就像我们以前把数据源信息和配置文件进行解耦。
<!-- 加载外部的properties-->
<properties resource="jdbc.properties"/>
<!-- 数据源的环境-->
<environments default="developement">
<environment id="developement">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
测试效果:
typeAliases类型别名:设置类型别名
我们在mapeer映射文件写数据类型的时候:
刚开始说的要写全限定名,但每次写的话都会写很多代码,这个标签,就是让我们为其设置简单的别名。
举个例子:
刚开始我们写的是int包装类的全限定名,其实JAVA为其设置别名为int,我们测试一下:
我们进行了删除操作:把id为5的删掉了:
java设置的别名:
Integer----------->int
String----------->string
Double----------->double
Long----------->long
Boolean----------->boolean
当我们对自己自定义的类的时候java就没有为我们设置别名了,所以我们需要自己设置:
type属性:里面放的是你需要设置别名的类的权限定名,alias属性为你设置的权限定名。
运行效果:
这里讲一个知识,如果我们把这个自定义别名没有写在properties后面就会报错:
报错说的是我们要按照这个顺序来写。