1、结果集映射

  就是将返回的记录,逐个字段映射到java对象上;如果数据库字段与java对象的成员变量名对应的话,则使用resultClas即可

2、实现

  结合 ibatis初探这篇文章中提到的project 修改以下文件:

  

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMap
PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-2.dtd">
<sqlMap>
<typeAlias alias = "user" type = "com.jiexun.User" /> <resultMap class="user" id="dbUser">
<!--property值 是类的成员名,column 是数据库字段名 -->
<result property="userId" column="id" jdbcType="int" />
<result property="userName" column="name" jdbcType="varchar" />
</resultMap> <select id="getUser" parameterClass = "int" resultMap="dbUser">
select * from user where user.id = #id#
</select> <!-- 对象传参 user的属性中有id name 成员变量 -->
<insert id="addUser" parameterClass="user">
insert into user values(#id#,#name#)
</insert> <!-- Map传参 -->
<insert id="addUser2" parameterClass="java.util.HashMap">
insert into user values(#id#,#name#)
</insert>
</sqlMap>

user.xml

user类主要是修改了成员名,以便有鲜明的对比

package com.jiexun;

public class User {
public int userId;
public String userName;
public int getId() {
return userId;
}
public void setId(int id) {
this.userId = id;
}
public String getName() {
return userName;
}
public void setName(String name) {
this.userName = name;
}
}

com.jiexun.User

import java.io.Reader;
import java.util.HashMap;
import java.util.List; import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
import com.jiexun.User; public class testIbatis { /**
* @param args
*/
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
int id = 1002;
User newUser = new User();
newUser.setId(1001);
newUser.setName("LS"); String config = "com/jiexun/xml/ibatis.xml";
Reader reader = Resources.getResourceAsReader(config);
SqlMapClient sqlMap = SqlMapClientBuilder.buildSqlMapClient(reader);
//对象传参 插入
// Object obj = sqlMap.insert("addUser",newUser);
// System.out.println("插入新用户返回值:" + obj);
//
// //Map传参 插入
// HashMap paraMap = new HashMap<String, Object>();
// paraMap.put("id", "1002");
// paraMap.put("name", "WWN");
// Object obj2 =sqlMap.insert("addUser2",paraMap); //查询
List<User> list = (List<User>)sqlMap.queryForList("getUser",id);
System.out.println("执行select完毕");
for (User user : list) {
System.out.println(user.userId + ": " + user.userName);
} } }

testIbatis

  

ibatis resultMap 结果集映射的更多相关文章

  1. resultMap结果集映射解决属性名和字段不一致问题

    解决属性名和字段名不一致的问题 1.出现的问题 数据库中的字段 ​ 新建一个项目,拷贝之前的,测试实体类与数据库字段不一致的情况 public class User { private int id; ...

  2. Mybatis学习笔记-ResultMap结果集映射

    解决属性名与字段名不一致的问题 新建项目 --> 测试实体类字段不一致的情况 数据库字段:id,name,pwd 实体类属性:id,name,password 输出结果 User{id=1, n ...

  3. ibatis resultMap 的用法

    先看个具体的例子: <resultMap id=”get-product-result” class=”com.ibatis.example.Product”> <result pr ...

  4. resultMap结果集映射

    resultMap结果集是用来定义sql查询的结果与java对象的映射关系.它主要解决2大问题: 1)可以解决POJO属性名和表结构的字段名不一致问题(甚至是 不是标准的驼峰命名法) 2)可以完成高级 ...

  5. iBatis resultMap报错 nullValue完美解决

    http://blog.csdn.net/liguohuaty/article/details/4038437

  6. resultMap,日志,分页

    问题:属性名和字段名不一致 解决方法 起别名 select id, username, password as pwd from db4.user resultMap结果集映射 id username ...

  7. mybatis 3.x源码深度解析与最佳实践(最完整原创)

    mybatis 3.x源码深度解析与最佳实践 1 环境准备 1.1 mybatis介绍以及框架源码的学习目标 1.2 本系列源码解析的方式 1.3 环境搭建 1.4 从Hello World开始 2 ...

  8. java web(六):mybatis之一对一、一对多、多对多映射

    前言: 百度百科: MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过程以及高级映射.MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集.MyBatis 可 ...

  9. Mybatis基础-完整CRUD操作

    步骤一:mybatis基本配置 1)创建Java项目,在lib下导入mybatis所需要的Jar包,包括链接mysql的mysql-connector-java-5.1.7-bin.jar. 2)在s ...

随机推荐

  1. Ubuntu系统上安装搜狗拼音输入法sogou

    1. 首先在百度搜索搜狗拼音输入法Linux就能看到它的官网:http://pinyin.sogou.com/linux/ 下载后直接安装.安装成功后在控制台输入 im-config 如果选中的是fc ...

  2. Linux后门账户控制

    赋予用户sudo权限 vi /etc/sudoers 添加如下一行: USER ALL=(ALL) NOPASSWD: ALL (实现当前用户允许转换成任意用户及执行任意命令) 添加root权限账户 ...

  3. 使用php创建WebSocket服务

    执行方法:首先先修改server.php与index.html的ip通过命令行执行 [php路径]php.exe "[文件路径]server.php"然后通过浏览器打开index. ...

  4. apache 安装[转]

    Apache简介         Apache HTTP Server(简称Apache)是Apache软件基金会的一个开放源码的网页服务器,可以在大多数计算机操作系统中运行,由于其多平台和安全性被广 ...

  5. 把json数据 [ { } ] 转为数组

    $str = '[{"rwx_price":388.5,"end_station_name":"长沙","swz_price&qu ...

  6. putty完全使用手册--多窗口---git提交---连接数据库--自动日志显示

    01 putty dev 192.168.3.38 02 cd /home/gongfu/tripb/cranedev02.1 git status git add git commit git pu ...

  7. 使用Erlang和Yaws开发REST式的服务

    看过那张很出名的“Apache vs. Yaws”图么?是不是在考虑你也应该使用Yaws了?这些图给人的第一印象是,Yaws在可伸缩性上具有难以置信的巨大优势,它可以扩展到80000个并行的连接,而 ...

  8. redis数据类型:hashes

    redis hash 是一个string类型的field和value的映射表. 它的添加.删除操作都是O(1)(平均),hash特别适合用于存储对象 将一个对象存储在hash类型总会占用更少的内存,并 ...

  9. kvstore之memcached为存储介质

    ecstore中kvstore选用memcached作为存储介质 kvstore存储类选用base_kvstore_memcached(app/base/lib/kvstore/memcached.p ...

  10. 网络模块(net, http)小解

    net模块可用来创建TCP服务器来接收网络请求,它提供了创建客户端以及服务端的方法 服务端: 创建服务器: net.createServer([,options], connectionListene ...