mybatis怎么根据id显示两个表的内容连接的小例子有哪些

mybatis怎么根据id显示两个表的内容连接的小例子有哪些,第1张

可以通过关系映射查询出来 请看下面

在mybatis中,没有级联的概念,但是可以利用集合来实现类似的功能。

mybatis30添加了association和collection标签专门用于对多个相关实体类数据进行级联查询,但仍不支持多个相关实体类数据的级联保存和级联删除 *** 作。因此在进行实体类多对多映射表设计时,需要专门建立一个关联对象类对相关实体类的关联关系进行描述。

插入关联表:

<insert id="insertWife" useGeneratedKeys="true" keyProperty="wid" parameterType="comcsslpojoWife">

insert into wife (name,h_id) values (#{name},#{husbandhid})

</insert>

关联映射:嵌入式、继承式 引入式等

先在数据库建立好主外键关系

在xml里面写一个resultMap作为返回类型,如果是多对一 用association 一对多用collection

例子

<!-- 多对一 -->

<resultMap id="wifeandhusband" type="wife">

<id property="wid" column="wid"></id>

<result property="wname" column="wname"></result>

<association property="husband" column="w_hid" javaType="comcsslpojoHusband">

<id property="hid" column="hid"></id>

<result property="name" column="name"></result>

</association>

</resultMap>

<!-- 一对多 -->

<resultMap id="husbandandwife" type="comcsslpojoHusband">

<id property="hid" column="hid"></id>

<result property="name" column="name"></result>

<collection property="wifes" ofType="wife"> --ofType集合中的类型

<id property="wid" column="wid"></id>

<result property="wname" column="wname"></result>

</collection>

</resultMap>

<select id="selectWife" resultMap="wifeandhusband">

select w,h from wife w left join husband h on wh_id=hhid

</select>

注意:

1、关联查询一定要带有关联对象的id(主外键),否则集合只会有一条记录存在(认为你查询的是一个对象)

如:

select hname,hage,wwname from wife w left join husband h on hhid=wh_id

2、表连接中不同表有同名字段的时候:a和b都有name字段

<resultMap type="b" id="b">

<id property="bid" column="id"/>

<result property="name" column="name"/>

<association property="a" javaType="a">

<id property="aid" column="aid"/>

<result property="name" column="aname"/>

</association>

</resultMap>

<select id="select" resultMap="b">

select aid aid,aname aname,bid,bname from a,b where aid=bid

</select>

对数据库字段定义索引

key id(aid,kid)是建了一个名字是id的索引,这个索引是aid和kid的联合索引

key aid(aid)是建了一个名字是aid的索引,这个索引是对字段aid建的索引

索引是在以索引字段为检索条件时,可以加快搜索的速度

这个 是在数据库内 写触发器就可以了

create or replace trigger tri_table_A

after delete on table_A

for each row

begin

delete from table_b where bid=:oldid;

end tri_table_A;

/

select

Aid,Aname,BName,max(BUpTime)

from A ,B

where Aid=Baid

goup by

Aid,Aname,BName

$host = 'localhost:3306';//如果不是本机数据库,换成ip地址,冒号后面是端口号

$user = 'root';//数据库用户名

$pwd = 'root';//数据库密码

$db = 'mydb01';//你要 *** 作的数据库

表名:dede_softconfig

(ENGINE=MyISAM/CHARSET=gbk)说明:软件配置信息表字段名说明描述具体参数downmsg下载说明text ,argrange参数限制方式smallint(5) unsigned NOT NULL DEFAULT '0' ,downtype链接显示方式smallint(6) NOT NULL DEFAULT '0' ,islocal启用镜像站点后是否保留本地下载smallint(5) unsigned NOT NULL DEFAULT '1' ,dfywboy下载默认金币smallint(5) unsigned NOT NULL DEFAULT '0' ,moresitedo镜像处理方式smallint(5) unsigned NOT NULL DEFAULT '1' ,ismoresite是否启用镜像站点smallint(6) NOT NULL DEFAULT '0' ,gotojump附件下载方式smallint(6) NOT NULL DEFAULT '0' ,dfrank下载默认等级smallint(5) unsigned NOT NULL DEFAULT '0' ,sites镜像服务器列表text ,索引:

PRIMARY KEY (`downtype`)

表名:dede_stepselect

(ENGINE=MyISAM/CHARSET=gbk)说明:类别组表字段名说明描述具体参数egroup缓存组名char(20) DEFAULT NULL ,issystem是否系统内置tinyint(1) unsigned NOT NULL DEFAULT '0' ,itemname组类别名char(30) DEFAULT NULL ,id类别组IDmediumint(8) unsigned NOT NULL AUTO_INCREMENT ,issign是否系统内置tinyint(1) unsigned DEFAULT '0' ,索引:

PRIMARY KEY (`id`)

表名:dede_sys_enum

(ENGINE=MyISAM/CHARSET=gbk)说明:联动枚举组表字段名说明描述具体参数ename枚举名char(30) NOT NULL ,egroup类别组名char(20) NOT NULL ,issign是否系统内置tinyint(1) unsigned NOT NULL DEFAULT '1' ,evalue枚举值smallint(6) NOT NULL DEFAULT '0' ,disorder组内排序smallint(5) unsigned NOT NULL DEFAULT '0' ,id编号IDsmallint(5) unsigned NOT NULL AUTO_INCREMENT ,索引:

PRIMARY KEY (`id`)

表名:dede_sys_module

(ENGINE=MyISAM/CHARSET=gbk)说明:模块管理表字段名说明描述具体参数modname插件名称varchar(30) NOT NULL ,indexname导航使用名称varchar(20) NOT NULL ,ismember是否涉及会员系统tinyint(4) NOT NULL DEFAULT '1' ,hashcode模块识别码char(32) NOT NULL ,menustring后台管理菜单text ,id编号int(11) NOT NULL AUTO_INCREMENT ,indexurl导航链接地址varchar(30) NOT NULL ,索引:

PRIMARY KEY (`id`)

表名:dede_sys_set

(ENGINE=MyISAM/CHARSET=gbk)说明:系统设置字段名说明描述具体参数items设置条目text ,sname设置名称char(20) NOT NULL ,id设置IDsmallint(5) unsigned NOT NULL AUTO_INCREMENT ,索引:

PRIMARY KEY (`id`)

表名:dede_sys_task

(ENGINE=MyISAM/CHARSET=gbk)说明:任务计划表字段名说明描述具体参数lastrun上次运行时间int(10) unsigned NOT NULL DEFAULT '0' ,islock是否启用tinyint(1) unsigned NOT NULL DEFAULT '0' ,dourl运行程序varchar(100) NOT NULL ,endtime结束时间int(10) unsigned NOT NULL DEFAULT '0' ,id计划IDint(10) unsigned NOT NULL AUTO_INCREMENT ,settime设置时间int(10) unsigned NOT NULL DEFAULT '0' ,starttime开始时间int(10) unsigned NOT NULL DEFAULT '0' ,sta运行状态enum('运行','成功','失败') DEFAULT NULL ,runtype循环方式tinyint(1) unsigned NOT NULL DEFAULT '0' ,freq周期tinyint(2) unsigned NOT NULL DEFAULT '0' ,runtime运行时间varchar(10) DEFAULT '0000' ,parameter附加参数text ,taskname任务名称varchar(50) NOT NULL ,description任务说明varchar(250) NOT NULL ,索引:

PRIMARY KEY (`id`)

表名:dede_sysconfig

(ENGINE=MyISAM/CHARSET=gbk)说明:系统参数表字段名说明描述具体参数info变量说明varchar(100) NOT NULL ,varname参数名varchar(20) NOT NULL ,aid参数IDsmallint(8) unsigned NOT NULL DEFAULT '0' ,type变量类型varchar(10) NOT NULL DEFAULT 'string' ,groupid变量类型IDsmallint(6) NOT NULL DEFAULT '1' ,value值text ,索引:

PRIMARY KEY (`varname`)

表名:dede_tagindex

(ENGINE=MyISAM/CHARSET=gbk)说明:tags标签表字段名说明描述具体参数count点击int(10) unsigned NOT NULL DEFAULT '0' ,typeid栏目IDsmallint(5) unsigned NOT NULL DEFAULT '0' ,monthcc月统计int(10) unsigned NOT NULL DEFAULT '0' ,tagtag内容char(12) NOT NULL ,monthup每月更新int(10) unsigned NOT NULL DEFAULT '0' ,weekcc周统计int(10) unsigned NOT NULL DEFAULT '0' ,addtime添加时间int(10) unsigned NOT NULL DEFAULT '0' ,total文档数int(10) unsigned NOT NULL DEFAULT '0' ,idtagidint(10) unsigned NOT NULL AUTO_INCREMENT ,weekup每周更新int(10) unsigned NOT NULL DEFAULT '0' ,索引:

PRIMARY KEY (`id`)

表名:dede_taglist

(ENGINE=MyISAM/CHARSET=gbk)说明:标签列表表字段名说明描述具体参数tidtagidint(10) unsigned NOT NULL DEFAULT '0' ,aid文章IDint(10) unsigned NOT NULL DEFAULT '0' ,tagtag内容varchar(12) NOT NULL ,arcrank时间限制smallint(6) NOT NULL DEFAULT '0' ,typeid栏目IDsmallint(5) unsigned NOT NULL DEFAULT '0' ,索引:

PRIMARY KEY (`tid`,`aid`)

表名:dede_uploads

(ENGINE=MyISAM/CHARSET=gbk)说明:文件上传信息表字段名说明描述具体参数uptime上传时间int(10) unsigned NOT NULL DEFAULT '0' ,title文章标题char(60) NOT NULL ,url文件存储路径char(80) NOT NULL ,mid上传者会员IDmediumint(8) unsigned NOT NULL DEFAULT '0' ,arcid文章IDmediumint(8) unsigned NOT NULL DEFAULT '0' ,mediatype媒体类型smallint(6) NOT NULL DEFAULT '1' ,height高度char(10) NOT NULL ,width宽度char(10) NOT NULL ,filesize文件大小mediumint(8) unsigned NOT NULL DEFAULT '0' ,aidIDmediumint(8) unsigned NOT NULL AUTO_INCREMENT ,playtime播放时间char(10) NOT NULL ,索引:

PRIMARY KEY (`aid`),

KEY `memberid` (`mid`),

KEY `arcid` (`arcid`)

表名:dede_verifies

(ENGINE=MyISAM/CHARSET=gbk)说明:系统文件校验表字段名说明描述具体参数cthash文件HASH varchar(32) NOT NULL ,nameid编号char(32) NOT NULL ,method校验方式enum('local','official') NOT NULL DEFAULT 'official' ,filename文件名varchar(254) NOT NULL ,索引:

PRIMARY KEY (`nameid`)

表名:dede_vote

(ENGINE=MyISAM/CHARSET=gbk)说明:投票表字段名说明描述具体参数totalcount总票数mediumint(8) unsigned NOT NULL DEFAULT '0' ,ismore是否多选tinyint(6) NOT NULL DEFAULT '0' ,starttime开始时间int(10) unsigned NOT NULL DEFAULT '0' ,votenote投票选项text ,aid投票IDmediumint(8) unsigned NOT NULL AUTO_INCREMENT ,endtime结束时间int(10) unsigned NOT NULL DEFAULT '0' ,votename投票题目varchar(50) NOT NULL ,索引:

PRIMARY KEY (`aid`)

以上就是关于mybatis怎么根据id显示两个表的内容连接的小例子有哪些全部的内容,包括:mybatis怎么根据id显示两个表的内容连接的小例子有哪些、key(id)对mysql有什么影响,、用触发器如何在java中删除数据库中两个表中的记录(两个表有关联如表A.aID=表B.bID)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9539157.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存