Mybaits属性名与数据字段名不一致

Mybaits属性名与数据字段名不一致

​ 如果属性名与列名不一致,在传参时有问题,sql执行获得的结果返回时也会出现问题。

  • 使用sql别名,sql执行后的返回结果自动装填到该属性中。即使属性名与数据库字段名不一致。
  • 而第二种更常见的做法,使用标签 resultMap 完成属性名与数据库字段名的绑定。

使用别名完成绑定

	<select id="query" resultType="user">
  		select 
			id id
			,name userName
			,age age
		 from t_user
  	</select>

测试一下

	@Test
	public void test7() throws IOException {
		InputStream in = Resources.getResourceAsStream("mybatis-cfg.xml");
		SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
		SqlSession session = factory.openSession(true);
		// 获取代理类
		UserMapper dao = session.getMapper(UserMapper.class);
		List<User> list = dao.query();
		for (User user : list) {
			System.out.println(user);
		}
		session.close();
	}

打印结果粘贴

[QC] DEBUG [main] org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(159) | ==>  Preparing: select id id ,name userName ,age age from t_user 
[QC] DEBUG [main] org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(159) | ==> Parameters: 
[QC] DEBUG [main] org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(159) | <==      Total: 15
User [id=1, userName=猴子, age=18]
User [id=37, userName=cjw, age=18]
User [id=39, userName=cjw, age=18]
User [id=40, userName=cjw, age=18]
User [id=41, userName=zhangsan, age=25]
User [id=42, userName=zhangsan1, age=26]
User [id=43, userName=zhangsan2, age=27]
User [id=44, userName=uw, age=22]
User [id=45, userName=zhangsan, age=25]
User [id=46, userName=zhangsan1, age=26]
User [id=47, userName=zhangsan2, age=27]
User [id=48, userName=uw, age=22]
User [id=49, userName=zhangsan, age=25]
User [id=50, userName=zhangsan1, age=26]
User [id=51, userName=zhangsan2, age=27]

使用 resultMap 标签完成绑定

  	<resultMap type="user" id="baseMap">
  		<!-- 表结构中的column和对象中成员变量对应关系 -->
  		<id column="id" property="id"/>
  		<result column="name" property="userName"/>
  		<result column="age" property="age"/>
  	</resultMap>
  	
  	<!-- 
  		resultType一般用在单表处理中 
  		resultMap 一般使用在多表中
  	-->
  	<select id="query1" resultMap="baseMap" >
  		select 
			*
		 from t_user
  	</select>

测试一下

	@Test
	public void test8() throws IOException {
		InputStream in = Resources.getResourceAsStream("mybatis-cfg.xml");
		SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
		SqlSession session = factory.openSession(true);
		// 获取代理类
		UserMapper dao = session.getMapper(UserMapper.class);
		List<User> list = dao.query1();
		for (User user : list) {
			System.out.println(user);
		}
		session.close();
	}

打印结果粘贴

[QC] DEBUG [main] org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(159) | ==>  Preparing: select * from t_user 
[QC] DEBUG [main] org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(159) | ==> Parameters: 
[QC] DEBUG [main] org.apache.ibatis.logging.jdbc.BaseJdbcLogger.debug(159) | <==      Total: 15
User [id=1, userName=猴子, age=18]
User [id=37, userName=cjw, age=18]
User [id=39, userName=cjw, age=18]
User [id=40, userName=cjw, age=18]
User [id=41, userName=zhangsan, age=25]
User [id=42, userName=zhangsan1, age=26]
User [id=43, userName=zhangsan2, age=27]
User [id=44, userName=uw, age=22]
User [id=45, userName=zhangsan, age=25]
User [id=46, userName=zhangsan1, age=26]
User [id=47, userName=zhangsan2, age=27]
User [id=48, userName=uw, age=22]
User [id=49, userName=zhangsan, age=25]
User [id=50, userName=zhangsan1, age=26]
User [id=51, userName=zhangsan2, age=27]

项目打包 提取码:3a7q 环境:eclipse,maven

总结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值