mybatis实现resultmap结果集-mile米乐体育

resultmap——解决属性名和字段名不一致的问题

数据库中的字段

新建一个项目,拷贝之前的,测试实体类字段不一致的情况

1.新建一个module——mybatis-03

2.新建db.properties配置文件

driver=com.mysql.jdbc.driver url=jdbc:mysql://localhost:3306/mybatis?usessl=false&useencoding=false&characterencoding=utf-8&servertimezone=gmt username=root password=root

3.新建mybatis-config.xml配置文件

4.创建com.kuang.utils包,包下创建mybatisutils工具类

package com.kuang.utils; import org.apache.ibatis.io.resources; import org.apache.ibatis.session.sqlsession; import org.apache.ibatis.session.sqlsessionfactory; import org.apache.ibatis.session.sqlsessionfactorybuilder; import java.io.ioexception; import java.io.inputstream; //sqlsessionfactory用来构建sqlsession public class mybatisutils { //提升sqlsessionfactory的作用域 private static sqlsessionfactory sqlsessionfactory; static{ try { // 使用mybatis第一步获取sqlsessionfactory对象 string resource = "mybatis-config.xml"; // 通过resources读取配置文件 inputstream inputstream = resources.getresourceasstream(resource); // 通过sqlsessionfactorybuilder加载一个流,构建一个sqlsession工厂 sqlsessionfactory = new sqlsessionfactorybuilder().build(inputstream); }catch (ioexception e){ e.printstacktrace(); } } // 既然有了 sqlsessionfactory,顾名思义,我们可以从中获得 sqlsession 的实例。 // sqlsession 提供了在数据库执行 sql 命令所需的所有方法。 public static sqlsession getsqlsession(){ return sqlsessionfactory.opensession(); } }

5.创建com.kuang.pojo包,里面存储实体类对象user

package com.kuang.pojo; public class user { private int id; private string name; private string password; public user(int id, string name, string password) { this.id = id; this.name = name; this.password = password; } public user() { } public int getid() { return id; } public void setid(int id) { this.id = id; } public string getname() { return name; } public void setname(string name) { this.name = name; } public string getpassword() { return password; } public void setpassword(string password) { this.password = password; } @override public string tostring() { return "user{" "id=" id ", name='" name '\'' ", password='" password '\'' '}'; } }

6.创建com.kuang.dao包,里面存放接口usermapper以及接口实现类usermapper.xml

usermapper

package com.kuang.dao; import com.kuang.pojo.user; import java.util.list; import java.util.map; public interface usermapper { // 根据用户id查询用户信息 user getuserbyid(integer id); }

usermapper.xml

http://www.cppcns.com "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

7.创建测试类

package com.kuang.dao; import com.kuang.pojo.user; import com.kuang.utils.mybatisutils; import org.apache.ibatis.session.sqlsession; import org.junit.test; import java.util.hashmap; imporhttp://www.cppcns.comt java.util.list; import java.util.map; public class userdaotest { @test public void testgetuserbyid(){ //第一步:获取sqlsession对象 sqlsession sqlsession = mybatisutils.getsqlsession(); //执行sql // 方式一:getmapper(推荐使用) usermapper userdao = sqlsession.getmapper(usermapper.class); user user1 = userdao.getuserbyid(1); system.out.println(user1); //关闭sqlsession sqlsession.close(); } }

8测试结果及问题分析

8.1mile米乐体育的解决方案一:在sql查询语句中为pwd字段起别名起别名

将原sql语句

select id,name,pwd as password from user where id=#{id}

改为

select id,name,pwd as password from user where id=#{-->id}

8.2 resultmap 结果集映射

字段名:id name pwd

属性名:id name password

  • resultmap 元素是 mybatis 中最重要最强大的元素
  • resultmap 的设计思想是,对简单的语句做到零配置,对于复杂一点的语句,只需要描述语句之间的关系就行了
  • resultmap 的优秀之处——你完全可以不用显式地配置它们

到此这篇关于mybatis实现resultmap结果集的文章就介绍到这了,更多相关mybatis resultmap结果集内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

展开全文
内容来源于互联网和用户投稿,文章中一旦含有米乐app官网登录的联系方式务必识别真假,本站仅做信息展示不承担任何相关责任,如有侵权或涉及法律问题请联系米乐app官网登录删除

最新文章

网站地图