IBatis的resultMap使用

1.创建Maven项目,项目名称ibatisdemo,目录结构如图所示

2.pom.xml内容如下

<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.mycompany</groupId>
  <artifactId>ibatisdemo</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <build/>
  
  <dependencies>
  	<!-- https://mvnrepository.com/artifact/org.apache.ibatis/ibatis-sqlmap -->
	<dependency>
	    <groupId>org.apache.ibatis</groupId>
	    <artifactId>ibatis-sqlmap</artifactId>
	    <version>2.3.0</version>
	</dependency>

	<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
	<dependency>
	    <groupId>mysql</groupId>
	    <artifactId>mysql-connector-java</artifactId>
	    <version>5.1.38</version>
	</dependency>
  </dependencies>
</project>

3.在src/main/java下创建实体类Student,包名(com.mycompany.entity),如图所示

4.实体类Student的内容如下

package com.mycompany.entity;

public class Student {
	private int sid;
	private String name;
	public int getSid() {
		return sid;
	}
	public void setSid(int sid) {
		this.sid = sid;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String toString(){
		return "id="+sid + "name="+name;
	}
}

5.在src/main/java下创建实体类Student的Student.xml文件,如图所示

6.在src/main/resources下创建SqlMap.properties属性文件,如图所示

7.SqlMap.properties属性文件内容如下

driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test
username=root
password=

8.在src/main/resources下创建SqlMapConfig.xml配置文件,如图所示

9.SqlMapConfig.xml配置文件的内容如下

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sqlMapConfig PUBLIC "-//ibatis.apache.org//DTD SQL Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">

<sqlMapConfig>
	<properties resource="SqlMap.properties"/>

	<transactionManager type="JDBC">
		<dataSource type="simple">
			<property name="JDBC.Driver" value="${driver}"/>
			<property name="JDBC.ConnectionURL" value="${url}"/>
			<property name="JDBC.Username" value="${username}"/>
			<property name="JDBC.Password" value="${password}"/>
		</dataSource>
	</transactionManager>

	<sqlMap resource="com/mycompany/entity/Student.xml"/>
</sqlMapConfig>

10.在src/main/java下创建接口StudentDao,如图所示

11.接口StudentDao的内容如下

package com.mycompany.dao;

import com.mycompany.entity.Student;

public interface StudentDao {

	/**
	 * 通过resultMap获取学生信息
	 * @param sid
	 * @return
	 */
	public Student getStudentById(int sid);
}

12.在src/main/java下创建接口StudentDao的实现类StudentDaoImpl,如图所示

13.接口StudentDao的实现类StudentDaoImpl的内容如下

package com.mycompany.dao.impl;

import java.io.IOException;
import java.io.Reader;
import java.sql.SQLException;

import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
import com.mycompany.dao.StudentDao;
import com.mycompany.entity.Student;

public class StudentDaoImpl implements StudentDao {
	private static SqlMapClient sqlMapClient = null;

