如果Java包装类使用驼峰命名规则,则不要忘记在全局配置文件中将mapUnderscoreToCamelCase属性设置为true,否则自动映射机制无法将SQL查询出的非驼峰命名方式的字段名与Java包装类中的属性进行自动映射。
【示例】在MyBatis的全局配置文件SqlMapConfig.xml(mybatis-config.xml)中,开启驼峰命名规则。
<!-- 开启自动驼峰命名规则(camel case)映射 -->
<setting name="mapUnderscoreToCamelCase" value="true"/>
【示例】MyBatis中使用驼峰命名规则,映射用户信息类。
(1)数据库中创建用户信息表(tb_user),并添加数据。
-- 创建“用户信息”数据表
CREATE TABLE IF NOT EXISTS tb_user
(
user_id INT AUTO_INCREMENT PRIMARY KEY COMMENT '用户编号',
user_name VARCHAR(50) NOT NULL COMMENT '用户姓名',
blog_url VARCHAR(50) NOT NULL COMMENT '博客地址',
remark VARCHAR(50) COMMENT '备注',
create_time TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '注册时间'
) COMMENT = '用户信息表';
-- 添加数据
INSERT INTO tb_user(user_name,blog_url,remark) VALUES('pan_junbiao的博客','https://blog.csdn.net/pan_junbiao','您好,欢迎访问 pan_junbiao的博客');
(2)创建用户信息持久化类(User.java)。
package com.pjb.mybatis.po;
import java.io.Serializable;
import java.util.Date;
/**
* 用户信息持久化类
* @author pan_junbiao
**/
public class User implements Serializable
{
private int userId; //用户ID
private String userName; //用户姓名
private String blogUrl; //博客地址
private String remark; //备注
private Date createTime; //创建时间
public int getUserId()
{
return userId;
}
public void setUserId(int userId)
{
this.userId = userId;
}
public String getUserName()
{
return userName;
}
public void setUserName(String userName)
{
this.userName = userName;
}
public String getBlogUrl()
{
return blogUrl;
}
public void setBlogUrl(String blogUrl)
{
this.blogUrl = blogUrl;
}
public String getRemark()
{
return remark;
}
public void setRemark(String remark)
{
this.remark = remark;
}
public Date getCreateTime()
{
return createTime;
}
public void setCreateTime(Date createTime)
{
this.createTime = createTime;
}
}
(3)编写查询配置方法。
<!-- 根据用户编号,查询用户实体 -->
<select id="findUserById" parameterType="int" resultType="com.pjb.mybatis.po.User">
SELECT * FROM tb_user WHERE user_id = #{id}
</select>
(4)编写执行方法。
/**
* 根据用户编号,查询单个用户实体
* @author pan_junbiao
*/
public static void findUserById()
{
DataConnection dataConnection = new DataConnection();
SqlSession sqlSession = dataConnection.getSqlSession();
User user = sqlSession.selectOne("test.findUserById", 1);
if(user!=null)
{
System.out.println("MyBatis驼峰命名规则:");
System.out.println("用户编号:" + user.getUserId());
System.out.println("用户姓名:" + user.getUserName());
System.out.println("博客地址:" + user.getBlogUrl());
System.out.println("备注信息:" + user.getRemark());
System.out.println("创建时间:" + user.getCreateTime());
}
sqlSession.close();
}
执行结果:
来源:CSDN
作者:pan_junbiao
链接:https://blog.csdn.net/pan_junbiao/article/details/103488433