04_解决字段名与实体类属性名不相同的冲突
2015-09-15 10:26
323 查看
1 准备表和数据
CREATE TABLE orders(
order_id INT PRIMARY KEY AUTO_INCREMENT,
order_no VARCHAR(20),
order_price FLOAT
);
INSERT INTO orders(order_no, order_price) VALUES('aaaa', 23);
INSERT INTO orders(order_no, order_price) VALUES('bbbb', 33);
INSERT INTO orders(order_no, order_price) VALUES('cccc', 22);
[/code]
2 定义实体类:表的字段和实体的属性不一致
public class Order {
private int id;
private String orderNo;
private float price;
}
[/code]
3 解决方法
3.1 通过查询的别名
<!-- 通过查询字段的别名来对应 -->
<select id="getOrder" parameterType="int" resultType="Order">
SELECT order_id id, order_no orderNo, order_price price FROM orders WHERE order_id=#{id}
</select>
[/code]测试
@Test
public void test1(){
SqlSessionFactory factory = MybatisUtils.getFactory();
SqlSession session = factory.openSession();
String statement = "cn.imentors.mybatis.test4.orderMapper.getOrder";
Order order = session.selectOne(statement , 2);
System.out.println(order);
}
[/code]3.2 通过resultMap
<resultMap type="Order" id="getOrder2Map">
<id property="id" column="order_id"/>
<result property="orderNo" column="order_no"/>
<result property="price" column="order_price"/>
</resultMap>
<select id="getOrder2" parameterType="int" resultMap="getOrder2Map">
SELECT * FROM orders WHERE order_id=#{id}
</select>
[/code]resultMap : 封装一些映射关系
id : 专门针对主键
result : 针对一般字段
测试
@Test
public void test2(){
SqlSessionFactory factory = MybatisUtils.getFactory();
SqlSession session = factory.openSession();
String statement = "cn.imentors.mybatis.test4.orderMapper.getOrder2";
Order order = session.selectOne(statement , 2);
System.out.println(order);
}
[/code]
捐赠我们
良师益友工作室一直在致力于帮助编程爱好更加快速方便地学习编程,如果您对我们的成果表示认同并且觉得对你有所帮助,欢迎您对我们捐赠^_^。
相关文章推荐
- JNI_Android项目中调用.so动态库实现详解【转】
- mysql 优化
- 怎样把php数组转换成字符串,php implode()
- 设定字符串字符的颜色
- Android之xml解析2,3
- C++中string类解析
- Android USER 版本与ENG 版本的差异
- HTTP 错误码备查
- JS冒号的作用
- 2015 9月15日 工作计划与执行
- MySQL 5.5 服务器变量详解
- SSDB的安装配置
- J版OpenStack table、tab前后翻页
- 程序猿老张-下
- tomcat 在linux下权限配置
- php设计模式之迭代器模式
- 安装jekyll
- 9月12日全球域名注册商(国际域名)保有量及市场份额
- 马哥-51CTO-Linux培训-0901-linux文件系统
- LTM双机配置手册v11