MyBatis驼峰命名规则

二次信任 提交于 2019-12-11 12:17:22

如果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();
}

执行结果:

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!