mybatis关联查询
来源:互联网 发布:钱箱测试软件 编辑:程序博客网 时间:2024/05/21 15:04
在实际的项目应用中,通常需要两个表进行联合查询。
最近两天在学习mybatis,就记录一下mybatis的多对一联合查询。
接着上一篇博文,这里需要添加一个表:
article表结构:
前几篇博文没有上传user的表结构:
代码:
实体类:User.java:
package com.mfc.entity; /* * 实体类 * */ public class User { private int id; private String userName; private int userAge; private String userAddress; //实体类以及set、get方法省略... }
实体类:Article.java:
package com.mfc.entity; public class Article { private int id; //数据库表中这里是userid,为了配置关联数据,这里使用User的实体替代userid private User user; private String title; private String content; //构造方法以及set、get方法省略...}
注意:这里只需要一个User.xml:
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.mfc.dao.UserDao"> <!--User联合文章进行查询配置方法一(多对一)--> <resultMap id="resultUserArticleList" type="Article"> <id property="id" column="id"></id> <result property="title" column="title"></result> <result property="content" column="content"></result> <association property="user" javaType="User"> <id property="id" column="id"></id> <result property="userName" column="userName"></result> <result property="userAddress" column="userAddress"></result> </association> </resultMap> <!--查询--> <select id="getUserArticles" parameterType="int" resultMap="resultUserArticleList"> select user.id,user.userName,user.userAddress,article.id aid,article.title,article.content from user,article where user.id=article.userid and user.id=#{id} </select> </mapper>
UserDao.java:
import java.util.List; import com.mfc.entity.Article; public interface UserDao { public List<Article> getUserArticles(int id); }
Configuration.xml:
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <configuration> <!-- Configuration.xml是 mybatis 用来建立 sessionFactory 用的, 里面主要包含了数据库连接相关东西,还有 java 类所对应的别名,比如 <typeAlias alias="User" type="com.yihaomen.mybatis.model.User"/> 这个别名非常重要,你在 具体的类的映射中, 比如User.xml 中 resultType 就是对应这里的。要保持一致,当然这里的 resultType 还有另外单独的定义方式--> <typeAliases> <typeAlias alias="User" type="com.mfc.entity.User"/> <typeAlias alias="Article" type="com.mfc.entity.Article"/> </typeAliases> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis" /> <property name="username" value="root"/> <property name="password" value="root"/> </dataSource> </environment> </environments> <!--要映射的类的xml配置文件--> <mappers> <mapper resource="com/mfc/entity/User.xml"/> </mappers> </configuration>
测试类Test.java:
import java.io.Reader; import java.util.List; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import com.mfc.dao.UserDao; import com.mfc.entity.Article; public class Test { private static SqlSessionFactory sqlSessionFactory; private static Reader reader; static { try { reader = Resources.getResourceAsReader("Configuration.xml"); sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader); } catch (Exception e) { e.printStackTrace(); } } public static void main(String[] args) { SqlSession session = sqlSessionFactory.openSession(); try { UserDao userOperation = session.getMapper(UserDao.class); List<Article> articles = userOperation.getUserArticles(2); for (Article article : articles) { System.out.println("作者:" + article.getUser().getUserName() + " 标题:" + article.getTitle() + " 内容:" + article.getContent()); } } finally { session.close(); } } }
经测试可以使用!
阅读全文
0 0
- mybatis关联查询
- mybatis表关联查询
- Mybatis关联表查询
- MyBatis关联查询
- Mybatis关联查询
- MyBatis 关联查询
- mybatis实现关联查询
- Mybatis如何关联查询
- mybatis 关联sql查询
- MyBatis关联查询(一对一)
- mybatis 关联查询
- MyBatis 关联查询
- mybatis一对一关联查询
- Mybatis关联查询
- Mybatis的关联查询
- MyBatis关联查询
- Mybatis一对一关联查询
- mybatis的关联查询
- zoj1346
- Document root element "form-validation", must match DOCTYPE root "null"
- HTTP 错误代码总结
- JS将搜索关键字标红的方法
- Android_数据操作 SQLites、ViewPager
- mybatis关联查询
- 网易云音乐移动客户端Vue.js
- 用Vue高仿qq音乐官网-pc端
- 深度学习防止过拟合的方法
- AT24C02驱动程序
- 七牛云储存视频播放器的选择方案
- 流程指示器
- 单向链表
- Android_图片加载框架---ImageLoader