MyBatis学习总结3-优化MyBatis配置文件

时间:2024-10-15 16:35:08

连接数据库配置优化

可以将数据库连接配置信息卸载conf.xml中,但是为了优化连接,专门写一个properties用于存数据库连接信息,然后在conf.xml中进行引用,里面包括数据库驱动,地址,用户名,密码等等

db.properties

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatisfirst
username=root
password=123456

修改conf.xml中的对应这四项配置,其它不变

                <property name="driver" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />

为实体类定义别名,简化sql映射xml文件中的引用

之前,我们在sql映射xml文件中的引用实体类时,需要写上实体类的全类名(包名+类名),如下:

<!-- 根据id查询得到一个user对象 -->
<select id="getUserById" parameterType="int" resultType="com.tfj.domain.User">
select * from users where id=#{id}
</select>

resultType=”com.tfj.domain.User”这里写的实体类User的全类名com.tfj.domain.User,每次都写这么长很麻烦,我们可以简写成下面的格式

<!-- 根据id查询得到一个user对象 -->
<select id="getUserById" parameterType="int" resultType="_User">
select * from users where id=#{id}
</select>

parameterType="_User"这样写就简单多了,为了达到这种效果,我们需要在conf.xml文件中为实体类="com.tfj.domain.User"定义一个别名为"_User",具体做法如下:
在conf.xml文件中<configuration></configuration>标签中添加如下配置:

<typeAliases>
<typeAlias type="com.tfj.domain.User" alias="_User" />
</typeAliases>

这样就可以为com.tfj.domain.User类定义了一个别名为_User,以后_User就代表了com.tfj.domain.User类,这样sql映射xml文件中的凡是需要引用com.tfj.domain.User类的地方都可以使用_User来代替,这就达到了一个简化实体类引用的目的。

除了可以使用<typeAlias type="com.tfj.domain.User" alias="_User"/>这种方式单独为某一个实体类设置别名之外,我们还可以使用如下的方式批量为某个包下的所有实体类设置别名,如下:

<!-- 配置实体类的别名,配置实体类别名的目的是为了在引用实体类时可以使用实体类的别名来代替实体类,达到简写的目的 -->
<typeAliases>
<!-- 为实体类com.tfj.domain.User配置一个别名_User -->
<!-- <typeAlias type="com.tfj.domain.User" alias="_User"/> -->
<!-- 为com.tfj.domain包下的所有实体类配置别名,MyBatis默认的设置别名的方式就是去除类所在的包后的简单的类名
比如com.tfj.domain.User这个实体类的别名就会被设置成User
-->
<package name="com.tfj.domain" />
</typeAliases>

<package name="com.tfj.domain"/>就表示为这个包下面的所有实体类设置别名。MyBatis默认的设置别名的方式就是去除类所在的包后的简单的类名,比如com.tfj.domain.User这个实体类的别名就会被设置成User。