当前位置:首页 > Java技术 > mybatis多表关联配置

mybatis多表关联配置

2022年09月17日 14:20:27Java技术12

首先需要的jar包

mybatis-3.4.1

配置文件(mybatis.cfg.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 alias="mybatis1" type="entity.mybatis1"/>
<typeAlias alias="types" type="entity.types"/>
</typeAliases>

<!-- 选择默认的连接方式 -->
<environments default="myb">

<environment id="myb">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test"/>
<property name="username" value="root"/>
<property name="password" value="accp"/>
</dataSource>
</environment>

</environments>

<mappers>
<mapper resource="entity/mybatis1Mapper.xml"/>
</mappers>
</configuration>

Mybatis1.java

package entity;

public class mybatis1 {
    
    private int id;
    private String name;
    private int age;
    private types types;
    public types getTypes() {
        return types;
    }
    public void setTypes(types types) {
        this.types = types;
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    public mybatis1(String name, int age) {
        super();
        this.name = name;
        this.age = age;
    }
    public mybatis1(){}

}

Types.java

package entity;

import java.util.ArrayList;
import java.util.List;

public class types {
    
    private int id;
    private String tname;
    private List<mybatis1> mybatis=new ArrayList<mybatis1>();
    public List<mybatis1> getMybatis(){
        return mybatis;
    }
    public void setMybatis(List<mybatis1> mybatis) {
        this.mybatis = mybatis;
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getTname() {
        return tname;
    }
    public void setTname(String tname) {
        this.tname = tname;
    }
}

 

 

 

mybatis1Mapper.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="entity.mybatis1">

<resultMap type="mybatis1" id="mylist">
<id property="id" column="id"></id>
<result column="name" property="name"/>
<result column="age" property="age"/>
<!-- 多对一的关系 -->
        <!-- property: 指的是属性的值, javaType:指的是属性的类型-->
        <association property="types" javaType="types">
            <id column="id" property="id"/>
            <result column="tname" property="tname"/>
        </association>
</resultMap>
<select id="selectall" resultMap="mylist">
select m.*,t.tname tname from mybatis1 m ,types t 
where m.typeid=t.id
</select>



<insert id="addmybatis" parameterType="entity.mybatis1">
insert into mybatis1(name,age) values(#{name},#{age})
</insert>

</mapper>

typesMapper.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="entity.types">

<resultMap type="types" id="mytype">
<id column="id" property="id"></id>
<result column="tname" property="tname"/>
    <!-- 一对多的关系 -->
        <!-- property: 指的是集合属性的值, ofType:指的是集合中元素的类型 -->
        <collection property="mybatis" ofType="mybatis1">
            <id column="id" property="id"/>
            <result column="name" property="name"/>
            <result column="age" property="age"/>
        </collection>
</resultMap>

<select id="selectalltype" resultMap="mytype">
select m.*,t.tname tname from mybatis1 m ,types t where m.typeid=t.id
</select>
</mapper>

test_mybatis.java(测试)

package test;

import java.io.IOException;
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 entity.mybatis1;

public class test_mybatis {
    
    public static void main(String[] args) {
        try {
            Reader r= Resources.getResourceAsReader("mybatis.cfg.xml");
        SqlSessionFactoryBuilder sfb=new SqlSessionFactoryBuilder();
        SqlSessionFactory sf=sfb.build(r);
        SqlSession session=sf.openSession();
          
//            mybatis1 my=new mybatis1("zs", 12);
//             session.insert("entity.mybatis1.addmybatis", my);
//             session.commit();
        String d="d";
        List<mybatis1> list=session.selectList("selectall");
        System.out.println(list.size());
        for(mybatis1 m:list){
            System.out.println(m.getTypes().getTname()+"=="+m.getName());
        }
             session.close();
        
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}

 

作者:夕阳下的无名草
来源链接:https://www.cnblogs.com/xzjf/p/7159482.html

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。


本文链接:https://www.javaclub.cn/java/42734.html

标签: MyBatis
分享给朋友:

“mybatis多表关联配置” 的相关文章

MyBatis配置的pom文件

<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/200...

mybatis实战之拦截器

mybatis实战之拦截器 在服务的开发过程中,往往存在这样的需求,针对业务,实现对数据库操作语句做统一的处理。比如对某些敏感数据如用户姓名、手机号等坐脱敏处理保存和查询、对未实现权限的查询通过添加关联查询实现权限控制查询结果等等。 这时,myba...

mybatis:在springboot中的配置

## Mybatis 配置 mybatis.type-aliases-package=com.xfind.core.entity.xianyu mybatis.mapper-locations=classpath:mapper/*.xml #使全局的映射器启用或禁用缓存。 mybati...

SSM:spring+springmvc+mybatis框架中的XML配置文件功能详细解释(转)

原文:https://blog.csdn.net/yijiemamin/article/details/51156189# 这几天一直在整合SSM框架,虽然网上有很多已经整合好的,但是对于里面的配置文件并没有进行过多的说明,很多人知其然不知其所以然,经过几天的搜索和整理,今天总算...

mybatis配置文件中config与mapper的约束

Config的约束: <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3....

Mybatis Generator最完整配置详解

Mybatis Generator最完整配置详解

背景 通过mybatis插件自动生成代码 MyBatis 介绍 MyBatis 是一款标准的 ORM 框架,被广泛的应用于各企业开发中。MyBatis 最早是 Apache 的一个开源项目 iBatis,2010 年这个项目由 Apache Software F...

Mybatis使用xml方式配置

Mybatis使用xml方式配置

官网地址:https://mybatis.org/mybatis-3/zh/getting-started.html 使用案例: 我们创建一个数据库叫做mybatis,在其下创建userinfo数据表,然后创建相应的字段,对应的数据库字段如下: 然后,...

Mybatis配置

Mybatis配置

Mybatis配置文件并不复杂,它的所有元素如下: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Confi...

SpringBoot整合Mybatis,application.properties里面mybatis.type-aliases-package配置失效

问题 正常情况下只要,在application.properties文件中作了一下配置: mybatis.type-aliases-package=com.nowcoder.community.entity 就可以在mabatis的映...

使用MyBatis快速生成代码

使用MyBatis快速生成代码

使用MyBatis根据数据库快速生成代码的几种方法 一、使用MyBatis插件和EasyCdoe插件 1. 安装插件 2. IDEA里配置MySQL 3.根据数...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。