一、优化Mybatis配置文件conf.xml中数据库的信息
1、添加properties的配置文件,存放数据库的信息:mysql.properties具体代码:
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://172.32.231.206:3306/edihelper
username=root
password=joyplus_edi
2、在conf.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="mysql.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="com/cn/mybatis/mapper/taskMapper.xml"/>
<mapper class="com.cn.mybatis.mapper.ITaskMapper"/>
<mapper resource="com/cn/mybatis/mapper/taskDetailMapper.xml"/>
</mappers> </configuration>
二、优化,SQL映射文件中resultType引入的实体类
之前的引入:
<select id="getAllTask" parameterType="String" resultType="com.cn.mybatis.model.EdiTestTask">
select * from edi_test_task where task_id=#{taskId}
</select>
resultType="com.cn.mybatis.model.EdiTestTask" 每次引入要写这么长,很麻烦,如果可以写成 resultType="EdiTestTask" 就简单多了。要实现这样的效果,需要在conf.xml中为实体类添加别名:
<typeAliases>
<typeAlias type="com.cn.mybatis.model.EdiTestTask"/> </typeAliases>
不过,这样配置只是为某一个类起了别名,其他类引入映射文件文件中还是很麻烦,为了使全部的实体类都可以简单引入,可以这样配置:
<typeAliases>
<package name="com.cn.mybatis.model"/> <!--将存放实体类的包配置别名,该包下面所有实体类都配置了别名-->
</typeAliases>
三、表字段和实体类的变量不一致解决之法:
解决办法一: 通过在查询的sql语句中定义字段名的别名,让字段名的别名和实体类的属性名一致,这样就可以表的字段名和实体类的属性名一一对应上了,这种方式是通过在sql语句中定义别名来解决字段名和属性名的映射关系的。
解决办法二: 通过<resultMap>来映射字段名和实体类属性名的一一对应关系。这种方式是使用MyBatis提供的解决方式来解决字段名和属性名的映射关系的。