经典三层框架初识--一.Mybatis(上)(对上补充)
关于上面的写的入门案例的补充改进:
①.在我们的全局配置文件中
我们之前写的全局配置文件是下面这个:mybatis.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<properties resource="jdbc.properties"></properties>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="UserMapper.xml"/>
</mappers>
</configuration>
官方文档给我们的是下面这种表达式结构的模式,不是我们是用字符串手动输入下面四个参数 .如果我们更换数据库的话,就会不方便.
我们以前写过jdbc.properties这个配置文件,那么我们能不能把这个配置文件引入到这个地方来?这样以后我们就可以不修改这里的全局配置,只需要修改jdbc.properties这个属性文件就可以了
那前提是我们需要把这个属性文件加载进来,那如何加载呢?
http://www.mybatis.org/mybatis-3/zh/configuration.html#properties 下的properties标签的介绍
这些属性都是可外部配置且可动态替换的,既可以在典型的 Java 属性文件中配置,亦可通过 properties 元素的子元素来传递
这里案例将两种方式合起来了
<properties resource="org/mybatis/example/config.properties">
<property name="username" value="dev_user"/>
<property name="password" value="F2Fa3!33TYyg"/>
</properties>
其实是
(1)<properties resource="org/mybatis/example/config.properties"></properties>
这里的resource就是我们需要读取的java属性文件
(2)<properties>
<property name="username" value="dev_user"/>
<property name="password" value="F2Fa3!33TYyg"/>
</properties>
我们用第一种.配置在上面,因为configuration里面的标签有顺序.下面就按原来的表达式就可以了.下面是修改后的配置文件.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 加载外部属性文件 -->
<properties resource="jdbc.properties"></properties>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="UserMapper.xml"/>
</mappers>
</configuration>
②.关于别名标签
我们先看一下映射配置的官方文档
我们发现这里红色框住的内容就是个类名,而我们之前写的都是全限定名称,那肯定有方法让我们在这里写类名即可.
下面介绍typeAliases这个标签,类型别名.注意,这个标签是定义在全局配置文件中的,...切记,全局配置文件中标签是有顺序的
所以我们可以将原来的全局配置文件进一步修改:mybatis.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 加载外部属性文件 -->
<properties resource="jdbc.properties"></properties>
<typeAliases>
<!-- 单个类型别名 -->
<!-- <typeAlias type="pojo.UserInfo" alias="userinfo"/> -->
<!-- 批量起别名 以包为单位,别名就是类名,不区分大小写-->
<package name="pojo"/>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="UserMapper.xml"/>
</mappers>
</configuration>
而映射配置文件改为
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="adhs">
<!-- 增删改查 -->
<!-- <insert id=""></insert>
<update id=""></update>
<delete id=""></delete> -->
<select id="selectUser" resultType="userinfo">
select * from userinfo where uid = #{uid}
</select>
</mapper>