Mybatis 多對多表關聯
mybatis3.0添加了association和collection標籤專門用於對多個相關實體類資料進行級聯查詢,但仍不支援多個相關實體類資料的級聯儲存和級聯刪除操作。因此在進行實體類多對多對映表設計時,需要專門建立一個關聯物件類對相關實體類的關聯關係進行描述。下文將以“User”和“Group"兩個實體類之間的多對多關聯對映為例進行CRUD操作。
建立user表,對應實體類"User",建表語句如下:
<!--StartFragment-->
- CREATE TABLE `user` (
-
`id` int
- `name` varchar(40) collate utf8_unicode_ci default NULL,
- `password` varchar(20) collate utf8_unicode_ci default NULL,
- `createtime` timestamp NULL default CURRENT_TIMESTAMP,
- PRIMARY KEY (`id`)
- )
建立group_info表,對應實體類"Group",建表語句如下:
Sql程式碼- CREATE TABLE `group_info` (
- `id` int(11) NOT NULL auto_increment,
- `name` varchar(40) collate utf8_unicode_ci default NULL,
- `createdate` timestamp NULL default CURRENT_TIMESTAMP,
- `state` int(1) default '0' COMMENT '0:可見;1:不可見',
- PRIMARY KEY (`id`)
- )
建立user_group表,對應實體類"UserGroupLink"(該類為User和Group兩個實體類之間的關係描述),建表語句如下:
- CREATE TABLE `user_group` (
- `user_id` int(11) default NULL,
- `group_id` int(11) default NULL,
- `createdate` timestamp NULL default CURRENT_TIMESTAMP,
- KEY `FK_user_group_user_id` (`user_id`),
- KEY `FK_user_group_group_id` (`group_id`),
- CONSTRAINT `FK_user_group_group_id` FOREIGN KEY (`group_id`) REFERENCES `group_info` (`id`),
- CONSTRAINT `FK_user_group_user_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`)
- )
建立實體類User,程式碼如下:
Java程式碼- package com.xxt.ibatis.dbcp.domain;
- import java.util.Date;
- import java.util.List;
- /**
- * @describe: User實體類
- * @author: Nirvana
- * @version: V1.0 2011-3-11下午06:06:49 create
- */
- public class User {
- private long id;
- private String name;
- private String password;
- private Date createTime;
- private List<Group> group;
- public Date getCreateTime() {
- return createTime;
- }
- public void setCreateTime(Date createTime) {
- this.createTime = createTime;
- }
- public long getId() {
- return id;
- }
- public void setId(long id) {
- this.id = id;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String getPassword() {
- return password;
- }
- public void setPassword(String password) {
- this.password = password;
- }
- public List<Group> getGroup() {
- return group;
- }
- public void setGroup(List<Group> group) {
- this.group = group;
- }
- }
建立實體類Group,程式碼如下:
Java程式碼- package com.xxt.ibatis.dbcp.domain;
- import java.util.Date;
- import java.util.List;
- /**
- * @describe: Group實體類
- * @author: Nirvana
- * @version: V1.0 2011-3-7下午08:10:29 create
- */
- public class Group {
- private long id;
- private String name; // 組名
- private Date createTime;
- private int state; // 0可見狀態 1不可見狀態
- private List<User> user;
- public Date getCreateTime() {
- return createTime;
- }
- public void setCreateTime(Date createTime) {
- this.createTime = createTime;
- }
- public long getId() {
- return id;
- }
- public void setId(long id) {
- this.id = id;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public int getState() {
- return state;
- }
- public void setState(int state) {
- this.state = state;
- }
- public List<User> getUser() {
- return user;
- }
- public void setUser(List<User> user) {
- this.user = user;
- }
- }
建立實體類UserGroupLink,用於描述User和Group之間的對應關係,程式碼如下:
Java程式碼- package com.xxt.ibatis.dbcp.domain;
- import java.util.Date;
- /**
- * @describe: 描述User和Group之間的對映關係
- * @author: Nirvana
- * @version: V1.0 2011-3-11下午02:57:52 create
- */
- public class UserGroupLink {
- private User user;
- private Group group;
- private Date createTime;
- public Date getCreateTime() {
- return createTime;
- }
- public void setCreateTime(Date createTime) {
- this.createTime = createTime;
- }
- public Group getGroup() {
- return group;
- }
- public void setGroup(Group group) {
- this.group = group;
- }
- public User getUser() {
- return user;
- }
- public void setUser(User user) {
- this.user = user;
- }
- }
建立user實體類的對映檔案user.map.xml,程式碼如下:
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.xxt.ibatis.dbcp.domain.User">
-
相關推薦
mybatis實現多表一對一,一對多,多對多關聯查詢
轉自:https://blog.csdn.net/m0_37787069/article/details/79247321 1、一對一 關鍵字:association 作用:針對pojo物件屬性的對映 property:pojo的屬性名 &
MyBatis表關聯 一對多 多對一 多對多
在上一篇文章中,我們已經搭建了eclipse,mybatis,mysql 的開發環境,並且實現了 mybatis 的簡單的增刪改查功能。參考文章 有了上一篇文章的基礎,可以處理一些簡單的應用,但在實際專案中,經常是關聯表的查詢。比如:最常見到的多對一,一對多等。 1. M
Mybatis 多對多關聯表關聯 如何插入關聯表資料
很多時候我們會碰到這樣一個需求,當前我有(使用者)表和(角色)表,他們之間是多對多的關係,所以我們通常會建立一個關聯表(使用者_角色)表,現在我們有固定的角色,只需要新增使用者即可,給使用者指定角色,那我們怎麼做呢,廢話不多說了,下面給出思路: 表 :us
mybatis一個表關聯很多的表,好多是多對多的關聯關係,有必要建關聯物件麼
不建議使用關聯物件 hb都一般不建議使用 設定關聯的時候 會影響sql查詢效率 特別是在資料量大的情況下 關聯物件導致查詢很多不必要的欄位資訊 ,員工表中你只需要用到部門表中的部門名字,如果你使用關聯物件,你會把部門表中的所有欄位給查詢出來,所以不建議,需要用
Mybatis 多對多表關聯
mybatis3.0添加了association和collection標籤專門用於對多個相關實體類資料進行級聯查詢,但仍不支援多個相關實體類資料的級聯儲存和級聯刪除操作。因此在進行實體類多對多對映表設計時,需要專門建立一個關聯物件類對相關實體類的關聯關係進行描述。下文將以“User”和“G
Hibernate學習筆記(五) --- 創建基於中間關聯表的多對多映射關系
mys 兩個 override pac tid 一對多 main ber different 多對多映射是在實際數據庫表關系之間比較常見的一種,仍然以電影為例,一部電影可以有多個演員,一個演員也可以參演多部電影,電影表和演員表之間就是“多對多”的關系 針對多對多的映射關系,
使用GreenDao建立表、關聯表(一對一,一對多,多對多)、CURD、升級資料庫等操作
應用場景:從照片中找出包含有使用者人臉的照片,並儲存該照片中的人臉特徵、使用該特徵和使用者人臉特徵對比,滿足條件,照片就儲存到該使用者表裡 一、建立表 GreenDao託管地址:https://github.com/greenrobot
MyBatis關聯對映關係,一對一,一對多,多對多
“縱許悠揚度朱戶,終愁人影隔窗紗” 前言 客觀世界中的物件很少有孤立存在的,例如班級,往往與班級的學生存在關聯關係,如果得到某個班級的例項,那麼應該可以直接獲取班級對應的全部學生。反過來,如果已經得到個學生的例項,那麼也應該可以訪問該學生對應的班級。這種例項之間的互相訪問就是關聯關係
thinkphp5多對多關聯,中間表進行多型關聯
這是中間表,不要問我為什麼這麼設計,這是領導要求的 CREATE TABLE `at_relation_table` ( `id` int(11) NOT NULL AUTO_INCREMENT, `aid` int(11) NOT NULL COMMENT 'aid', `bid`
JPA表關聯關係(多對一、一對多、多對多、一對一)
小提示:外來鍵在哪邊,那邊就是多方哦!! 單向多對一: 給多方加上 @ManyToOne ex:【產品類Product--多方 ,產品分類ProductDir--一方】 單向一對多:給一方加上 @OneToMany ex
(十九)Mybatis自關聯多對多查詢
注:程式碼已託管在GitHub上,地址是:https://github.com/Damaer/Mybatis-Learning ,專案是mybatis-14-oneself-many2one,需要自取,需要配置maven環境以及mysql環境(sql語句在resource下的test.s
MyBatis學習總結(九)---基於XML多表聯合查詢(一對一、一對多、多對多)
1、一對一的關聯 使用association,association元素用於處理“has-one”(一對一)這種型別關係。 作用:針對pojo物件屬性的對映,它的兩個主要引數此時對應的值: javaType對應pojo類名, property對應pojo的
JavaEE MyBatis關聯對映之多對多(教材學習筆記)
在實際運用中,多對多也是十分常見的,比如一個訂單可能包含多個產品,而每個商品有可能出現在多個訂單中,在資料庫中這樣的情況就需要一張中間表來維護,下面通過一個案例來學習 1.新建三個資料表 其中訂單表在上一票部落格中已經建立過了(點這裡跳轉至上篇部落格),下面展示中間表以及商品表的建立
JPA中多對多表關係的刪除操作,如何刪除放棄維護關聯關係的一方和中間表的紀錄
資料庫中的表 使用者表:在配置實體類的時候放棄了維護關聯關係的權利 角色表: 中間表: 需求:刪除t_user表中的user_id 為1的使用者,並刪除相關的中間表紀錄。 程式碼: @Test public
MyBatis的學習(八)——關聯對映之多對多關聯
本次多對多關聯在之前進行的一對一和一對多關聯基礎之上進行。 需求:根據班級課程查詢選修學生資訊 新建課程表和課程表與學生表的中間表 建立Course實體類: package com.little.entity; import java.util.ArrayL
MyCat分片規則(全域性表,ER分片表,多對多關聯,主鍵分片VS非主鍵分片),MyCat常用的分片規則(15中分片規則),自定義MyCat分片規則
1 MyCat分片規則 資料切分中重要的幾條原則,其中有幾條資料冗餘,表分組(Table Group)。 1.1全域性表 如果你的業務中有些資料類似於資料字典,比如配置檔案的配置,常用業務的配置或資料量不是很大,很少變動的表,這些表往往不是特別大,而且大部分的業務場景都
MyBatis學習筆記之三--關聯關係(多對多)
MyBatis學習筆記(三) 關聯關係 首先給大家推薦幾個網頁: http://blog.csdn.net/isea533/article/category/2092001 沒事看看 - MyBatis工具:www.mybatis.tk http://www.mybatis.o
mybatis 之三:多對多關聯查詢
MyBatis 本是apache的一個開源專案iBatis,它 是一款優秀的持久層框架,它支援定製化 SQL、儲存過程以及高階對映。MyBatis 避免了幾乎所有的 JDBC 程式碼和手動設定引數以及獲取結果集。MyBatis 可以使用簡單的 XML 或註解來配置和對映原生資
# Mybatis(四)表間關係分析,高階對映(一對一,一對多,多對多) 菜鳥日記--day05(下_02)
Mybatis(四)表間關係分析,高階對映(一對一,一對多,多對多) 菜鳥日記–day05(下_02) 花了很多時間,去看sql複雜查詢,更新慢了 電腦斷電寫的太急,綠色補更 一、表間關係分析 1.分析資料庫表的方法 思路: 需要分模組的對多張表進行邏輯分析 表記錄
Mybatis多對多關聯查詢
mybatis3.0添加了association和collection標籤專門用於對多個相關實體類資料進行級聯查詢,但仍不支援多個相關實體類資料的級聯儲存和級聯刪除操作。因此在進行實體類多對多對映表設計時,需要專門建立一個關聯物件類對相關實體類的關聯關係進行描述