使用mybatis建立一对一的关系
来源:互联网 发布:首届全球程序员节奖金 编辑:程序博客网 时间:2024/06/05 03:36
使用Hibernate用惯了的朋友,不防试着使用mybatis,mybatis比Hibernate使用起来会更加舒畅,不信我们来看看
☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟☟
1)一对一关系配置
以人和身份证为例
实体类MyUser.java和MyCard.java
MyUser.java
package com.zking.entity;public class MyUser{ private int uid;//用户编号 private String uname;//用户名 private MyCard myCard;//用户身份证 public MyUser() { } public MyUser(int uid, String uname) { this.uid = uid; this.uname = uname; } public MyUser(int uid, String uname, MyCard myCard) { this.uid = uid; this.uname = uname; this.myCard = myCard; } public MyCard getMyCard() { return myCard; } public void setMyCard(MyCard myCard) { this.myCard = myCard; } public int getUid() { return uid; } public void setUid(int uid) { this.uid = uid; } public String getUname() { return uname; } public void setUname(String uname) { this.uname = uname; } @Override public String toString() { return "MyUser{" + "uid=" + uid + ", uname='" + uname + '\'' + '}'; }}MyCard.java
package com.zking.entity;public class MyCard { private int uid;//身份证对应的uid private String cnum;//身份证号 public MyCard() { } public MyCard(int uid, String cnum) { this.uid = uid; this.cnum = cnum; } public int getUid() { return uid; } public void setUid(int uid) { this.uid = uid; } public String getCnum() { return cnum; } public void setCnum(String cnum) { this.cnum = cnum; } @Override public String toString() { return "MyCard{" + "uid=" + uid + ", cnum='" + cnum + '\'' + '}'; }}MyUser.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.zking.dao.MyUserDao"> <!--resultMap必须写在上面,这里配置你的返回类型--> <resultMap id="myUserMap" type="com.zking.entity.MyUser"> <id property="uid" column="uid"></id> <result property="uname" column="uname"></result> <!--配对的对象在这里设置用associatoin--> <association property="myCard" javaType="com.zking.entity.MyCard"> <id property="uid" column="uid"></id> <result property="cnum" column="cnum"></result> </association> </resultMap> <!--查询的sql,这里的意思是以前的getsession的createQuery方法在这里写--> <!--返回的结果有关系配置于是返回的结果改为resultMap--> <select id="getUserAndCardById" parameterType="int" resultMap="myUserMap"> SELECT u.*,c.cnum from myuser u,mycard c where u.uid=c.uid AND u.uid=#{uid} </select></mapper>
还有一步
在resources中要配置你的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> <package name="com.zking.entity"></package> </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/test?serverTimezone=UTC"/> <property name="username" value="root"/> <property name="password" value="1234"/> </dataSource> </environment> </environments> <mappers> <mapper resource="com/zking/entity/MyUser.xml"/> </mappers></configuration>
测试
import com.zking.dao.*;import com.zking.dto.MyUserDto;import com.zking.entity.*;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 org.junit.After;import org.junit.Before;import org.junit.Test;import java.io.IOException;import java.io.InputStream;import java.util.List;import java.util.Set;public class TestCRUD { private SqlSessionFactory sqlSessionFactory; private SqlSession sqlSession; @Before public void before(){ //读取配置文件,获取SQLSessionFactory String resource = "mybatis-config.xml"; InputStream inputStream = null; try { inputStream = Resources.getResourceAsStream(resource); //通过SQLSessionFactory获取SQLSession sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); sqlSession = sqlSessionFactory.openSession(); } catch (IOException e) { e.printStackTrace(); } } @After public void after(){ sqlSession.commit(); }public void test1(){ MyUserDao myUserDao=sqlSession.getMapper(MyUserDao.class);// MyUserDto myUserDto=myUserDao.getUserAndCardById(15); MyUser myUser=myUserDao.getUserAndCardById(15); System.out.println(myUser+myUser.getMyCard().getCnum()); }}
阅读全文
0 0
- 使用mybatis建立一对一的关系
- mybatis一对一关系 association的使用
- MyBatis的ResultMaps之一对一关系
- Mybatis 一对一关系映射
- mybatis一对一关系表
- MyBatis一对一关系映射
- mybatis一对一关联关系
- MyBatis一对一关系映射
- MyBatis 一对一关系
- MyBatis关系映射之一对一
- Mybatis之一对一关联关系
- mybatis的一对多和一对一的关系
- Hibernate一对一关联关系的使用
- MyBatis一对一的配置
- Hibernate的一对一关系
- 对象的一对一关系
- 对象的一对一关系
- 表间的关系一对多/一对一/多对多关系是怎样建立的?
- MongoDB
- 小波变换
- RTMPdump 使用说明(官方文档翻译)
- 1038. 统计同成绩学生(20)
- 12.子程序的高级特性3
- 使用mybatis建立一对一的关系
- andriod背景图片透明度
- PHP后端跨域HEADER头
- QNX实时操作系统学习笔记之嵌入式系统(一)
- Android_Animation(View)_2
- Struts的工作流程:
- 开始“搬砖”
- Android 6.0 CollapsingToolbarLayout简单使用
- The nice WEB for DL