myBatis处理表与表之间的关系
来源:互联网 发布:登封市java培训机构 编辑:程序博客网 时间:2024/05/16 11:42
比如要在帖子回复表里显示其它两张相关联表的信息。
1)主要的数据实体类是Reply,相关联的实体表的数据是Theme,UserInfo。
那么首先创建的是ReplyView的实体对象。
//要关联的哪些数据,就直接把该数据加入到继承类的字段里。
package com.model;
public class ReplyView extends Reply{
private String userName;
private String themeName;//帖子名称
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getThemeName() {
return themeName;
}
public void setThemeName(String themeName) {
this.themeName = themeName;
}
}
2)编写相应的处理接口(Mapper接口):
package com.dao.imp;
import com.dao.IDaoBBS;
import com.model.Reply;
public interface ReplyMapper extends IDaoBBS<Reply> {
}
3)编写相应的SQL配置文件(ReplyMapper.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="com.dao.imp.ReplyMapper">
<select id="getModel" resultType="com.model.ReplyView">
select r.*,u.*,t.*
from reply r inner join userInfo u on r.userId=u.userId
inner join theme t on r.themeId=t.themeId
where r.replyId=#{id}
</select>
</mapper>
4)将刚编写的mapper映射文件加入到mybatis-config.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">
<configuration>
<properties resource="config.properties">
</properties>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driverClass}"/>
<property name="url" value="${jdbc.jdbcUrl}"/>
<property name="username" value="${jdbc.user}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/model/UserInfoMapper.xml"/>
<mapper resource="com/model/ReplyMapper.xml"/>
</mappers>
</configuration>
5)编写测试类:
public static void main(String[] args) {// TODO Auto-generated method stub
String resource = "mybatis-config.xml";
InputStream inputStream = null;
try {
inputStream = Resources.getResourceAsStream(resource);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
SqlSession sqlSession = sqlSessionFactory.openSession();
//UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
ReplyMapper replyMapper = sqlSession.getMapper(ReplyMapper.class);
ReplyView rv = (ReplyView) replyMapper.getModel("123");
System.out.println("帖子内容:"+rv.getReplycontent());
System.out.println("用户名:"+rv.getUserName());
- myBatis处理表与表之间的关系
- mybatis处理表与表之间的关系
- MyBatis处理表与表之间的关系
- mybatis处理表与表之间的关系
- mybatis处理表与表之间的关系
- MyBatis 表与表之间的关系 1对多的情况
- myBatis里表与表之间的关系 多对一时候
- Mybatis之表之间映射关系总结
- Mybatis之表之间映射关系总结
- 数据库表与表之间的关系
- 表与表之间的关系
- hibernate 表与表之间的关系
- Hibernate中表与表之间关系的处理(一对多)
- Hibernate中表与表之间关系的处理(多对多)
- 关系型数据库表与表之间的关系
- 表之间的关系
- 表与表之间关系 --------实体与实体之间关系
- mybatis对象之间映射关系以及数据库表建立的时候外键的添加
- 【Objective-C基础】NSPredicate
- iOS 开发获取字体类型
- 浅析Android 开源框架ImageLoader的用法
- Visual Studio Code的运行和调试
- Android Bundle类 学习总结
- myBatis处理表与表之间的关系
- 文章标题
- Android中数据库的简单运用
- 顺序表应用5:有序顺序表归并
- MFC中非模式对话框与模式对话框的区别
- dbcp数据连接池配置
- APM应用性能管理的过去二十年
- 操作系统精髓与设计原理(原书第6版)——学习笔记(3)
- 表创建索引