	static{
		try {
			Reader reader = Resources.getResourceAsReader("SqlMapConfig.xml");
			sqlMapClient = SqlMapClientBuilder.buildSqlMapClient(reader);
			reader.close();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	/**
	 * 查询学生信息
	 */
	public Student getStudentById(int sid) {
		Student student = null;
		try {
			student = (Student) sqlMapClient.queryForObject("getStudentById",sid);
		} catch (SQLException e) {
			e.printStackTrace();
		}
		return student;
	}

}

14.在src/test/java下创建测试类StudentTest,如图所示

15.测试类StudentTest的内容如下

package com.mycompany.dao.impl;

import com.mycompany.entity.Student;

public class StudentTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		StudentDaoImpl studentDaoImpl = new StudentDaoImpl();

		//查询学生信息
		Student student5 = studentDaoImpl.getStudentById(5);
		System.out.println(student5);
	}

}

时间: 2024-10-15 19:49:37

IBatis的resultMap使用的相关文章

ibatis 更改resultmap后 java.sql.SQLException: Column &#39;del_status&#39; not found.

当在resultmap中增加字段后,查询语句也必须增加相应字段,否则会报错, java.sql.SQLException: Column 'del_status' not found. 因为查询结果与resultmap对应不上,ibatis在查询获得结果集中找不到resultmap的对应字段, 我是在resultmap中增加字段,但select语句中并没有增加,折腾了半天 如果属性类型为基本类型而非包装类型,并且数据库中数据为null,那么就会报错 Caused by: java.lang.Ru

ibatis的result标签中用select详解

标签:详解 ibatis的result标签中用select 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://zorro.blog.51cto.com/2139862/821777 <resultMap id="usermoduleprivilege"     class="com.webex.webapp.l10n.common.pojo.UserModulePrivilege">  

SpringBoot+MyBatis中自动根据@Table注解和@Column注解生成ResultMap

其实我一点都不想用mybatis,好多地方得自己写,比如这里. 使用mybatis要写大量的xml,烦的一批.最烦人的莫过于写各种resultmap,就是数据库字段和实体属性做映射.我认为这里应该是mybatis自动支持的,但是,它没有.为了轻量化(caocaocoa)???. 很少用mybatis,不知道有没有相关插件.只有自己写方法实现了. 先整理一下大体思路: 1.扫描项目代码下的所有类 2.选出所有类中的含有Table注解的类 3.根据column注解找出类下的属性映射关系 4.创建my

存储过程学习

我们在进行pl/sql编程时打交道最多的就是存储过程了.存储过程的结构是非常的简单的,我们在这里除了学习存储过程的基本结构外,还会学习编写存储过程时相关的一些实用的知识.如:游标的处理,异常的处理,集合的选择等等 1.存储过程结构 1.1 第一个存储过程 create or replace procedure proc1( p_para1 varchar2, p_para2 out varchar2, p_para3 in out varchar2 )as v_name varchar2(20)

MyBatis应用开发(4)应用之开发方式API方式篇

1.1. API方式 1.1.1. 开发步骤 目标:使用MyBatis从数据库中查询t_person表的全部记录. MyBatis还可以使用直接使用API来配置数据库中的记录与Java对象之间的映射关系以及其它各种必需的配置.此时不再需要使用任何XML配置文件.由于使用了API建立映射关系,Mapper接口也不需要加任何的注解. 使用MyBatis 的API方式开发数据库应用的步骤如下所示: (1)编写POJO类Person. (2)编写Mapper接口PersonMapper. (3)编写业务

MyBatis学习笔记(四) 注解

使用MyBatis注解开发,可以省去类配置文件,简洁方便.但是比较复杂的SQL和动态SQL还是建议书写类配置文件. 注解还是不推荐使用的.只是了解了解!简单的CRUD可以使用注解.简单写写. 把之前的例子改成使用注解的. UserMapper.java 1 package com.cy.mybatis.mapper; 2 3 import java.util.List; 4 import java.util.Map; 5 6 import org.apache.ibatis.annotation

【转】oracle存储过程常用技巧

原文链接 http://www.cnblogs.com/chinafine/archive/2010/07/12/1776102.html 我们在进行pl/sql编程时打交道最多的就是存储过程了.存储过程的结构是非常的简单的,我们在这里除了学习存储过程的基本结构外,还会学习编写存储过程时相关的一些实用的知识.如:游标的处理,异常的处理,集合的选择等等 1.存储过程结构 1.1 第一个存储过程 create or replace procedure proc1( p_para1 varchar2,

JavaEE体系架构概述、MyBatis总结

JavaEE体系架构概述 java EE是sum公司发布的标准企业级应用规范集合,它提供了一个多层结构的分布式应程序模型,是开发基于网络的企业级应用首选平台.Java EE技术平台的核心思想是“容器”加组件 事务:有明确边界的一组序列,在应用程序中一个请求对应一个事务,当请求发送时,事务开始,当请求结束,事务也就结束.总的来说,事务有四个特性:1.原子性,一个请求要么成功,要么失败,不会再有其他情况:2.一致性,事务处理需要的和得到的时相同的:3.持久性,事务处理的结果时确认的.持久的,如果需要

oracle存储过程常用技巧

我们在进行pl/sql编程时打交道最多的就是存储过程了.存储过程的结构是非常的简单的,我们在这里除了学习存储过程的基本结构外,还会学习编写存储过程时相关的一些实用的知识.如:游标的处理,异常的处理,集合的选择等等 1.存储过程结构 1.1 第一个存储过程 create or replace procedure proc1( p_para1 varchar2, p_para2 out varchar2, p_para3 in out varchar2 )as v_name varchar2(20)