当前位置: 首页 > wzjs >正文

邢台百度推广无锡网站seo顾问

邢台百度推广,无锡网站seo顾问,造纸公司网站建设,软件开发制作平台目录 一、多表关联 1、数据库表结构 2、javaBean类 3、mapper接口 4、sqlMapper文件 5、测试 二、延迟加载 1、解决什么问题 2、嵌套查询 3、延迟加载 三、逆向工程MybatisX插件 1、下载插件 1. 通过 JetBrains 插件市场下载(推荐) 2. 手动…

目录

一、多表关联

1、数据库表结构

2、javaBean类

3、mapper接口

4、sqlMapper文件

5、测试

二、延迟加载

1、解决什么问题

2、嵌套查询

3、延迟加载

三、逆向工程MybatisX插件

1、下载插件

1. 通过 JetBrains 插件市场下载(推荐)

2. 手动下载(备用)

四、SQL注解(这个方法是MybatisX的方法,不使用sqlmapper文件映射,直接通过注解在java文件里面写sql语句,没有实现sql语句与java分离的初衷)


一、多表关联

1、数据库表结构

create table king(id int primary key auto_increment,name char(32)
);
​
create table queen(id int primary key auto_increment,name char(32),k_id int 
);
​
create table consort(id int primary key auto_increment,name char(32),k_id int 
);
​
insert into king(name) values ('拉玛十世'),('乾隆');
insert into queen(name,k_id) values ('苏提达',1),('富察氏',2);
insert into consort(name,k_id) values ('诗妮娜1号',1),('诗妮娜2号',1),('令妃',2),('香妃',2);select * from queen;        
select * from consort;      

2、javaBean类

@Data
public class King {private Integer id;private String name;//一对一映射private Queen queen;//王后对象//一对多映射private List<Consort> list;//妃子集合
}

3、mapper接口

@Mapper
public interface KingMapper {public List<King> getKings();
}

4、sqlMapper文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hl.mybatis03.mapper.KingMapper"><!--     public List<King> getKings();--><select id="getKings" resultMap="map1">select king.*,queen.id as qid,queen.name as qname,queen.k_id,c.id as cid,c.name as cname,c.k_id as ck_idfrom kingjoin queen on king.id = queen.k_idjoin consort c on king.id = c.k_id</select><!--type="预期的最终返回值类型"  autoMapping="true"开启结果集自动映射--><resultMap id="map1" type="King" autoMapping="true"><id property="id" column="id"></id><!--手动结果集映射-->
<!--        <result property="name" column="name"></result>--><!--一对一映射--><association property="queen" javaType="Queen"><!--给Queen类的属性赋值--><id property="id" column="qid"></id><result property="name" column="qname"></result><result property="kId" column="k_id"></result></association><!--一对多映射 autoMapping="true"自动映射  columnPrefix="c" 针对列名添加前缀--><collection property="list" ofType="Consort" autoMapping="true" columnPrefix="c"><id property="id" column="id"></id>
<!--            <id property="id" column="cid"></id>-->
<!--            <result property="name" column="cname"></result>-->
<!--            <result property="kId" column="ck_id"></result>--></collection></resultMap>
</mapper>

5、测试

二、延迟加载

多张表相关联情况下

1、解决什么问题

延迟加载主要用于解决嵌套查询的效率问题。

只针对嵌套查询。

2、嵌套查询

一个查询调用另一个查询。

3、延迟加载

当我们不需要另一个查询时,该查询先不执行。

当我们需要另一个查询的数据时,再执行该查询。

需要??:当我们访问这个关联属性时,进行查询;不访问关联属性时,不执行查询。

select="sql语句唯一标识" 嵌套查询

fetchType="eager" 立即加载

fetchType="lazy" 延迟加载,懒(延迟)加载要求所对应的类(javabean)以及相关类实现序列化接口Serializable 

@Data
@JsonIgnoreProperties({"handler", "hibernateLazyInitializer"})
public class Queen implements Serializable {private Integer id;private String name;private Integer kId;//国王id
​//一对一private King king;//间接  一对多private List<Consort> list;
}
@Mapper
public interface QueenMapper {public List<Queen> getQueens();
}
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hl.mybatis03.mapper.QueenMapper"><!--public List<Queen> getQueens();--><!--查询王后信息--><select id="getQueens" resultMap="map1">select * from queen</select><!--  fetchType="eager" 数据的抓取策略:eager立即加载 lazy延迟加载 : 使用数据时查询(比如return返回时json序列化,或者debug模式看数据内容)--><resultMap id="map1" type="Queen" autoMapping="true"><id property="id" column="id"></id><association property="king" javaType="King"fetchType="lazy"select="findKing" column="k_id"></association><collection property="list" ofType="Consort"fetchType="lazy"select="selectConsort" column="k_id"></collection></resultMap><!--根据王后表中的国王id,找到国王信息--><select id="findKing" resultType="King">select * from king where id = #{id}</select>
​<!--根据国王id,找到妃子集合--><select id="selectConsort" resultType="Consort">select * from consort where k_id = #{kId}</select>
</mapper>

