Mybatis 一对多延迟加载,并且子查询中与主表字段不对应 (19)
Mybatis 一对多延迟加载,并且子查询中与主表字段不对应应用说明。
实现一对多关联(懒加载),一个教研组对应多个教师,既:教师的教研编号与教研组的教研编号关联,并且教师关联教研组外键与教研组编号不一致。
1、工程资源配置文件
1)、本应用实际应用到了(开启延迟加载配置、关闭立即加载配置);
2) 、外关联查询语句对应xml文件 :<mapper resource="com/mybatis03/mapper/teacherGroupToTeacherMapper.xml"/>
3)、主查询xml文件:<mapper resource="com/mybatis03/mapper/TeacherMapper.xml"/>
<?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> <settings>
<!-- 开启日志,并制定使用的具体日志,LOG4J 对应 log4j.properties的文件名 -->
<setting name="logImpl" value="LOG4J"/>
<!-- 开启延迟加载 -->
<setting name="lazyLoadingEnabled" value="true"/>
<!-- g关闭立即加载 -->
<setting name="aggressiveLazyLoading" value="false"/>
</settings>
<!-- 转换器 -->
<typeHandlers>
<!-- 把java类的boolean类型转换数据 int,数据库int转换为java类的boolean类型 -->
<typeHandler handler="com.mybatis03.util.BooleanAndIntConverter" javaType="Boolean" jdbcType="INTEGER"/>
</typeHandlers>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/mybatis01"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<!-- 加载映射文件 -->
<mapper resource="com/mybatis03/mapper/personMapper.xml"/>
<mapper resource="com/mybatis03/mapper/TeacherMapper.xml"/>
<mapper resource="com/mybatis03/mapper/teacherCourseMapper.xml"/>
<!-- 外关联查询语句对应xml文件 -->
<mapper resource="com/mybatis03/mapper/teacherGroupToTeacherMapper.xml"/>
</mappers>
</configuration>
2、mapper文件
2.1 教师.xml 文件
<?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="com.mybatis03.mapper.TeacherMapper">
<!-- 实现一对多关联(懒加载),一个教研组对应多个教师,既:教师的教研编号与教研组的教研编号关联 -->
<select id="queryWithLazyGroupAndTeachers" parameterType="int" resultMap="lazyGroupTeacherMap">
SELECT g.*,g.groupID AS groupno FROM teachergroup g
WHERE g.groupid =#{groupid}
</select>
<!--类和表对应关系 (一对多都用collection,一对一用 association) -->
<resultMap id="lazyGroupTeacherMap" type="com.mybatis03.bean.TeacherGroup">
<!-- 因为type主类是TeacherGroup,所以先配置 TeacherGroup类属性对应关系 -->
<id property="groupID" column="groupid" />
<result property="groupName" column="groupname"/>
<!-- 配置成员属性教师 ,一对多;属性类型:javaType,属性元素类型 ofType-->
<!--property 中的属性为实体类中的属性,column对应数据库中的字段 -->
<collection property="teacherList" ofType="com.mybatis03.bean.Teacher"
select="com.mybatis03.mapper.teacherGroupToTeacherMapper.queryGroupToTeacherByNO" column="groupno" >
</collection>
</resultMap>
</mapper>
说明:由于在关联过程中,教研组编号与教师编号不一致,通过重命名方式使。关联字段一致:
A、本应用实现懒加载使用原始SQL关联查询应为:SELECT g.*,t.* FROM teachergroup g INNER JOIN teacher t ON g.groupid = t.groupno WHERE g.groupid =#{groupid}
B、应用懒加载实现说明解决字段不一致参加红色浪线;
2.2 外关联查询教师信息xml文件
<?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="com.mybatis03.mapper.teacherGroupToTeacherMapper">
<!-- 查询教师,延迟加载应用此配置文件 -->
<!-- 查询教师对应的课程 -->
<select id="queryGroupToTeacherByNO" parameterType="int" resultType="com.mybatis03.bean.Teacher">
SELECT * FROM teacher WHERE groupno = #{groupno}
</select>
</mapper>
3、教师接口类
public interface TeacherMapper {
/* 实现一对多关联(延迟加载),一个教研组对应多个教师,既:教师的教研编号与教研组的教研编号关联 */
TeacherGroup queryWithLazyGroupAndTeachers(int groupNo);
}
4、实体类
4.1 教师实体类
public class Teacher {
@Override
public String toString() {
return "Teacher{" +
"teaNo=" + teaNo +
", courseNo=" + courseNo +
", teaName='" + teaName + '\'' +
", teacherCourse{" + "courseNo=" + teacherCourse.getCourseNo() +
", courseName=" + teacherCourse.getCourseName() +"}"+ '}';
} /* 教师编号 */
private int teaNo;
/* 课程编号 */
private int courseNo;
/* 教师名称 */
private String teaName; /* 教师课程类,课程作为老师属性 */
private TeacherCourse teacherCourse; /* 新增一个教研组编号,用于关联教研组编号,实现多对一关联*/
private int groupNo; /**
* <!--利用resultMap实现一对一 -->
* @return
*/
public TeacherCourse getTeacherCourse() {
return teacherCourse;
} public void setTeacherCourse(TeacherCourse teacherCourse) {
this.teacherCourse = teacherCourse;
} public int getGroupNo() {
return groupNo;
} public void setGroupNo(int groupNo) {
this.groupNo = groupNo;
} public int getCourseNo() {
return courseNo;
} public void setCourseNo(int courseNo) {
this.courseNo = courseNo;
} public int getTeaNo() {
return teaNo;
} public void setTeaNo(int teaNo) {
this.teaNo = teaNo;
} public String getTeaName() {
return teaName;
} public void setTeaName(String teaName) {
this.teaName = teaName;
}
}
4.2 教研组实体类
1 public class TeacherGroup {
2 @Override
3 public String toString() {
4
5 String str = "";
6 for (int i = 0; i < teacherList.size(); i++) {
7
8 str += "teaNo=" + teacherList.get(i).getTeaNo() + ",";
9 str += "courseNo=" + teacherList.get(i).getCourseNo() + ",";
10 str += "teaName=" + teacherList.get(i).getTeaName() + ",";
11 str += "groupNo=" + teacherList.get(i).getGroupNo();
12 if (i < teacherList.size() - 1) {
13 str += ",";
14 }
15
16 }
17 return "TeacherGroup{" +
18 "groupID=" + groupID +
19 ", groupName='" + groupName + '\'' +
20 ", teacherList{" +
21 // "teaNo=" + teacherList.get(0).getTeaNo() + "," +
22 // "courseNo=" + teacherList.get(0).getCourseNo() + "," +
23 // "teaName=" + teacherList.get(0).getTeaName() + "," +
24 // "groupNo=" + teacherList.get(0).getGroupNo() + "," +
25 str+
26 "}" +
27 '}';
28 }
29
30
31 /* 教研组编号:汉语教研组 1,英语教研组2,日语教研组3,德语教研组 4 */
32 /* 教研组编号,用于关联教师编号,实现多对一关联*/
33 private int groupID;
34
35 /* 教研组名称,英语教研组,日语教研组还是德语教研组*/
36 private String groupName;
37
38 /* 一个教研组对应多个教师,属于一对多关系。关联关系:教师的教研编号与教研组的教研编号关联 */
39 private List<Teacher> teacherList;
40
41 public List<Teacher> getTeacherList() {
42 return teacherList;
43 }
44
45 public void setTeacherList(List<Teacher> teacherList) {
46 this.teacherList = teacherList;
47 }
48
49 public int getGroupID() {
50 return groupID;
51 }
52
53 public void setGroupID(int groupID) {
54 this.groupID = groupID;
55 }
56
57 public String getGroupName() {
58 return groupName;
59 }
60
61 public void setGroupName(String groupName) {
62 this.groupName = groupName;
63 }
64 }
5、测试类
1 @Test
2 public void queryWithLazyGroupAndTeachers() throws Exception {
3 Reader reader = Resources.getResourceAsReader("mybatis-03.xml");
4 SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
5
6 SqlSession session = sessionFactory.openSession();
7 int groupNo = 1;
8 TeacherMapper personMapper = session.getMapper(TeacherMapper.class);
9 TeacherGroup teacherGroup = personMapper.queryWithLazyGroupAndTeachers(groupNo);
10 System.out.println("教研组编号:"+teacherGroup.getGroupID()+",教研组名称:"+teacherGroup.getGroupName());
11 List<Teacher> teacherList = teacherGroup.getTeacherList();
12 for (Teacher teacher : teacherList) {
13 System.out.println("教师编号:"+teacher.getTeaNo()+",教师名称:"
14 +teacher.getTeaName()+",教研组编号:"+teacher.getGroupNo());
15 }
16 }
测试结果
"C:\Program Files\Java\jdk1.8.0_25\bin\java" -ea -Didea.test.cyclic.buffer.size=1048576 "-javaagent:C:\Users\newsoft\AppData\Roaming\JetBrains\IntelliJ IDEA 2017.3.5\lib\idea_rt.jar=1031:C:\Users\newsoft\AppData\Roaming\JetBrains\IntelliJ IDEA 2017.3.5\bin" -Dfile.encoding=UTF-8 -classpath "C:\Users\newsoft\AppData\Roaming\JetBrains\IntelliJ IDEA 2017.3.5\lib\idea_rt.jar;C:\Users\newsoft\AppData\Roaming\JetBrains\IntelliJ IDEA 2017.3.5\plugins\junit\lib\junit-rt.jar;C:\Users\newsoft\AppData\Roaming\JetBrains\IntelliJ IDEA 2017.3.5\plugins\junit\lib\junit5-rt.jar;D:\download\lib\mavenTollTransfer\mic-repository\org\junit\platform\junit-platform-launcher\1.5.2\junit-platform-launcher-1.5.2.jar;D:\download\lib\mavenTollTransfer\mic-repository\org\apiguardian\apiguardian-api\1.1.0\apiguardian-api-1.1.0.jar;D:\download\lib\mavenTollTransfer\mic-repository\org\junit\platform\junit-platform-engine\1.5.2\junit-platform-engine-1.5.2.jar;D:\download\lib\mavenTollTransfer\mic-repository\org\opentest4j\opentest4j\1.2.0\opentest4j-1.2.0.jar;D:\download\lib\mavenTollTransfer\mic-repository\org\junit\platform\junit-platform-commons\1.5.2\junit-platform-commons-1.5.2.jar;D:\download\lib\mavenTollTransfer\mic-repository\org\junit\jupiter\junit-jupiter-engine\5.5.2\junit-jupiter-engine-5.5.2.jar;D:\download\lib\mavenTollTransfer\mic-repository\org\junit\jupiter\junit-jupiter-api\5.5.2\junit-jupiter-api-5.5.2.jar;D:\download\lib\mavenTollTransfer\mic-repository\org\junit\vintage\junit-vintage-engine\5.5.2\junit-vintage-engine-5.5.2.jar;D:\download\lib\mavenTollTransfer\mic-repository\junit\junit\4.12\junit-4.12.jar;D:\download\lib\mavenTollTransfer\mic-repository\org\hamcrest\hamcrest-core\1.3\hamcrest-core-1.3.jar;C:\Program Files\Java\jdk1.8.0_25\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_25\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.8.0_25\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.8.0_25\jre\lib\ext\cldrdata.jar;C:\Program Files\Java\jdk1.8.0_25\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.8.0_25\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.8.0_25\jre\lib\ext\jfxrt.jar;C:\Program Files\Java\jdk1.8.0_25\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.8.0_25\jre\lib\ext\nashorn.jar;C:\Program Files\Java\jdk1.8.0_25\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.8.0_25\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.8.0_25\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.8.0_25\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.8.0_25\jre\lib\ext\zipfs.jar;C:\Program Files\Java\jdk1.8.0_25\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.8.0_25\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_25\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_25\jre\lib\jfxswt.jar;C:\Program Files\Java\jdk1.8.0_25\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_25\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.8.0_25\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.8.0_25\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_25\jre\lib\rt.jar;D:\ideaworkspace\ProjectStudy\mybatis-02\target\classes;D:\download\lib\mavenTollTransfer\mic-repository\org\hamcrest\hamcrest-core\2.1\hamcrest-core-2.1.jar;D:\download\lib\mavenTollTransfer\mic-repository\org\hamcrest\hamcrest\2.1\hamcrest-2.1.jar;D:\download\lib\mavenTollTransfer\mic-repository\org\mybatis\mybatis\3.4.5\mybatis-3.4.5.jar;D:\download\lib\mavenTollTransfer\mic-repository\mysql\mysql-connector-java\5.1.44\mysql-connector-java-5.1.44.jar;D:\download\lib\mavenTollTransfer\mic-repository\log4j\log4j\1.2.17\log4j-1.2.17.jar;D:\download\lib\mavenTollTransfer\mic-repository\org\slf4j\slf4j-log4j12\1.7.12\slf4j-log4j12-1.7.12.jar;D:\download\lib\mavenTollTransfer\mic-repository\org\slf4j\slf4j-api\1.7.30\slf4j-api-1.7.30.jar;D:\download\lib\mavenTollTransfer\mic-repository\cglib\cglib\3.3.0\cglib-3.3.0.jar;D:\download\lib\mavenTollTransfer\mic-repository\org\ow2\asm\asm\7.1\asm-7.1.jar;D:\download\lib\mavenTollTransfer\mic-repository\net\logstash\logback\logstash-logback-encoder\5.3\logstash-logback-encoder-5.3.jar;D:\download\lib\mavenTollTransfer\mic-repository\com\fasterxml\jackson\core\jackson-databind\2.10.3\jackson-databind-2.10.3.jar;D:\download\lib\mavenTollTransfer\mic-repository\com\fasterxml\jackson\core\jackson-annotations\2.10.3\jackson-annotations-2.10.3.jar;D:\download\lib\mavenTollTransfer\mic-repository\com\fasterxml\jackson\core\jackson-core\2.10.3\jackson-core-2.10.3.jar" com.intellij.rt.execution.junit.JUnitStarter -ideVersion5 -junit5 com.mybatis03.test.testTeacher01,queryWithLazyGroupAndTeachers
[lsjSso]2021-10-20 09:17:47,649-org.apache.ibatis.logging.LogFactory-0 [main]DEBUGorg.apache.ibatis.logging.LogFactory-Logging initialized using 'class org.apache.ibatis.logging.slf4j.Slf4jImpl' adapter.
[lsjSso]2021-10-20 09:17:47,753-org.apache.ibatis.logging.LogFactory-104 [main]DEBUGorg.apache.ibatis.logging.LogFactory-Logging initialized using 'class org.apache.ibatis.logging.log4j.Log4jImpl' adapter.
[lsjSso]2021-10-20 09:17:47,781-org.apache.ibatis.datasource.pooled.PooledDataSource-132 [main]DEBUGorg.apache.ibatis.datasource.pooled.PooledDataSource-PooledDataSource forcefully closed/removed all connections.
[lsjSso]2021-10-20 09:17:47,781-org.apache.ibatis.datasource.pooled.PooledDataSource-132 [main]DEBUGorg.apache.ibatis.datasource.pooled.PooledDataSource-PooledDataSource forcefully closed/removed all connections.
[lsjSso]2021-10-20 09:17:47,781-org.apache.ibatis.datasource.pooled.PooledDataSource-132 [main]DEBUGorg.apache.ibatis.datasource.pooled.PooledDataSource-PooledDataSource forcefully closed/removed all connections.
[lsjSso]2021-10-20 09:17:47,782-org.apache.ibatis.datasource.pooled.PooledDataSource-133 [main]DEBUGorg.apache.ibatis.datasource.pooled.PooledDataSource-PooledDataSource forcefully closed/removed all connections.
[lsjSso]2021-10-20 09:17:47,953-org.apache.ibatis.transaction.jdbc.JdbcTransaction-304 [main]DEBUGorg.apache.ibatis.transaction.jdbc.JdbcTransaction-Opening JDBC Connection
[lsjSso]2021-10-20 09:17:48,174-org.apache.ibatis.datasource.pooled.PooledDataSource-525 [main]DEBUGorg.apache.ibatis.datasource.pooled.PooledDataSource-Created connection 16503286.
[lsjSso]2021-10-20 09:17:48,174-org.apache.ibatis.transaction.jdbc.JdbcTransaction-525 [main]DEBUGorg.apache.ibatis.transaction.jdbc.JdbcTransaction-Setting autocommit to false on JDBC Connection [com.mysql.jdbc.JDBC4Connection@fbd1f6]
[lsjSso]2021-10-20 09:17:48,177-com.mybatis03.mapper.TeacherMapper.queryWithLazyGroupAndTeachers-528 [main]DEBUGcom.mybatis03.mapper.TeacherMapper.queryWithLazyGroupAndTeachers-==> Preparing: SELECT g.*,g.groupID AS groupno FROM teachergroup g WHERE g.groupid =?
[lsjSso]2021-10-20 09:17:48,211-com.mybatis03.mapper.TeacherMapper.queryWithLazyGroupAndTeachers-562 [main]DEBUGcom.mybatis03.mapper.TeacherMapper.queryWithLazyGroupAndTeachers-==> Parameters: 1(Integer)
[lsjSso]2021-10-20 09:17:48,257-com.mybatis03.mapper.TeacherMapper.queryWithLazyGroupAndTeachers-608 [main]DEBUGcom.mybatis03.mapper.TeacherMapper.queryWithLazyGroupAndTeachers-<== Total: 1
教研组编号:1,教研组名称:chinese
[lsjSso]2021-10-20 09:17:48,258-com.mybatis03.mapper.teacherGroupToTeacherMapper.queryGroupToTeacherByNO-609 [main]DEBUGcom.mybatis03.mapper.teacherGroupToTeacherMapper.queryGroupToTeacherByNO-==> Preparing: SELECT * FROM teacher WHERE groupno = ?
[lsjSso]2021-10-20 09:17:48,258-com.mybatis03.mapper.teacherGroupToTeacherMapper.queryGroupToTeacherByNO-609 [main]DEBUGcom.mybatis03.mapper.teacherGroupToTeacherMapper.queryGroupToTeacherByNO-==> Parameters: 1(Integer)
[lsjSso]2021-10-20 09:17:48,261-com.mybatis03.mapper.teacherGroupToTeacherMapper.queryGroupToTeacherByNO-612 [main]DEBUGcom.mybatis03.mapper.teacherGroupToTeacherMapper.queryGroupToTeacherByNO-<== Total: 2
教师编号:1001,教师名称:sara,教研组编号:1
教师编号:1002,教师名称:sakula,教研组编号:1 Process finished with exit code 0
说明:
Mybatis 一对多延迟加载,并且子查询中与主表字段不对应 (19)的更多相关文章
- 子查询中的NULL问题
子查询返回有单行,多行和null值:适用于单行子查询的比较运算符是=,>,>=,<,<=<>和!=.适用于多行子查询的比较运算符是in,not in,any和any ...
- SQLSERVER 子查询中使用ORDER BY
SQLSERVER如何在子查询中使用ORDER BY 今天在使用公司的一个pager接口的时候,需要传递一个查询的SQL语句,因为我希望他能够在pager对他查询出来的结果排序之前自己先进行排序, 于 ...
- SQLSERVER如何在子查询中使用ORDER BY
今天在使用公司的一个pager接口的时候,需要传递一个查询的SQL语句,因为我希望他能够在pager对他查询出来的结果排序之前自己先进行排序, 于是在这个SQL中添加了ORDER BY,但是得到的结果 ...
- Mysql in子查询中加limit报错
Mysql in子查询中加limit报错 select id from aa where id in ( select id from bb limit 10 ); 改写成 SELECT id FRO ...
- oracle查询包含在子表中的主表数据
Oracle数据库,查询某表中包含在子表中的数据,子表中数据按特定条件来源于该父表,SQL命令如 ) a_table父表,b_table子表,a和b表都有commandId列,a表的commandId ...
- Oracle子查询中any、some、all之间的区别
用some,any和all对子查询中返回的多行结果进行处理. 下面我们来简单介一下这几个关键词的含义. * Some在此表示满足其中一个的意义,是用or串起来的比较从句. * Any也表示满足其中一个 ...
- oracle 子查询中null的问题(in 和 not in)
这里的in后面的句子可以理解为or拼接,简单举例即 in (9566,9839,null)可以等价于mgr=9566 or mgr=9839 or mgr=null, not in (9566,983 ...
- mysql更新子查询中的内容
UPDATE t_finance_certify_copy c SET c.biz_type=2,c.sub_biz_type=18WHERE c.finance_certify_id IN(SELE ...
- mybatis一对多关系的关联查询
问题描述:实现两张表的关联查询 学生表: 班级表: 要实现学生管理信息中有所在班级的名称,即如下图所示 1.对应学生表的pojo类写全班级表中的字段(适用于要连接的表字段较少的情况) sql语句直接在 ...
随机推荐
- 20200713晚 noip14
考场 很紧张,上午考太烂了 开场看到"影魔",想起以前看过(但没做),心态爆炸,咆哮时被 hkh diss 了 T1 一开始想建边跑最长路,每个点在记录一下 \(\min\{a\} ...
- Mysql常用sql语句(4)- distinct 去重数据
测试必备的Mysql常用sql语句系列 https://www.cnblogs.com/poloyy/category/1683347.html 前言 我们使用select进行数据查询时是会返回所有匹 ...
- Linux - last 命令(Mac 电脑)
前言 为啥写这篇? 因为听 grep.sed 教程的时候有这个命令栗子 加上工作中,运维给我排查问题的时候也用到了,感觉挺重要,先了解为敬! 命令作用 显示用户和TTY的最后登录次数 这个是在 Mac ...
- openswan协商流程之(四):main_inI2_outR2()
主模式第四包:main_inI2_outR2 1. 序言 main_inI2_outR2()函数是ISAKMP协商过程中第四包的核心处理函数的入口,同时在此处理流程中已经获取到足够的隧道信息,可以生成 ...
- JAVA反序列化漏洞基础原理
JAVA反序列化漏洞基础原理 1.1 什么是序列化和反序列化? Java序列化是指把Java对象转换为字节序列的过程: Java反序列化是指把字节序列恢复为Java对象的过程: 1.2 为什么要序列化 ...
- [第九篇]——Docker 镜像使用之Spring Cloud直播商城 b2b2c电子商务技术总结
Docker 镜像使用 当运行容器时,使用的镜像如果在本地中不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载. 下面我们来学习: 1.管理 ...
- java原码反码补码以及位运算
原码, 反码, 补码的基础概念和计算方法. 对于一个数, 计算机要使用一定的编码方式进行存储. 原码, 反码, 补码是机器存储一个具体数字的编码方式. 1. 原码 原码就是符号位加上真值的绝对值, 即 ...
- MapReduce原理深入理解(一)
1.MapReduce概念 1)MapReduce是一种分布式计算模型,由Google提出,主要用于搜索领域,解决海量数据的计算问题. 2)MapReduce是分布式运行的,由两个阶段组成:Map和R ...
- Jmeter系列(21)- Jmeter录制手机App请求
前置知识点 Jmeter HTTP代理服务器每次点击启动录制,会往Jmeter的bin目录下生成相关证书,证书有效期是7天 录制前需要先看下证书过期没有,过期了,删除bin目录下的证书,即Apache ...
- Windows系统如何找到占用端口的进程并杀掉
1.先建立用户环境变量:C\WINDOWS/system32 2.输入:cmd,打开命令控制台,然后输入ipconfig 3.再输入:netstat -ano(可以找到所有的进程连接端口及对应PID) ...