mybatis全局配置文件-(2)-settings 设置

这是MyBatis 中极为重要的调整设置,它们会改变MyBatis 的运行时行为。

比如在 mybatis全局配置文件中,添加如下setting 来开启驼峰转化(默认是关闭的)

<!-- 
	settings包含很多重要的设置项
	setting:用来设置每一个设置项
		name:设置项名
		value:设置项取值
        下面的setting是用来 将数据库的字段进行驼峰转化用的,
        比如数据库的字段 last_name 将映射到 bean中的 lastName【  "_小写字母"  会自动转化成  "大写字母" 】这样就不需要 在映射文件中的sql查询语句里 写别名了 
 -->
<settings>
	<setting name="mapUnderscoreToCamelCase" value="true"/>
</settings>

mybatis接口调用下的映射文件:

<?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="com.mybatis.mapper.EmployeeMapper">
<!-- 
上面的 namespace:名称空间;指定为接口的全类名
下面的 id:唯一标识被规定为接口方法名 【public Employee getEmpById(Integer id);】
下面的 resultType:返回值类型
下面的 #{id}:从传递过来的参数中取出id值

 -->
	<select id="getEmpById" resultType="com.mybatis.bean.Employee">
	<!--  
	1、之前没有在mybatis的全局配置文件中,开启驼峰转化 setting ,
	因此执行  select * from tb1_employee where id = #{id}  时,
	那时 数据库的字段 last_name 无法直接映射 到bean 中的lastName ,
	查询结果导致数据库 last_name 无法赋值给employee bean中的lastName
	所以,employee 中的  lastName 是空值,
	所以需要在 这里的sql语句中取别名
	select id,last_name lastName,email,gender from tbl_employee where id = #{id}
	
	2、现在已经开启了驼峰转化,所以就不需要 在sql语句中 取别名了
	下面的sql语句 也可以 直接写成:select * from tb1_employee where id = #{id}
	-->
	select id,last_name,email,gender from tbl_employee where id = #{id}
	</select>
</mapper>

bean的成员变量如下:数据库字段 last_name与bean中的lastName不能直接映射,要么在mybatis映射文件中的数据库查询中用别名,要么在mybatis全局配置文件中开启驼峰转化设置。

public class Employee {
	private int id;
	private String lastName;
	private String email;
	private String gender;

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getLastName() {
		return lastName;
	}

	public void setLastName(String lastName) {
		this.lastName = lastName;
	}

	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}

	public String getGender() {
		return gender;
	}

	public void setGender(String gender) {
		this.gender = gender;
	}

	@Override
	public String toString() {
		return "Employee [id=" + id + ", lastName=" + lastName + ", email=" + email + ", gender=" + gender + "]";
	}

}

 

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments