下面将介绍一个resultMap最基本的用法-----一对一/has a 关系
承接上篇文章
1.新建表t_dept,并修改表t_user.建表语句如下
create table t_dept (deptno varchar2(11),deptname varchar2(22)); alter table t_dept add constraints pk_deptno primary key(deptno); alter table t_user add(deptno varchar2(11)); insert into t_dept values('1111','dept1'); update t_user set deptno = '1111';
2.添加实体类Dept.java
package com.mybatis.test.vo; public class Dept { private String deptNo; private String deptName; public Dept() { super(); } public String getDeptNo() { return deptNo; } public void setDeptNo(String deptNo) { this.deptNo = deptNo; } public String getDeptName() { return deptName; } public void setDeptName(String deptName) { this.deptName = deptName; } public String toString() { return " deptNo is: "+deptNo+" deptName is: "+deptName; } }
3.修改User.java
在User类中添加对象Dept dept;
4 修改User.xml
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="User"> <resultMap type="User" id="userResult"> <id property="id" column="user_id" /> <result property="userName" column="user_name" /> <association property="dept" column="user_dept_no" javaType="Dept"> <id property="deptNo" column="dept_no" /> <result property="deptName" column="dept_name" /> </association> </resultMap> <select id="select1" parameterType="int" resultMap="userResult"> select u.id as user_id, u.username as user_name, u.deptno as user_dept_no, d.deptno as dept_no, d.deptname as dept_name from t_user u,t_dept d where u.deptno = d.deptno and u.id = #{id} </select> </mapper>
上述配置文件中resultMap中使用了<association>标签来实现关联。
5.在UserDAO类中加入以下方法:
public User getUserAndDept(int id) { SqlSession session = sqlSessionFactory.openSession(); try { User user = (User) session.selectOne("User.select1", id); return user; } finally { session.close(); } }
6.在test中进行测试。
相关推荐
在"01 MyBatis入门程序-资料"中,你将找到关于这些概念的详细解释、示例代码和实践指导,帮助你快速掌握MyBatis的基本用法和核心理念。通过学习和实践,你可以熟练地利用MyBatis进行数据库操作,提升开发效率。
通过这个入门小练习,你可以熟悉 MyBatis 的基本使用,理解其核心概念,并能动手实践,为后续更复杂的项目打下坚实的基础。在实践中,不断探索 MyBatis 的高级特性,如动态 SQL、缓存、插件等,将有助于提升你的开发...
#### 三、MyBatis简介与入门 - **MyBatis定义:** MyBatis是一款优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。 - **入门指南:** - *...
#### 三、构建`SqlSessionFactory` - **XML方式**: - 从XML文件构建`SqlSessionFactory`实例很简单。推荐使用类路径下的资源文件进行配置,但也可以使用任何`Reader`实例。 - MyBatis提供了工具类来方便地从类...
入门部分讲述了如何构建SqlSessionFactory,它是MyBatis应用程序的核心。可以通过SqlSessionFactoryBuilder构建SqlSessionFactory实例。这个构建器可以从XML配置文件或Configuration类的实例中获取。为了从XML构建...
这篇“MyBatis入门到精通”的学习资料是针对初学者设计的,旨在帮助新手快速掌握MyBatis的基本用法和高级特性。 1. **MyBatis简介** MyBatis是由Clinton Begin创建的开源项目,它是一个基于Java的持久层框架,消除...
入门 在 MyBatis 应用程序中,核心组件是 `SqlSessionFactory` 对象。`SqlSessionFactory` 可以通过 `SqlSessionFactoryBuilder` 构建出来,而后者可以从 XML 配置文件或预先配置好的 `Configuration` 类实例中...
什么是 MyBatis?\ 5 入门\ 5 从 XML 中构建 SqlSessionFactory \ 5 不使用 XML 构建 SqlSessionFactory\ 6 从 SqlSessionFactory 中获取 SqlSession\ 6 探究已映射的 SQL语句 \ 7 命名空间的一点注释 \ 8 ...
在本入门示例中,我们将了解MyBatis的基本使用流程,包括环境搭建、配置文件解析、Mapper接口定义、SQL映射文件编写、数据访问对象(DAO)实现及事务管理等关键环节。 1. **环境搭建**:首先,你需要在项目中引入...
【MyBatis入门以及提高】 在Java EE框架中,MyBatis是一个广泛使用的持久层框架,它极大地简化了原生JDBC编程的繁琐过程。MyBatis的核心在于输入映射和输出映射,以及动态SQL,这些特性使得SQL的编写和维护变得更加...
以上就是Mybatis入门的基本内容,通过这个小例子,你可以理解Mybatis如何与数据库交互,如何定义和执行SQL,以及如何处理结果映射和事务管理。随着对Mybatis更深入的学习,你会发现它在实际项目中有着广泛的应用,能...
在三天的Mybatis入门学习过程中,主要涉及以下几个关键知识点: 1. **配置文件**:Mybatis的配置文件(mybatis-config.xml)是整个框架的入口,它包含了数据库连接信息、映射文件位置、设置等重要信息。你需要理解...
- resultMap是MyBatis最强大的特性之一,用于描述如何将数据库结果映射到对象上。 7. 高级结果映射: - 支持复杂的高级映射,例如集合、关联、鉴别器等。 - 集合映射用于映射一对一或一对多关系。 - 关联映射...
我们可以通过`@ResultMap`注解在DAO接口方法上,指定映射文件中的结果集配置,以便MyBatis能正确地将查询结果转换为Java对象。 8. 注解方式的映射:除了使用XML文件进行映射外,MyBatis也支持使用注解在Java类和...
在`mapper.xml`文件中,`select`、`insert`、`update`、`delete`标签用于编写CRUD操作,而`resultMap`用于描述复杂的返回结果。 4. **动态SQL**:MyBatis支持动态SQL,通过`if`、`choose`(when/otherwise)、`...
在这个"Mybatis入门JavaSE案例"中,我们将深入理解Mybatis的基本配置、DAO层的注解方式以及XML配置方式。 首先,让我们来了解Mybatis的配置过程。Mybatis的配置文件(mybatis-config.xml)是整个框架的入口,它包含...
"Mybatis学习(三)优化配置.docx"可能会讲解如何优化Mybatis的配置,以提升性能。这可能包括开启二级缓存、合理设置SQL缓存大小、避免全表扫描、减少未使用的Mapper配置等。理解这些优化策略对于大型项目至关重要,...
【标题】"第一个mybatis程序 mybatis入门" 涉及到的是MyBatis框架的基础使用,这是一个轻量级的Java持久层框架,它简化了与数据库交互的过程,提供了强大的映射功能。以下是对MyBatis入门的详细解析: 1. **MyBatis...
本入门基础案例 "mybatis入门基础案例demo" 是为了帮助初学者理解并掌握 MyBatis 的基本使用方法。在这个案例中,我们将涉及以下几个关键知识点: 1. **MyBatis 环境搭建**: - 首先需要在项目中引入 MyBatis 的 ...