Mybatis入门--关联查询一对一
2016-05-11 18:44
405 查看
一篇文章对应一个customer
articleMapper.xml
ArticleMapper
mybatis-config.xml
测试
public class Article { private int id; private Customer customer; private String title; private String content; public int getId() { return id; } public void setId(int id) { this.id = id; } public Customer getCustomer() { return customer; } public void setCustomer(Customer customer) { this.customer = customer; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getContent() { return content; } public void setContent(String content) { this.content = content; } }
articleMapper.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="org.lezg.web.mapper.ArticleMapper"> <!-- 数据库字段与实体对象的映射关系 --> <resultMap id="customerResultMap" type="Customer"> <id column="id" property="id"/> <result column="name" property="name"/> <result column="contact" property="contact"/> <result column="telephone" property="telephone"/> <result column="email" property="email"/> </resultMap> <!-- association标签来解决一对一的关联查询 --> <resultMap id="articleResultMap" type="Article"> <id column="id" property="id"/> <result column="title" property="title"/> <result column="content" property="content"/> <association property="customer" column="customer_id" javaType="Customer" resultMap="customerResultMap"/> </resultMap> <!-- 查询Article by id --> <select id="getArticle" parameterType="int" resultMap="articleResultMap"> SELECT * from customer c, article a WHERE c.id = a.customer_id and a.id = #{id} </select> <!-- 查询所有Article --> <select id="getArticles" resultMap="articleResultMap"> SELECT * from article a, customer c where a.customer_id = c.id </select> </mapper>
ArticleMapper
public interface ArticleMapper { /** * 查询Article by id * @param id * @return */ Article getArticle(int id); /** * 查询所有Article * @return */ List<Article> getArticles(); }
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> <!-- 设置别名 --> <typeAliases> <typeAlias type="org.lezg.web.entity.Customer" alias="Customer"/> <typeAlias type="org.lezg.web.entity.Article" alias="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://localhost:3306/lezgweb"/> <property name="username" value="root"/> <property name="password" value="root"/> </dataSource> </environment> </environments> <!-- 映射文件 --> <mappers> <mapper resource="mapper/customerMapper.xml"/> <mapper resource="mapper/articleMapper.xml"/> </mappers> </configuration>
测试
@org.junit.Test public void getArticle(){ SqlSession session = getSession(); ArticleMapper articleMapper = session.getMapper(ArticleMapper.class); Article article = articleMapper.getArticle(1); System.out.println(article.getTitle()); System.out.println(article.getContent()); System.out.println(article.getCustomer().getContact()); closeSession(session); } @org.junit.Test public void getArticles(){ SqlSession session = getSession(); ArticleMapper articleMapper = session.getMapper(ArticleMapper.class); List<Article> articles = articleMapper.getArticles(); for (Article article : articles) { System.out.println(article.getTitle()); System.out.println(article.getContent()); System.out.println(article.getCustomer().getContact()); } }
相关文章推荐
- 深入浅析mybatis oracle BLOB类型字段保存与读取
- MyBatis MapperProvider MessageFormat拼接批量SQL语句执行报错的原因分析及解决办法
- SpringMVC整合mybatis实例代码
- oracle+mybatis 使用动态Sql当插入字段不确定的情况下实现批量insert
- MyBatis学习笔记(二)之关联关系
- 浅析Mybatis 在CS程序中的应用
- Java Mybatis框架入门基础教程
- Windows下Java+MyBatis框架+MySQL的开发环境搭建教程
- Mybatis与Ibatis的区别
- Java简单实现SpringMVC+MyBatis分页插件
- MyBatis批量添加、修改和删除
- MyBatis与Hibernate的比较
- 浅析mybatis和spring整合的实现过程
- 在Java的MyBatis框架中建立接口进行CRUD操作的方法
- 整理Java的MyBatis框架中一些重要的功能及基本使用示例
- mybatis的动态sql详解(精)
- MyBatis实践之动态SQL及关联查询
- 详解Mybatis动态sql
- Mybatis实现增删改查及分页查询的方法
- MyBatis入门学习教程(一)-MyBatis快速入门