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

MyBatis进行级联查询

级联查询

1.创建实体类

        在pojo目录下创建需要的实体类

public class Account {private Integer aid;private Integer auserid;private Double amoney;private User user;//省略了无参、满参构造方法、get与set方法、toString方法
}
public class User {private Integer userid;private String username;private String useraddress;private String usersex;private String userbirthday;//一对多关系映射private List<Account> accounts;//省略了无参、满参构造方法、get与set方法、toString方法
}
2.一对一查询
1.AccountMapper接口
public interface AccountMapper {
//    一对一public Account getAccount(Integer aid);
}
2.AccountMapper.xml文件

一对一的分步查询

        在 <association> 元素中通常使用以下属性。

        ● property:指定映射到实体类的对象属性。

        ● column:指定表中对应的字段(即查询返回的列名)。

        ● javaType:指定映射到实体对象属性的类型。

        ● select:指定引入嵌套查询的子 SQL 语句,该属性用于关联映射中的嵌套查询

<!-- resultMap -->
<resultMap id="map1" type="com.ape.pojo.Account"><id property="aid" column="aid"></id><result property="auserid" column="auserid"></result><result property="amoney" column="amoney"></result><association property="user" javaType="com.ape.pojo.User" column="auserid"select="com.ape.dao.UserMapper.getUser"></association></resultMap>
<!-- 一对一 -->
<select id="getAccount" parameterType="int" resultMap="map1">select * from account where aid=#{aid};
</select>
3.UserMapper接口
public interface UserMapper {
//    一对一public User getUser(Integer userid);
}
4.UserMapper.xml文件
<!--   一对一--><select id="getUser" resultType="com.ape.pojo.User" parameterType="int">select * from user where userid=#{userid};</select>
5.创建测试类进行测试
public class AccountTest {InputStream is = null;SqlSessionFactoryBuilder ssfb = null;SqlSessionFactory factory = null;SqlSession session = null;@Beforepublic void before()throws  Exception{//1.主配置文件路径String path = "mybatis_config.xml";//2.转换为流对象is = Resources.getResourceAsStream(path);//3.创建工厂构造器对象ssfb = new SqlSessionFactoryBuilder();//4.创建工厂(构造者模式)factory =  ssfb.build(is);}@Afterpublic void after()throws  Exception{//资源回收session.close();is.close();}@Testpublic void test(){session=factory.openSession();AccountMapper dao=session.getMapper(AccountMapper.class);Account account=dao.getAccount(1);System.out.println(account);}
}

3.一对多查询
1.UserMapper接口
public interface UserMapper {
//    一对多public User getUserById(Integer userid);
}
2.UserMapper.xml文件

级联,分步

        在 <collection> 元素中通常使用以下属性。

        ● property:指定映射到实体类的对象属性。

        ● column:指定表中对应的字段(即查询返回的列名)。

        ● javaType:指定映射到实体对象属性的类型。

        ● select:指定引入嵌套查询的子 SQL 语句,该属性用于关联映射中的嵌套查询``

<!--   一对多--><select id="getUserById" resultMap="map2" parameterType="int">select * from user where userid=#{userid};</select><resultMap id="map2" type="com.ape.pojo.User"><id property="userid" column="userid"></id><result property="username" column="username"></result><result property="usersex" column="usersex"></result><result property="usersex" column="usersex"></result><result property="userbirthday" column="userbirthday"></result><collection property="accounts" ofType="com.ape.pojo.Account" column="userid"select="com.ape.dao.AccountMapper.getAccountByUserId"></collection></resultMap>
3.AccountMapper接口
public interface AccountMapper {
//    一对多public List<Account> getAccountByUserId(Integer userid);
}
4.AccountMapper.xml文件
<!--   一对多--><select id="getAccountByUserId" parameterType="int" resultType="com.ape.pojo.Account">select * from account where auserid=#{userid};</select>
5.创建测试类进行测试
public class UserTest {InputStream is = null;SqlSessionFactoryBuilder ssfb = null;SqlSessionFactory factory = null;SqlSession session = null;@Beforepublic void before()throws  Exception{//1.主配置文件路径String path = "mybatis_config.xml";//2.转换为流对象is = Resources.getResourceAsStream(path);//3.创建工厂构造器对象ssfb = new SqlSessionFactoryBuilder();//4.创建工厂(构造者模式)factory =  ssfb.build(is);}@Afterpublic void after()throws  Exception{//资源回收session.close();is.close();}@Testpublic void test1(){session=factory.openSession();UserMapper dao=session.getMapper(UserMapper.class);User user=dao.getUserById(46);System.out.println(user);}
}

http://www.dtcms.com/a/406933.html

相关文章:

  • MySQL8.0.26-Linux版安装
  • 济南网站建设_美叶网络网址域名查询
  • 深入了解linux网络—— UDP网络通信
  • 招商加盟的网站应该怎么做宝坻做网站哪家好
  • 视频网站开发工具网站备案中是什么意思
  • 物理媒介和分组交换原理
  • Linux常用命令53——file
  • 西双版纳 网站建设网络建设与运维初级
  • 【Python】文件处理(一)
  • win10怎么做网站wordpress wooyun
  • 织梦网站登录网上做网站赚钱吗
  • Linux数据安全与备份策略完全指南
  • 哈尔滨网站建设服务公司暴雪游戏服务中心
  • wordpress 关闭评论网站优化排名提升
  • 硅基计划5.0 MySQL 壹 初识MySQL 初版
  • Linux之挂载新的硬盘(超详细!)
  • 部署 GitLab 服务器
  • C++项目:仿muduo库高并发服务器-------connection模块
  • 网站建设需要的资质互联网保险的发展现状
  • 8-机器学习与大模型开发数学教程-第0章 预备知识-0-8 编程与数值计算基础(浮点数精度、溢出、数值稳定性)
  • php网站开发书微信公众号手机网站开发
  • 做网站需要工商执照吗代人做网站
  • Go基础:模块化管理为什么能够提升研发效能?
  • 合肥专业做网站公司wd wordpress
  • IR 680LT Maleimide,IR 680LT马来酰亚胺用于蛋白质标记与定量分析
  • 打工人日报#20250925
  • Kubernetes Pod 的生命周期与故障排查
  • Java List列表创建方法大总结
  • 河南工信建设网站市场营销师报名官网
  • 没有文字的网站怎么优化建立旅游网站的目的