MyBatis学习笔记之二
目录和知识汇总
- 1.分步查询
- 2.查询的延迟加载
- 3.查询部门的时候将部门对应的所有的员工信息也查询出来
- 4.定义使用分布查询完成
- 5.需求:封装Employee
- 6.动态sql
- 7.OGNL
- 8.使用trim进行查询
- 9.choose标签
- 10.set标签
- 11.foreach标签的使用(批量查询)
- 12.foreach标签的使用(批量保存)
- 13.Oracle数据库批量保存
- 14.mybatis中两个重要的内置参数
- 15.绑定变量
- 16.sql标签
- 17.MyBatis的缓存机制
- 18.和缓存有关的设置/属性:
- 19.缓存工作原理示意图
- 20.第三方缓存整合
- 21.第三方整合结构图
- 22.MyBatis Generator逆向工程
- 23.逆向工程使用MyBatis3的测试结果
- 24. MyBatis工作原理
- 25.
- 25.默认情况下,MyBatis 允许使用插件来拦截的方法调用包括:
1.分步查询
接口1中的代码如下:
public interface DepartmentMapper {public Department getDeptById(Integer id);
}
1.对应的sql中的文件如下
<?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.atguigu.mybatis.dao.DepartmentMapper"><select id="getDeptById" resultType="com.atguigu.mybatis.bean.Department">select id,dept_name departmenName from tb1_dept where id=#{id}</select>
</mapper>
接口2中的代码如下:
public interface EmployeeMapperPlus {public Employee getEmpByIdStep(Integer id);
}
接口2对应的sql代码如下
<resultMap type="com.atguigu.mybatis.bean.Employee" id="MyEmpByStep"><id column="id" property="id"/><result column="last_name" property="lastName"/><result column="email" property="email"/><result column="gender" property="gender"/><association property="dept" select="com.atguigu.mybatis.dao.DepartmentMapper.getDeptById"column="d_id"></association></resultMap><select id="getEmpByIdStep" resultMap="MyEmpByStep">select * from tb1_employee where id=#{id}</select>
2.查询的延迟加载
在配置文件中配置如下两个配置
<settings><!--<setting name="mapUnderscoreToCamelCase" value="true"/>--><!-- 显示的指定每个我们需要更改的配置的值,即使他是默认的,防止版本更新带来的问题 --><setting name="lazyLoadingEnabled" value="true"/><setting name="aggressiveLazyLoading" value="false"/></settings>
测试运行结果如下:
DEBUG 07-03 09:40:50,571 ==> Preparing: select * from tb1_employee where id=? (BaseJdbcLogger.java:145)
DEBUG 07-03 09:40:50,597 ==> Parameters: 1(Integer) (BaseJdbcLogger.java:145)
DEBUG 07-03 09:40:50,657 <== Total: 1 (BaseJdbcLogger.java:145)
jerry
3.查询部门的时候将部门对应的所有的员工信息也查询出来
类代码如下
public class Department {private Integer id;//省略get和set方法private String departmenName;private List<Employee> emps;}
接口代码如下:
public interface DepartmentMapper {public Department getDeptById(Integer id);public Department getDeptByIdPlus(Integer id);
}
sql配置文件如下:
<resultMap type="com.atguigu.mybatis.bean.Department" id="MyDept"><id column="d_id" property="id"/><result column="dept_name" property="departmenName"/><collection property="emps" ofType="com.atguigu.mybatis.bean.Employee"><id column="id" property="id"/><result column="last_name" property="lastName"/><result column="email" property="email"/><result column="gender" property="gender"/></collection></resultMap><select id="getDeptByIdPlus" resultMap="MyDept">SELECT e.*,d.dept_namefrom tb1_dept dLEFT JOIN tb1_employee eon d.id=e.d_idwhere d.id=#{id}</select>
测试代码如下:
@Testpublic void test04() throws Exception{String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);SqlSession openSession=sqlSessionFactory.openSession(); DepartmentMapper mapper=openSession.getMapper(DepartmentMapper.class);Department department=mapper.getDeptByIdPlus(1);System.out.println(department);List<Employee> emps=department.getEmps();for(Employee emp:emps) {System.out.println(emp);}}
4.定义使用分布查询完成
接口1中的代码如下:
public interface EmployeeMapperPlus {public Employee getEmpById(Integer id);public Employee getEmpAndDept(Integer id);public Employee getEmpByIdStep(Integer id);public List<Employee> getEmpsByDeptId(Integer deptId);
}
涉及到的sql查询语句如下
<select id="getEmpsByDeptId" resultType="com.atguigu.mybatis.bean.Employee">select * from tb1_employee where d_id=#{deptId}</select>
接口2中的代码如下:
public interface DepartmentMapper {public Department getDeptById(Integer id);public Department getDeptByIdPlus(Integer id);public Department getDeptByIdStep(Integer id);
}
涉及到的sql查询语句如下
<resultMap type="com.atguigu.mybatis.bean.Department" id="MyDeptStep"><id column="id" property="id"/><result column="dept_name" property="departmenName"/><collection property="emps" select="com.atguigu.mybatis.dao.EmployeeMapperPlus.getEmpsByDeptId"column="id"><!--多列的值传递过去column="{key1=column1,key2=column2}"fecthType="lazy"lazy:延迟加载eager:立即加载--></collection></resultMap><select id="getDeptByIdStep" resultMap="MyDeptStep">select id,dept_name departmenName from tb1_dept whereid=#{id}</select>
5.需求:封装Employee
如果查出的是女生,就把部门信息查询出来,否则不查询;
如果是男生,就把last_name这一列的值赋值为email
sql查詢配置如下
<resultMap type="com.atguigu.mybatis.bean.Employee" id="MyEmpDis"><id column="id" property="id"></id><result column="last_name" property="lastName"></result><result column="email" property="email"></result><result column="gender" property="gender"></result><discriminator javaType="string" column="gender"><case value="0" resultType="com.atguigu.mybatis.bean.Employee"><association property="dept" select="com.atguigu.mybatis.dao.DepartmentMapper.getDeptById"column="d_id"></association></case><case value="1" resultType="com.atguigu.mybatis.bean.Employee"><id column="id" property="id"></id><result column="last_name" property="lastName"></result><result column="last_name" property="email"></result><result column="gender" property="gender"></result></case></discriminator></resultMap><select id="getEmpByIdStep" resultMap="MyEmpDis">select * from tb1_employee where id=#{id}</select>
com.atguigu.mybatis.dao.DepartmentMapper.getDeptById的配置如下<select id="getDeptByIdStep" resultMap="MyDeptStep">select id,dept_name departmenName from tb1_dept whereid=#{id}</select>
測試代碼如下:
@Testpublic void test04() throws Exception{String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);SqlSession openSession=sqlSessionFactory.openSession(); EmployeeMapperPlus mapper=openSession.getMapper(EmployeeMapperPlus.class);Employee employee=mapper.getEmpByIdStep(1);System.out.println(employee);}
6.动态sql
1.if标签
7.OGNL
1.if标签测试
public interface EmployeeMapperDynamicSQL {public List<Employee> getEmpsByConditionIf(Employee employee);
}
sql配置文件
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.atguigu.mybatis.dao.EmployeeMapperDynamicSQL"><select id="getEmpsByConditionIf" resultType="com.atguigu.mybatis.bean.Employee" >select id,last_name lastName,email,gender from tb1_employee<where> <!--只会去掉第一个多出来的and或者or--><if test="id!=null">id=#{id}</if><if test="lastName!=null and lastName!=""">and last_name like #{lastName}</if><if test="email!=null and email.trim()!=""">and email=#{email}</if><if test="gender==0 or gender==1">and gender=#{gender}</if></where></select>
</mapper>
8.使用trim进行查询
<select id="getEmpsByConditionTrim" resultType="com.atguigu.mybatis.bean.Employee">select id,last_name lastName,email,gender from tb1_employee<!-- prefix:前缀,给拼串后的整个字符串加一个前缀prefixOverrides:去掉整个字符串前面多余的字符suffix:给拼串后的整个字符串加一个后缀suffixOverrides:去掉整个字符串后面多余的字符--><trim prefix="where" prefixOverrides="" suffix="" suffixOverrides="and"> <if test="id!=null">id=#{id} and</if><if test="lastName!=null and lastName!=""">last_name like #{lastName} and</if><if test="email!=null and email.trim()!=""">email=#{email} and</if><if test="gender==0 or gender==1">gender=#{gender}</if></trim>
</select>
9.choose标签
<select id="getEmpsByConditionChoose" resultType="com.atguigu.mybatis.bean.Employee">select id,last_name lastName,email,gender from tb1_employee<where><choose ><when test="id!=null">id=#{id}</when><when test="lastName!=null">last_name like #{lastName}</when><when test="email!=null">email=#{email}</when><otherwise>gender=0</otherwise></choose></where></select>
10.set标签
<select id="updateEmp">update tb1_employee<set><if test="lastName!=null">last_name=#{lastName},</if><if test="email!=null">email=#{email},</if><if test="gender!=null">gender=#{gender},</if></set> <where>id=#{id}</where></select>
测试代码
@Testpublic void test05() throws Exception{String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);SqlSession openSession=sqlSessionFactory.openSession(); EmployeeMapperDynamicSQL mapper=openSession.getMapper(EmployeeMapperDynamicSQL.class);Employee employee=new Employee(3,"%e%","test1","0");mapper.updateEmp(employee);openSession.commit();openSession.close();}
测试结果为:
DEBUG 07-03 15:40:05,351 ==> Preparing: update tb1_employee SET last_name=?, email=?, gender=? WHERE id=? (BaseJdbcLogger.java:145)
DEBUG 07-03 15:40:05,386 ==> Parameters: %e%(String), test1(String), 0(String), 3(Integer) (BaseJdbcLogger.java:145)
11.foreach标签的使用(批量查询)
接口中申明的函数
public List<Employee> getEmpsByConditionForeach(@Param("ids") List<Integer> ids);
sql中写的语句
<select id="getEmpsByConditionForeach" resultType="com.atguigu.mybatis.bean.Employee">select * from tb1_employee where id in<!-- collection:指定要遍历的集合list类型的参数会特殊处理封装在map中,map的key就叫listitem:将当前遍历出的元素赋值给指定的变量index:索引。遍历list的时候是index的索引。遍历map的时候index表示的就是map的key,item就是map的值--><foreach collection="ids" item="item_id" separator="," open="(" close=")">#{item_id}</foreach></select>
java测试代码如下
@Testpublic void test05() throws Exception{String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);SqlSession openSession=sqlSessionFactory.openSession(); EmployeeMapperDynamicSQL mapper=openSession.getMapper(EmployeeMapperDynamicSQL.class);List<Employee> employees=mapper.getEmpsByConditionForeach(Arrays.asList(1,2,3));for(Employee employee:employees) {System.out.println(employee);}openSession.close();}
运行结果如下:
DEBUG 07-03 19:51:47,535 ==> Preparing: select * from tb1_employee where id in ( ? , ? , ? ) (BaseJdbcLogger.java:145)
DEBUG 07-03 19:51:47,582 ==> Parameters: 1(Integer), 2(Integer), 3(Integer) (BaseJdbcLogger.java:145)
DEBUG 07-03 19:51:47,700 <== Total: 2 (BaseJdbcLogger.java:145)
Employee [id=1, lastName=jerry, email=jerry@atguigu.com, gender=0, dept=null]
Employee [id=3, lastName=%e%, email=test1, gender=0, dept=null]
12.foreach标签的使用(批量保存)
接口代码如下:
public void addEmps(@Param("emps")List<Employee> emps);
sql配置文件如下:
<insert id="addEmps">insert into tb1_employee(last_name,email,gender,d_id)values<foreach collection="emps" item="emp" separator=",">(#{emp.lastName},#{emp.email},#{emp.gender},#{emp.dept.id})</foreach></insert>
测试代码如下:
@Test
public void test05() throws Exception{String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);SqlSession openSession=sqlSessionFactory.openSession(); EmployeeMapperDynamicSQL mapper=openSession.getMapper(EmployeeMapperDynamicSQL.class);List<Employee> emps=new ArrayList<>();Department dept=new Department(1);emps.add(new Employee(null,"smith","smith","1",dept));emps.add(new Employee(null,"smith2","smith","1",dept));emps.add(new Employee(null,"smith3","smith","0",dept));emps.add(new Employee(null,"smith4","smith","0",dept));mapper.addEmps(emps);openSession.commit();openSession.close();
}
第二种方式
数据库连接配置文件中做如下的配置
jdbc.url:jdbc:mysql://localhost:3306/mybaties?serverTimezone=GMT&&allowMultiQueries=TRUE
sql语句如下:
<insert id="addEmps"><foreach collection="emps" item="emp" separator=";">insert into tb1_employee(last_name,email,gender,d_id)values(#{emp.lastName},#{emp.email},#{emp.gender},#{emp.dept.id})</foreach>
</insert>
13.Oracle数据库批量保存
实现代码:
14.mybatis中两个重要的内置参数
两个内置参数:
不只是方法传递过来的参数可以用来被判断取值
mybaties默认还有两个内置参数:
1._parameter:代表整个参数
单个参数:_parameter就是这个参数
多个参数:参数会被封装为一个map:_parameter就是代表这个map
2._databaseId:如果配置了databaseIdProvider标签
_databaseId就是代表当前数据库的别名oracle
测试接口函数如下:
public List<Employee> getEmpsTestInnerParameter(Employee employee);
sql语句如下:
<select id="getEmpsTestInnerParameter" resultType="com.atguigu.mybatis.bean.Employee"><if test="_databaseId=='mysql'">select * from tb1_employee<if test="_parameter!=null">where last_name=#{_parameter.lastName}</if></if><if test="_databaseId=='oracle'">select * from employees</if></select>
15.绑定变量
<select id="getEmpsTestInnerParameter" resultType="com.atguigu.mybatis.bean.Employee"><bind name="_lastName" value="'%'+lastName+'%'"/><if test="_databaseId=='mysql'">select * from tb1_employee<if test="_parameter!=null">where last_name like #{_lastName}</if></if><if test="_databaseId=='oracle'">select * from employees</if></select>
16.sql标签
抽取可重用的sql标签
<sql id="column">id,last_name lastName,email,gender,${testColumn}
</sql>
引用的sql语句如下:
<select id="getEmpsByConditionIf" resultType="com.atguigu.mybatis.bean.Employee" >select <include refid="column"><property name="testColumn" value="abc"></property></include> from tb1_employeewhere 1=1 <if test="id!=null">and id=#{id}</if><if test="lastName!=null and lastName!=""">and last_name like #{lastName}</if><if test="email!=null and email.trim()!=""">and email=#{email}</if><if test="gender==0 or gender==1">and gender=#{gender}</if></select>
作用:
1.sql抽取:经常将要查询的列名,或者插入用的列名抽取出来方便引用
2.include来引用已经抽取的sql语句
3.include还可以自定义一些property,sql标签内部就能使用自定义的属性
取值方式为${prop},不能使用#{}
17.MyBatis的缓存机制
两级缓存
一级缓存:本地缓存,与数据库同一次会话查询到的数据会放在本地缓存中,以后如果需要获取相同的数据,直接从数据库中拿,没必要去查询数据库;属于sqlSession级别的缓存,一级缓存是一直开启的。
一级缓存失效的情况(没有使用到当前一级缓存的情况,需要再向数据库发出查询)
1.sqlSession不同。
2.sqlSession相同,查询条件不同。(当前一级缓存中还没有这个数据)。
3.sqlSession相同,两次查询之间执行了增删改操作(这次增删改可能对当前数据有影响)
4.sqlSession相同,手动清楚了一级缓存(缓存清空)
openSessison.clearCache();
测试样例
sql配置如下:
<select id="getEmpById" resultType="employee" databaseId="mysql">select * from tb1_employee where id = #{id}</select>
测试代码如下:
@Testpublic void test02() throws Exception{String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);SqlSession openSession=sqlSessionFactory.openSession(); try {EmployeeMapper mapper=openSession.getMapper(EmployeeMapper.class);Employee emp01=mapper.getEmpById(1);System.out.println(emp01);Employee emp02=mapper.getEmpById(1);System.out.println(emp02);System.out.println(emp01==emp02);}finally {openSession.close();}}
测试结果如下:
DEBUG 07-06 09:59:39,813 ==> Preparing: select * from tb1_employee where id = ? (BaseJdbcLogger.java:145)
DEBUG 07-06 09:59:39,861 ==> Parameters: 1(Integer) (BaseJdbcLogger.java:145)
DEBUG 07-06 09:59:39,914 <== Total: 1 (BaseJdbcLogger.java:145)
Employee [id=1, lastName=jerry, email=jerry@atguigu.com, gender=0, dept=null]
Employee [id=1, lastName=jerry, email=jerry@atguigu.com, gender=0, dept=null]
true
二级缓存:全局缓存。基于namespace级别的缓存,一个namespace对应一个二级缓存。
工作机制:
1.一个会话,查询一条数据,这个数据就会被放在当前会话的一级缓存中;
2.如果会话关闭,一级缓存中的数据会被保存到二级缓存中,新的会话查询信息 ,就可以参照二级缓存中的内容;
3.不同的namespace查出的数据会放在自己对应的缓存中(map)。查出的数据都会被默认先放到一级缓存中,只有会话提交或者关闭以后,一级缓存中的数据才会转到二级缓存中。
测试样例:
在配置文件中进行配置
<settings><setting name="chacheEnable" value="true"/></settings>
去mapper.xml中配置使用二级缓存
<cache eviction="FIFO" flushInterval="60000" readOnly="false" size="1024" />
属性说明:
eviction=“FIFO”:缓存回收策略:
• LRU – 最近最少使用的:移除最长时间不被使用的对象。
• FIFO – 先进先出:按对象进入缓存的顺序来移除它们。
• SOFT – 软引用:移除基于垃圾回收器状态和软引用规则的对象。
• WEAK – 弱引用:更积极地移除基于垃圾收集器状态和弱引用规则的对象。
• 默认的是 LRU。
flushInterval:刷新多长时间清空一次
• 默认情况是不设置,也就是没有刷新间隔,缓存仅仅调用语句时刷新
size:引用数目,正整数
• 代表缓存最多可以存储多少个对象,太大容易导致内存溢出
readOnly:只读,true/false
• true:只读缓存;会给所有调用者返回缓存对象的相同实例。因此这些对象不能被修改。这提供了很重要的性能优势。
• false:读写缓存;会返回缓存对象的拷贝(通过序列化)。这会慢一些,但是安全,因此默认是 false。
type="";指定自定义缓存的全类名;实现Cache接口即可。
POJO需要实现序列化接口
public class Employee implements Serializable{private static final long serialVersionUID = 857579980893303333L;private Integer id;private String lastName;private String email;private String gender;private Department dept;//方法省略
}
public class Department implements Serializable{private static final long serialVersionUID = 8575799808933023456L;private Integer id;private String departmenName;private List<Employee> emps;
}//方法省略
测试方法如下:
@Testpublic void test03() throws Exception{String resource = "mybatis-config.xml";InputStream inputStream = Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);SqlSession openSession=sqlSessionFactory.openSession(); SqlSession openSession2=sqlSessionFactory.openSession(); try {EmployeeMapper mapper=openSession.getMapper(EmployeeMapper.class);EmployeeMapper mapper2=openSession2.getMapper(EmployeeMapper.class);Employee emp01=mapper.getEmpById(1);System.out.println(emp01);openSession.close();Employee emp02=mapper2.getEmpById(1);System.out.println(emp02);openSession2.close();}finally {openSession.close();}}
运行结果如下:
DEBUG 07-06 12:12:40,674 Cache Hit Ratio [com.atguigu.mybatis.dao.EmployeeMapper]: 0.0 (LoggingCache.java:62)
DEBUG 07-06 12:12:40,685 ==> Preparing: select * from tb1_employee where id = ? (BaseJdbcLogger.java:145)
DEBUG 07-06 12:12:40,730 ==> Parameters: 1(Integer) (BaseJdbcLogger.java:145)
DEBUG 07-06 12:12:40,786 <== Total: 1 (BaseJdbcLogger.java:145)
Employee [id=1, lastName=jerry, email=jerry@atguigu.com, gender=0, dept=null]
DEBUG 07-06 12:12:40,838 Cache Hit Ratio [com.atguigu.mybatis.dao.EmployeeMapper]: 0.5 (LoggingCache.java:62)
Employee [id=1, lastName=jerry, email=jerry@atguigu.com, gender=0, dept=null]
18.和缓存有关的设置/属性:
1)cacheEbabled=true:false;关闭缓存(关闭二级缓存,一级缓存一直可用的)
2)每个select标签都有useCash=“true”
false:不使用缓存(一级缓存依然使用,二级缓存不使用)
3)每个增删改标签的:flushCash=“true”
增删改执行完成后就会清楚缓存
测试:flushCache=“true”,一级和二级缓存就清空了。
4)sqlSession.clearCache();只是清除当前session的一级缓存。
5)localCacheScope:本地缓存作用域(一级缓存session);当前会话的所有数据保存在会话缓存中。
statement可以禁用一级缓存。
19.缓存工作原理示意图
20.第三方缓存整合
1)导入第三方缓存包即可;
2)导入与第三方缓存整合的适配包
3)mapper.xml中使用自定义缓存
21.第三方整合结构图
22.MyBatis Generator逆向工程
1.导入逆向包
2.配置文件
大的主目录下配置文件mbg.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfigurationPUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration><!-- targetRuntime="MyBatis3Simple":生成简单版的CRUDMyBatis3:豪华版--><context id="DB2Tables" targetRuntime="MyBatis3Simple"><!-- jdbcConnection:指定如何连接到目标数据库 --><jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"connectionURL="jdbc:mysql://localhost:3306/mybaties?serverTimezone=GMT"userId="root"password="stoneSml@123"></jdbcConnection><javaTypeResolver ><property name="forceBigDecimals" value="false" /></javaTypeResolver><!-- javaModelGenerator:指定javaBean的生成策略 targetPackage="test.model":目标包名targetProject="\MBGTestProject\src":目标工程--><javaModelGenerator targetPackage="com.atguigu.mybatis.bean" targetProject=".\src"><property name="enableSubPackages" value="true" /><property name="trimStrings" value="true" /></javaModelGenerator><!-- sqlMapGenerator:sql映射生成策略: --><sqlMapGenerator targetPackage="com.atguigu.mybatis.dao" targetProject=".\conf"><property name="enableSubPackages" value="true" /></sqlMapGenerator><!-- javaClientGenerator:指定mapper接口所在的位置 --><javaClientGenerator type="XMLMAPPER" targetPackage="com.atguigu.mybatis.dao" targetProject=".\src"><property name="enableSubPackages" value="true" /></javaClientGenerator><!-- 指定要逆向分析哪些表:根据表要创建javaBean --><table tableName="tb1_dept" domainObjectName="Department"></table><table tableName="tb1_employee" domainObjectName="Employee"></table></context>
</generatorConfiguration>
23.逆向工程使用MyBatis3的测试结果
@Testpublic void testMyBatis3() throws IOException{SqlSessionFactory sqlSessionFactory = getSqlSessionFactory();SqlSession openSession = sqlSessionFactory.openSession();try{EmployeeMapper mapper = openSession.getMapper(EmployeeMapper.class);//xxxExample就是封装查询条件的//1、查询所有//List<Employee> emps = mapper.selectByExample(null);//2、查询员工名字中有e字母的,和员工性别是1的//封装员工查询条件的exampleEmployeeExample example = new EmployeeExample();//创建一个Criteria,这个Criteria就是拼装查询条件//select id, last_name, email, gender, d_id from tbl_employee //WHERE ( last_name like ? and gender = ? ) or email like "%e%"Criteria criteria = example.createCriteria();criteria.andLastNameLike("%e%");criteria.andGenderEqualTo("1");Criteria criteria2 = example.createCriteria();criteria2.andEmailLike("%e%");example.or(criteria2);List<Employee> list = mapper.selectByExample(example);for (Employee employee : list) {System.out.println(employee.getId());}
}finally{openSession.close();}}
24. MyBatis工作原理
1.
25.
默认情况下,MyBatis 允许使用插件来拦截的方法调用包括:
• Executor (update, query, flushStatements, commit, rollback,
getTransaction, close, isClosed)
• ParameterHandler (getParameterObject, setParameters)
• ResultSetHandler (handleResultSets, handleOutputParameters)
• StatementHandler (prepare, parameterize, batch, update, query)
2.
3
4.
25.默认情况下,MyBatis 允许使用插件来拦截的方法调用包括:
• Executor (update, query, flushStatements, commit, rollback,
getTransaction, close, isClosed)
• ParameterHandler (getParameterObject, setParameters)
• ResultSetHandler (handleResultSets, handleOutputParameters)
• StatementHandler (prepare, parameterize, batch, update, query)
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- ps之如何将做好的成品转换成图片导出
打开PS,在菜单栏上找到“窗口” -> “动作”在动作窗口选择新建组,重新命名该组,点击确定 在动作窗口选择新建动作,重新命名该动作,点击记录 右下角出现红色的按钮,说明已经开始了记录 按“Ctrl+Alt+Shift+S”另存为Web所用格式,按照你平时保存图片的方式操作就行…...
2024/5/5 9:38:45 - eureka-client demo
创建maven工程添加对应依赖 <!--eureka client--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-netflix-eureka-client</artifactId></dependency><dependency><groupId>…...
2024/5/5 5:58:16 - Python中time模块使用手册
time模块这个模块提供各种与时间相关的函数。相关功能,可以参见datetime和calendat模块。 此模块并非所有平台提供所有功能,因平台而异以下是对一些术语和惯例的解释初始时间因平台而异。对于Unix平台,初始时间是1970,01,01,00:00:00(UTC)。查看每个操作平台的初始时间可以…...
2024/4/14 13:18:53 - mook淘宝比价
```mermaid ![graph TD; A-->B; B-->C;](https://img-blog.csdnimg.cn/20200712195117145.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80NTc3NDA1OQ==,size_16,color_FFFF![在这里插入图片描述…...
2024/4/17 23:14:22 - 第一章:SpringBoot 入门以及基础知识
一:springboot 微服务开发利器1.1 什么是微服务,微服务和微服务架构的区别?目前而已,对于微服务业界没有一个统一的标准定义,但是通常而言提倡把一个单一的应用程序划分为一组小的服务,每个小的服务都会运行在自己的进程中,服务之间通过轻量级的通信机制(http的rest api)…...
2024/4/27 19:16:08 - VMware Workstation 和 Device/Credential Guard 不兼容
网上什么打开控制面板+程序+关闭啥的都不管用最根本的方法是关闭win内核安全那个,关闭就行了,还有注意最好用win专业版本,具体家庭转专业很容易网上随便找个密匙就行。...
2024/5/4 1:39:45 - framework not found Pods______
xcode 报错framework not found Pods______解决办法:修改项目名称,不要包含中文名...
2024/4/19 20:16:09 - Spring源码分析十三:事务实现① - AutoProxyRegistrar
文章目录一、前言二、@EnableTransactionManagement三、TransactionManagementConfigurationSelector四、AutoProxyRegistrar1. AopConfigUtils.registerAutoProxyCreatorIfNecessary(registry)2. InfrastructureAdvisorAutoProxyCreator3. 事务中的 findCandidateAdvisors 方法…...
2024/4/15 5:39:14 - 数组中的和累加是否等于aim (python)
给你一个数组arr,和一个整数aim。如果可以任意选择arr中的 数字,能不能累加得到aim,返回true或者false 思路:每个数字可以选择选或者不选,f(0,0)是起始位置,f(1,0)表示当前是第一个位置,但是第0个数我没选 def dfs(arra,i,sum_,target):if i==len(arra):return su…...
2024/4/20 16:54:59 - 计算机存储知识科普
——计算机,我的理解,就是一种用于数据(信息)处理的机器,它的功能实现过程完全可以概括为:数据(信息)输入,数据(信息)处理,数据(信息)输出。 数据(信息)需要存储。那数据是怎么存储的?对于我们而言,所谓的数据的外在表现形式有文字,图像,声音等等。但计算机…...
2024/4/20 8:47:59 - Python 画分布图
1.使用seaborn包import seaborn as sns sns.set() # 设置画图空间为 Seaborn 默认风格。 # 自己导入data sns.distplot(data, norm_hist=True, hist=True, kde=False, color=r,hist_kws={"alpha": 1.0, "linewidth": 1.5}, label=data_label)sns.displo…...
2024/4/14 13:19:13 - 微服务启动报Cannot execute request on any known server 的几种解决办法
微服务:发现(eureka)采坑记录: 报Cannot execute request on any known server 这个错:连接Eureka服务端地址不对。 有以下几种处理方式。 一、更改.yml文件或者.properties文件配置即可: #下划线+下划线后面的小写字母等同于去掉下划线大写下划线后面的字母(驼峰原则)…...
2024/4/22 9:12:40 - python笔记」」」 “e+1,e+2”的表达
if 1.23e+2==123:print(True)#>>>True 其实数据输出的时候,看到类似下图的数据你要知道,其实3.70000000e+1其实就是37;1.23e+2其实就是123。 OVER!...
2024/4/9 13:37:10 - C#课程设计----------C#酒店管理系统
1.酒店管理系统概要c#实现的酒店管理系统,里面包含了数据库文件,简易酒店管理系统源码 ,采用WinFrom程序设计开发的酒店管理系统; 应用到标准的三层技术,多个视图工具控件;功能介绍 用户可根据自己的需求入住登记不同类型的房间,同时登记个人基本信息,管理员可通过对不…...
2024/4/22 0:55:51 - 尚硅谷 JavaScript中编码问题
1、 在script标签中用法在字符串中使用转义字符输入Unicode编码* \u四位编码console.log("\u1C00");document.write("\u1120");2、在body标签中用法 在网页中使用Unicode编码 &#编码;这里的编码需要的是10进制编码 可以利用电脑的科学计算器进行转化 …...
2024/4/20 7:03:43 - 命令行传参
命令行传参(扩展) main方法也是可以传递参数的 public static void main(String[] args) {for (int i = 0; i < args.length; i++) {System.out.println("args[" + i + "]" + args[i]);}}运行然后点击Terminal窗口通过命令行 给args[]传参 E:\学习\Java…...
2024/5/2 11:23:41 - 01. 我为什么要写这个专栏---序
回想三年前,我还刚刚高考结束,因为高考分很低(刚过一本线20来分),被学校调剂到了新开的嵌入式方向的专业,当时的我对于计算机的了解仅仅停留在打游戏上,完完全全的就像一个小白。而且,在专业学习近两年后,发现自zhi己对嵌入式编程实在提不起多大的兴趣,刚好大二下选了门…...
2024/4/20 10:18:26 - 启动mac版docker自带的k8s
最近准备好好学习下k8s,为了图方便,直接使用docker集成的k8s,但是网上找了一些教程但都没能一次性成功,只好自己从头跑一遍,顺手写个教程可以方便有类似需求的同学参考。话不多说,直接上步骤。1.下载docker直接去官网下载即可。由于docker官网需要fq,我使用了阿里云的镜…...
2024/4/20 14:23:52 - 时序约束搜集整理
搜了几个相关博文,选有用的截取了些,侵删。http://xilinx.eetrend.com/content/2019/100046350.htmlVivado约束技巧——XDC时钟约束1.XDC的时钟约束XDC的基本语法可以分为时钟约束、I/O约束以及时序例外约束三大类。端口进来的主时钟以及GT的输出RXCLK/TX CLK都必须由用户使用…...
2024/4/27 3:47:46 - 数据库建表
约束条件:限制表中的数据,保证添加到数据表中的数据准确和可靠性!凡是不符合约束的数据,插入时就会失败! 约束条件在创建表时可以使用, 也可以修改表的时候添加约束条件 创建表 表中字段 不是单引号,是1旁边的 飘 CREATE TABLE `acl_permission` (`id` char(19) NOT NULL…...
2024/4/14 13:19:59
最新文章
- 【ARM Cortex-M3指南】3:Cortex-M3基础
文章目录 三、Cortex-M3基础3.1 寄存器3.1.1 通用目的寄存器 R0~R73.1.2 通用目的寄存器 R8~R123.1.3 栈指针 R133.1.4 链接寄存器 R143.1.5 程序计数器 R15 3.2 特殊寄存器3.2.1 程序状态寄存器3.2.2 PRIMASK、FAULTMASK和BASEPRI寄存器3.2.3 控制寄存器 3.3 操作模式3.4 异常…...
2024/5/5 15:50:13 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/3/20 10:50:27 - 巨控科技新品发布:全方位升级,引领智能控制新纪元
标签: #巨控科技 #智能控制 #新品发布 #GRM560 #OPC560 #NET400 在智能控制领域,巨控科技始终以其前沿技术和创新产品引领着市场的潮流。近日,巨控科技再次以其行业领先的研发实力,推出了三大系列的新产品,旨在为各行各业提供更…...
2024/5/5 9:14:44 - DM数据库状态
DM 数据库包含以下几种状态: 配置状态(MOUNT): 不允许访问数据库对象,只能进行控制文件维护、归档配置、数据库模式修改等操作;打开状态(OPEN): 不能进行控制文件维护、…...
2024/5/3 0:03:52 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/5/4 23:54:56 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/5/4 23:54:56 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...
2024/5/4 23:54:56 - 【原油贵金属早评】库存继续增加,油价收跌
原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...
2024/5/4 23:55:17 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
2024/5/4 23:54:56 - 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响
原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...
2024/5/4 23:55:05 - 【外汇早评】美欲与伊朗重谈协议
原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...
2024/5/4 23:54:56 - 【原油贵金属早评】波动率飙升,市场情绪动荡
原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...
2024/5/4 23:55:16 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/5/4 23:54:56 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/5/4 18:20:48 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/5/4 23:54:56 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/5/4 23:55:17 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/5/4 23:55:06 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/5/4 23:54:56 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/5/4 23:55:06 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/5/5 8:13:33 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/5/4 23:55:16 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/5/4 23:54:58 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/5/4 23:55:01 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...
2024/5/4 23:54:56 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...
2022/11/19 21:17:16 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在iPhone上关闭“请勿打扰”
Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...
2022/11/19 21:16:57