多对一和一对多
时间:2022-07-28
本文章向大家介绍多对一和一对多,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
1.UserMapper.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="dao.UserDao">
<resultMap id="userMap" type="entity.User">
<id column="u_id" property="uid"></id>
<result column="u_name" property="uname"></result>
<result column="u_password" property="upassword"></result>
<result column="u_email" property="uemail"></result>
<result column="u_sex" property="usex"></result>
<result column="u_status" property="ustatus"></result>
<result column="u_code" property="ucode"></result>
<result column="u_role" property="urole"></result>
<!-- collection 一对多:1.property:里面的多的那方的集合orders private List<Orders> orders;
2.ofType:property里面那个集合里包含的对象的类型:entity.Orders(在没有使用别名的时候用包名.类名)
-->
<collection property="orders" ofType="entity.Orders">
<id column="o_id" property="oid"></id>
<result column="o_name" property="oname"></result>
<!-- association 一对多:1. property:里面一的那个的对象user private User user;
2. javaType:property里面对象的类型:entity.User
-->
<association property="user" javaType="entity.User">
<id column="u_id" property="uid"></id>
<result column="u_name" property="uname"></result>
<result column="u_password" property="upassword"></result>
<result column="u_email" property="uemail"></result>
<result column="u_sex" property="usex"></result>
<result column="u_status" property="ustatus"></result>
<result column="u_code" property="ucode"></result>
<result column="u_role" property="urole"></result>
</association>
</collection>
</resultMap>
<select id="getUserById" resultMap="userMap">
SELECT u.*,o.* FROM USER u LEFT JOIN orders o ON u.u_id=o.u_id WHERE u.u_id=#{id};
</select>
</mapper>
2.Test002.java代码
import dao.UserDao;
import entity.User;
import utils.MyBatisUtils;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
/**
* zt
* 2020/9/27
* 20:46
*/
public class Test002 {
@Test
public void testGetUserById(){
SqlSession sqlSession = MyBatisUtils.getSqlSession();
UserDao mapper = sqlSession.getMapper(UserDao.class);
User userById = mapper.getUserById(1);
System.out.println(userById);
}
}
3.mybatisConfig.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<!--mybatis-3-config.dtd xml的约束-->
<configuration>
<properties resource="dbinfo.properties"></properties>
<settings>
<!--配置mybatis底层处理打印日志-->
<setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>
<!--连库环境-->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driver}"/>
<property name="url" value="${jdbc.url}"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<!--
指定映射文件
-->
<mappers>
<mapper resource="mapper/ProductMapper.xml"></mapper>
<mapper resource="mapper/ProductDetailMapper.xml"></mapper>
<mapper resource="mapper/OrdersMapper.xml"></mapper>
<mapper resource="mapper/GuaMapper.xml"></mapper>
<mapper resource="mapper/UserMapper.xml"></mapper>
</mappers>
</configuration>
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 布尔型盲注的PY交易
- 一文详解「队列」,手撸队列的3种方法!
- 代理模式
- Swift:Lable 高度计算误差
- 基于python检查SSL证书到期情况代码实例
- Python搭建Keras CNN模型破解网站验证码的实现
- PyCharm 在Windows的有用快捷键详解
- Python 自动化测试(三): pytest 参数化测试用例构建
- 基于Android平台实现拼图小游戏
- kotlin项目加入Glide图片加载库并使用GlideApp的方法
- Android实现百分比下载进度条效果
- 实验2 OpenGL交互
- 深入了解OkHttp3之Interceptors
- 实验3.1 直线光栅化(键盘交互版)
- 150行Python代码实现带界面的数独游戏