大家好,又见面了,我是你们的朋友全栈君。
一、返回集合
1.返回JavaBean集合
public List selectMyUserByNameLike(String name);
select * from myuser where name like #{name}
测试方法
public static voidmain(String[] args) {
SqlSession session= null;try{
InputStream inputStream= Resources.getResourceAsStream(“mybatis-config.xml”);
SqlSessionFactory sqlSessionFactory= newSqlSessionFactoryBuilder().build(inputStream);
session=sqlSessionFactory.openSession();
MyUserMapper mapper= session.getMapper(MyUserMapper.class);
List myUsers = mapper.selectMyUserByNameLike(“%a%”);
System.out.println(myUsers);
}catch(IOException e) {
e.printStackTrace();
}finally{if (session != null) {
session.close();
}
}
}
2.返回 Map 集合
select * from myuser
二、返回 Map
1.一条记录
public Map selectMyUserById(Integer id);
select * from myuser where id = #{id}
2.多条记录,需要指定 Map 的 Key 和 Value 的类型
//指定 Map 的 Key 从记录中的 id 列获取
@MapKey(“id”)public Map selectMyUserByGtId(Integer id);
select * from myuser where id > #{id}
三、返回 resultMap 自定义结果集封装
关于自动映射封装的配置
默认数据库字段与 JavaBean 对应不上时可开启驼峰命名或查询时使用别名
1.自定义 JavaBean 的封装
确认是否成功可以关掉 MyBatis 的自动映射
public MyUser selectMyUserById(Integer id);
select * from myuser where id = #{id}
2.关联查询的封装,一对一,JavaBean 属性包含 JavaBean
public MyUser selectMyUserById(Integer id);
直接调用属性赋值
SELECT m.id, m.name, m.age, m.did, d.name AS dname FROM myuser m,dept d WHERE m.did = d.id AND m.id = #{id}
使用 association
SELECT m.id, m.name, m.age, m.did, d.name AS dname FROM myuser m,dept d WHERE m.did = d.id AND m.id = #{id}
使用 association 二次查询,即有两条 SQL
SELECT * FROM myuser WHERE id = #{id}
/p>
PUBLIC “-//mybatis.org//DTD Mapper 3.0//EN”
“http://mybatis.org/dtd/mybatis-3-mapper.dtd”>
select * from dept where id = #{id}
开启懒加载:在没有使用 Dept 的属性时,则只会加载 MyUser 的属性。即只会发送一条 SQL 语句,要使用 Dept 属性时才会发送第二条 SQL。不会一次性发送两条 SQL
3.关联查询的封装,一对多,JavaBean 属性包含 JavaBean 的集合
使用 association
public Dept getDeptById(Integer id);
SELECT m.id,m.name,m.age,m.did,d.name AS dname FROM myuser m,dept d WHERE m.did = d.id AND d.id = #{id}
关闭懒加载,使用二次查询
public Dept getDeptByIdStep(Integer did);
select * from dept where id = #{id}
public List selectMyUserByDid(Integer dId);
select * from myuser where dId = #{did}
4.鉴别器 discriminator
SELECT * FROM myuser WHERE id = #{id}
select * from dept where id = #{id}
上面测试中使用的实体类与数据
public classDept {privateInteger id;privateString name;private List myUsers;
public classMyUser {privateInteger id;privateString name;privateInteger age;private Dept dept;
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/128908.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...