|
设置项 |
描述 | 允许值 | 默认值 |
| lazyLoadingEnabled | 全局性设置懒加载。如果设为‘false',则所有相关联的都会被初始化加载。 | true | false | false |
| aggressiveLazyLoading | 当设置为‘true'的时候,懒加载的对象可能被任何懒属性全部加载。否则,每个属性都按需加载。 | true | false | true |
<settings> <setting name="lazyLoadingEnabled" value="true"/> <setting name="aggressiveLazyLoading" value="false"/> </settings>
package cn.zhang.entity;
import java.util.HashSet;
import java.util.Set;
public class Dept {
private Integer deptno;
private String deptname;
private Set<Emp> emp = new HashSet<Emp>();
@Override
public String toString() {
return "Dept [deptno=" + deptno + ", deptname=" + deptname + ", emp="
+ emp + "]";
}
public Integer getDeptno() {
return deptno;
}
public void setDeptno(Integer deptno) {
this.deptno = deptno;
}
public String getDeptname() {
return deptname;
}
public void setDeptname(String deptname) {
this.deptname = deptname;
}
public Set<Emp> getEmp() {
return emp;
}
public void setEmp(Set<Emp> emp) {
this.emp = emp;
}
}
package cn.zhang.entity;
public class Emp {
private Integer empno;
private String empname;
@Override
public String toString() {
return "Emp [empno=" + empno + ", empname=" + empname + "]";
}
public Integer getEmpno() {
return empno;
}
public void setEmpno(Integer empno) {
this.empno = empno;
}
public String getEmpname() {
return empname;
}
public void setEmpname(String empname) {
this.empname = empname;
}
}
package cn.zhang.util;
import java.io.IOException;
import java.io.Reader;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
/**
* 工具类
*
*/
public class MybatisUtil {
private static String config = "mybatis-config.xml";
static Reader reader;
static {
try {
reader = Resources.getResourceAsReader(config);
} catch (IOException e) {
e.printStackTrace();
}
}
private static SqlSessionFactory factory = new SqlSessionFactoryBuilder()
.build(reader);
// 提供一个可以获取到session的方法
public static SqlSession getSession() throws IOException {
SqlSession session = factory.openSession();
return session;
}
}
package cn.zhang.dao;
import java.io.IOException;
import cn.zhang.entity.Dept;
public interface DeptDao {
/**
* 查询指定记录
* @return
* @throws IOException
*/
public Dept findById(Integer id) throws IOException;
}
<?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="cn.zhang.dao.DeptDao">
<!-- 3.根据员工id查询员工信息 -->
<select id="selectEmpByDeptNo" resultType="Emp">
select empno,empname
from emp where deptno=#{deptno}
</select>
<!-- 2.对部门实体的映射 -->
<resultMap type="Dept" id="deptMapper">
<id property="deptno" column="deptno" />
<result property="deptname" column="deptname" />
<!-- 一对多部门关联的员工 -->
<!--select:关联员工查询 -->
<!--column:关联员工查询所需要的条件(来源于1) -->
<collection property="emp" ofType="Emp" select="selectEmpByDeptNo"
column="deptno" />
</resultMap>
<!--1.根据部门id查询部门信息 -->
<select id="findById" resultMap="deptMapper">
select deptno,deptname from dept
where deptno=#{deptno}
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!--lazyLoadingEnabled:设置懒加载,默认为false。如果为false:则所有相关联的都会被初始化加载。
aggressiveLazyLoading:默认为true。当设置为true时,懒加载的对象可能被任何懒属性全部加载;否则,每个属性按需加载。 -->
<settings>
<!-- 打开延迟加载的开关 -->
<setting name="lazyLoadingEnabled" value="true" />
<!-- 将积极加载改为消息加载即按需加载 -->
<setting name="aggressiveLazyLoading" value="false" />
</settings>
<!-- 配置别名 -->
<typeAliases>
<!--方式一: 按类型名定制别名 -->
<!--方式二: 拿当前指定包下的简单类名作为别名 -->
<package name="cn.zhang.entity" />
</typeAliases>
<environments default="oracle">
<environment id="oracle">
<!-- 使用jdbc的事务 -->
<transactionManager type="JDBC" />
<!-- 使用自带的连接池 -->
<dataSource type="POOLED">
<!-- 我用的Oracle数据库 -->
<property name="driver" value="oracle.jdbc.driver.OracleDriver" />
<property name="url" value="jdbc:oracle:thin:@localhost:1521:orcl" />
<property name="username" value="study" />
<property name="password" value="123" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="cn/zhang/dao/DeptDAO.xml" />
</mappers>
</configuration>
package cn.zhang.test;
//一对多
import java.io.IOException;
import org.apache.ibatis.session.SqlSession;
import org.junit.Before;
import org.junit.Test;
import cn.zhang.dao.DeptDao;
import cn.zhang.entity.Dept;
import cn.zhang.util.MybatisUtil;
public class MyTest {
DeptDao dao;
@Before
public void initData() throws IOException{
SqlSession session = MybatisUtil.getSession();
dao = session.getMapper(DeptDao.class);
}
/**
* 查询指定记录
* @throws IOException
*/
@Test
public void findAll() throws IOException{
Dept dept = dao.findById(1);
System.out.println(dept);
}
}
<settings> <!-- 打开延迟加载的开关 --> <setting name="lazyLoadingEnabled" value="true" /> <!-- 将积极加载改为消息加载即按需加载 --> <setting name="aggressiveLazyLoading" value="false" /> </settings>
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有