一、优化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提供的解决方式来解决字段名和属性名的映射关系的。