mybatis 多对一的理解
来源:互联网 发布:linux启动jenkins 编辑:程序博客网 时间:2024/05/21 19:42
对于mybatis 的一对多,还以多对一,其实是找那个站在不同的角度来思考的问题,本质给我的感觉,才不多
<?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="org.com.dao.userMapper">
<!-- User 级联文章查询 方法配置 (多个文章对一个用户) -->
<resultMap type="Post" id="resultPostsMap">
<result property="id" column="post_id" />
<result property="title" column="title" />
<result property="content" column="content" />
<association property="user" javaType="User">
<id property="id" column="userid"/>
<result property="username" column="username"/>
<result property="mobile" column="mobile"/>
</association>
</resultMap>
<select id="getPosts" resultMap="resultPostsMap" parameterType="int">
SELECT u.*,p.*
FROM user u, post p
WHERE u.id=p.userid AND p.post_id=#{post_id}
</select>
</mapper>
总结
mybatis 一对多 collection 直接将post的外键 放在collection里面, mybatis 会自己识别
后面id接post表的主键
<collection property="posts" ofType="org.com.model.Post" column="userid">
<id property="id" column="post_id" javaType="int" jdbcType="INTEGER"/> 主键
mybatis 多对一 association,里面不用什么,他会直接,将user 表的主键,作为post的外建
然后申明post表里面那个是外建
<association property="user" javaType="User">
<id property="id" column="userid"/>
,。。。。。
在test类里,值得说说的是,直接应用的是selectOne()
我没有建立PostMappper,所以不能再用getMappper()
public class Test {
private static SqlSessionFactory sqlFactory;
private static Reader reader;
static {
try {
reader = Resources.getResourceAsReader("config/mybatis-config.xml");
sqlFactory = new SqlSessionFactoryBuilder().build(reader);
} catch (Exception e) {
// TODO: handle exception
}
}
public static SqlSessionFactory getSession(){
return sqlFactory;
}
public static void main(String[] args) {
SqlSession session = getSession().openSession();
try {
// postMapper posts=session.getMapper(postMapper.class);
// Post p=posts.getPosts(1);
// System.out.println(p.getUser().getMobile());
Post p=session.selectOne("org.com.dao.userMapper.getPosts",1);
System.out.println(p.getUser().getMobile());
} catch (Exception e) {
// TODO: handle exception
} finally {
session.close();
}
}
}
// Resources SqlSessionFactoryBuilder SqlSessionFactory SqlSession
原文
http://www.yiibai.com/mybatis/mybatis-many2one.html
- mybatis 多对一的理解
- Mybatis 一对一,一对多,多对一,多对多的理解
- Mybatis一对一,一对多,多对一,多对多的理解
- Mybatis 一对一,一对多,多对一,多对多的理解
- Mybatis 一对一,一对多,多对一,多对多的理解
- Mybatis 一对一,一对多,多对一,多对多的理解
- Mybatis 一对一,一对多,多对一,多对多的理解
- Mybatis中关于映射文件一对多,多对一的方法理解
- Mybatis多对一
- myBatis多对一
- 我对mybatis的理解
- 对Mybatis框架的理解
- Mybatis的多对一,一对多
- Mybatis多对一的处理
- hibernate 多对一的双向理解
- mybatis多对一查询
- Mybatis 多对一查询
- MyBatis 多对一配置
- log4j.properties配置文件放置位置以及读取
- 【Java学习】基于Socket的多用户聊天Demo
- 分布式爬虫调度策略
- java并发编程笔记day1
- DOM中的四个基本方法
- mybatis 多对一的理解
- C++中用rand()和srand()产生随机数介绍
- CentOS 7.3 x64 安装 Nginx
- Python中的二维数组(list与numpy.array)
- Laravel ORM写的语句怎么打印出原生Sql语句
- 并发(2)--java线程池原理
- Microsoft Office 2016 for Mac 破解安装
- 机器学习教程 之 线性模型:线性回归、对数几率回归、线性判别分析
- 如何快速熟悉一个老项目