三、逆向工程MybatisX插件

1、下载插件

下载和安装 MybatisX 的地址和方法:

1. 通过 JetBrains 插件市场下载(推荐)

  • 在 IntelliJ IDEA 中直接安装

    1. 打开 IDEA,进入 FileSettingsPlugins

    2. 搜索 MybatisX,点击 Install 安装。

    3. 重启 IDEA 生效。

  • JetBrains 插件市场地址: MybatisX on JetBrains Marketplace

2. 手动下载(备用)

  • 如果无法通过 IDEA 直接安装,可以从 JetBrains 插件市场下载 .jar 文件:

    1. 访问上述链接,点击 Download 获取最新版本的 .jar

    2. 在 IDEA 的 Plugins 界面选择 Install Plugin from Disk,上传下载的 .jar 文件。

四、SQL注解(这个方法是MybatisX的方法,不使用sqlmapper文件映射,直接通过注解在java文件里面写sql语句,没有实现sql语句与java分离的初衷)

@Insert
@Options

@Update
@Delete
@Select

@Results
@Result
@One
@Many

package com.hl.mybatis03.mapper;import com.hl.mybatis03.pojo.Consort;
import com.hl.mybatis03.pojo.King;
import org.apache.ibatis.annotations.*;import java.util.List;
@Mapper
public interface ConsortMapper {@Select("select * from consort")public List<Consort> listAll();@Insert("insert into consort(name,k_id) values (#{name},#{kId})")//返回自增主键@Options(useGeneratedKeys = true,keyProperty = "id",keyColumn = "id")public int save(Consort consort);@Update("update consort set name=#{name},k_id=#{kId} where id=#{id}")public int update(@Param("id") Integer id, @Param("name") String name, @Param("kId") Integer kId);@Delete("delete from consort where id=#{id}")public int delete(Integer id);//关联妃子和王国@Select("select * from consort")@Results(value = {@Result(id = true,property = "id",column = "id"),@Result(property = "name",column = "name"),@Result(property = "king",javaType = King.class, column = "k_id",one=@One(select = "com.hl.mybatis03.mapper.ConsortMapper.getKingById"))})public List<Consort> list();@Select("select * from king where id=#{id}")public King getKingById(Integer id);}

作业

创建 用户类、角色类

用户表(id,username,phone,role_id)

zhangsan

lisi

角色表(id,name)

超级管理员

普通管理员

财务人员

市场人员

1)通过用户,查询当前用户信息和相关的角色信息

一对一

方式一:两张表join连接查询,相关数据(xml)

方式二:嵌套查询(xml、sql注解)

方式三:嵌套查询(sql注解)

2)通过角色,查询角色名和想的所有用户列表

一对多

方式一:两张表join连接查询,相关数据(xml)

方式二:嵌套查询(xml、sql注解)

方式三:嵌套查询(sql注解)

http://www.dtcms.com/wzjs/49784.html

相关文章:

  • 男女性做那个视频网站做游戏推广怎么找客户
  • 提供零基础网站建设教学零售客户电商网站
  • 免费网站导航建设百度竞价开户
  • dw做网站基础怎么样建立自己的网站
  • 免费网站在哪里申请重庆seo排名外包
  • 网站关键词优化方案深圳白帽优化
  • 公司做网站的费用用途写什么汕头seo不错
  • 做网站该注意哪些基本要素百度词条优化
  • 平安银行官方网站百度app首页
  • 公司做网站让拍照备案如何把品牌推广出去
  • 网站开发如何让图片加载的更快怎么在百度推广自己的网站
  • 新手学做网站从哪里开始百度seo找哪里
  • 厦门手机网站建设是什么意思网络推广方案的内容
  • 单位网站建设存在问题情况汇报百度怎么优化网站排名
  • 阿里云怎么搭载wordpressseo短期培训班
  • 在哪个网站可以一对一做汉教香港seo公司
  • 做网站的个人总结营销型网站更受用户欢迎的原因是
  • 网站dns如何修改不了网广州网站建设
  • 如何做网站水晶头免费广告推广软件
  • 西安正规网站建设公司seo主要优化
  • 网站支付方案的设计百度快照关键词推广
  • wordpress固定链接文章别名快速提升排名seo
  • 手机怎么自己做软件春哥seo博客
  • 陕西建设银行网站免费域名注册永久
  • 义乌购批发网站网站改版
  • seo网站优化及网站推广2021百度新算法优化
  • 怎么用flash做视频网站广安seo外包
  • 外贸 网站推广计划百度推广代理商与总公司的区别
  • 有哪些可以做兼职的网站项目推广网站
  • 区总工会网站建设流程微信软文范例大全100