Mybatis复习2——B站

【老生谈算法】可视化通道流中瞬时涡量场的算法实现与MATLAB源码分析——瞬时涡量场 本文旨在探讨可视化通道流中瞬时涡量场的方法,并通过MATLAB编程实现这一过程。涡量场作为描述流体旋涡强度和方向的重要物理量,对于理解复杂流体运动具有重要意义。本文首先介绍了涡量场的基本概念,随后详细阐述了从测量数据收集到涡量场可视化的完整流程,并给出了相应的MATLAB源码。通过实际运行该源码,我们展示了涡量场的可视化结果,并讨论了其在流动结构识别和动力学行为理解中的应用。关键词: 涡量场;流体运动;MATLAB;可视化;PIV一、引言。 阅读详情

8 分页

SQL分页查询:
Limit start,length:查询[start,start+length),下标从0开始
Limit end:从查询[0,n)

正常写就好了

有个古老的不再使用的:Rowbounds功能,不建议使用

8.1 分页插件

Mybatis PageHelper分页插件

9 注解开发

9.1 面向接口编程

最主要的原因:解耦

定义与实现的分离

9.2 注解开发(了解,项目不允许使用)

简单的sql可以使用,复杂的sql则力不从心了,建议使用xml配置
使用方法:在mapper.java接口中

@Select("select * from user")
public List<User> findAll();

然后在mybatis核心配置文件中绑定接口,使用class方式而不是resource即可

如果是多个参数,需要加@Param参数,该参数值需要保证和#{}中一致(这里有待测试)
基本类型或者String需要加,引用类型不需要,只有一个基本类型可以忽略

@Select("select * from user where id=#{id} and name=#{name}")
User getUserByIdAndName(@Param("id") int id,@Param("name") String name);

10 Mybatis执行流程

  1. Resources获取全局配置文件
  2. 实例化SqlSessionFactoryBuilder构造器
  3. 解析配置文件流XMLConfigBuilder
  4. 生成一个Configuration,包含所有配置信息
  5. SqlSessionFactory实例化
  6. 创建事务管理:transactional
  7. 创建executor执行器
  8. 创建SqlSession
  9. 实现CRUD,然后就在789来回执行
  10. 执行完所有sql,提交事务时查看是否执行成功,不成功则回滚到6之后7之前,成功提交事务
  11. 关闭

11 Lombok

用于简化POJO类编写

@Data注解在类上,会为类的所有属性自动生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法。

使用方法:

  1. idea中安装lombok插件
  2. 项目中导入lombok包
  3. 配置注解

常用注解:@Data,生成全套方法

12 复杂关系查询

复杂类型这里需要重点理解一下,首先一对多和多对一都是相对的,可以互相转化的,观察视角不同罢了。不同的视角可以构建处不同的POJO。

举个例子:学生和老师,在数据库中表设计如下:(不使用物理外键)
在这里插入图片描述
很明显看出来,学生和老师是多对一的关系。老师和学生是一对多的关系。

用Mybatis语言表述就是:【一个学生只能关联到一位老师】【一个老师集合了多个学生】

简单的讲就是学生和老师的关系:一个老师教很多学生,每个学生只有一个老师,则学生和老师关系为多对一,老师和学生关系为一对多

多对一:可以理解为多个实体关联同一个实体,association,javaType(对象属性)
一对多:可以理解为一个实体集合了多个实体,collection,ofType(集合中的泛型)

首先以学生为视角,我们讨论一下多对一的关系构建

12.1 多对一

学生视角下,一个学生只有一个老师,所以老师属性用对象类型作为实体属性

学生类Student属性:id name Teacher

@Data
public class Student{
	private int id;
	private String name;
	private Teacher teacher;
}

老师类Teacher属性:id name

@Data
public class Teacher{
	private int id;
	private String name;
}

由于学生类中包含对象字段,需要用复杂查询

12.1.1 子查询

步骤:

  1. 先查询出指定的学生信息
  2. 根据学生信息中的tid进行老师信息查询
<!--学生信息查询-->
<select id="findStudent2ById" resultMap="findStudentByIdResult">
    select * from student where id=#{id}
</select>
<!--学生实体中的对象属性需要用association来映射-->
<resultMap id="findStudentByIdResult" type="student2">
    <id property="id" column="id"/>
    <result property="name" column="name"/>
    <!--为了关联老师实体对象,使用tid外键传入子查询-->
    <association property="teacher2" javaType="teacher2" column="tid" select="findTeacher2ById"/>
</resultMap>
<!--根据tid查询出老师信息-->
<select id="findTeacher2ById" resultType="teacher2">
    select * from teacher where id=#{tid}
</select>

特别注意:association中的javaType由于在子查询中有resultType给定了,所以javaType可以省略!!

12.1.2 结果集映射

将所有信息全部查询出来再做映射

<select id="findStudent2ById2" resultMap="findStudentByIdResult2">
    select s.id s_id,s.name s_name,s.tid s_tid,t.id t_id,t.name t_name from student s,teacher t where s.id=#{id} and s.tid=t.id
</select>
<resultMap id="findStudentByIdResult2" type="student2">
    <id property="id" column="s_id"/>
    <result property="name" column="s_name"/>
    <association property="teacher2" javaType="teacher2">
        <id property="id" column="t_id"/>
        <result property="name" column="t_name"/>
    </association>
</resultMap>

12.2 一对多

这里使用老师为视角,谈论一对多的关系构建

由于是老师为主,老师POJO下集合了多个学生,构建POJO类如下:

学生类Student属性:id name

@Data
public class Student{
	private int id;
	private String name;
	// private int tid;  // 注意:此处可写可不写,主要看需求是否需要获取该属性
}

老师类Teacher属性:id name studentList

@Data
public class Teacher{
	private int id;
	private String name;
	private List<Student> studentList;
}

构建查询,查询方式分为两种,子查询方式和结果集嵌套方式

12.2.1 子查询

步骤:

  1. 首先对老师进行获取,使用resultMap映射
  2. 老师下面有个学生集合,使用collection映射
  3. 学生和老师是通过一个逻辑外键(tid)来作用的,所以这里column指定以下需要传给子查询的字段值
  4. 子查询通过传递过来的值进行查询获取学生集合,映射到老师的属性中
<!--首先对老师进行获取,使用resultMap映射-->
<select id="findTeacherById" resultMap="findTeacherByIdResult">
    select * from teacher where id=#{id}
</select>
<!--老师下面有个学生集合,使用collection映射-->
<resultMap id="findTeacherByIdResult" type="teacher">
    <id property="id" column="id"/>
    <result property="name" column="name"/>
	<!--学生和老师是通过一个逻辑外键(student.tid=teacher.id)来作用的,所以这里column指定以下需要传给子查询的字段值,当前环境只有老师的id-->
    <collection property="studentList" column="id" ofType="student" select="findStudentById"/>
</resultMap>
<!--子查询通过传递过来的值进行查询获取学生集合,映射到老师的属性中-->
<select id="findStudentById" resultType="student">
    select * from student where tid=#{id}
</select>

特别注意:collection里的ofType可以不写,因为子查询指定了resultType!

12.2.2 结果集映射

结果集映射顾名思义,在一条语句中查询出所有信息,然后将其映射到对应的POJO类中即可!思想很简单,直接上代码:

<!--这条语句结果包含所需的所有字段值-->
<select id="findTeacherById2" resultMap="findTeacherByIdResult2">
    SELECT t.id t_id,t.name t_name,s.name s_name,s.id s_id,s.tid s_tid FROM teacher t,student s WHERE t.id=#{id} AND t.id=s.tid;
</select>
<resultMap id="findTeacherByIdResult2" type="teacher">
    <id property="id" column="t_id"/>
    <result property="name" column="t_name"/>
    <collection property="studentList" ofType="student">
        <id property="id" column="s_id"/>
        <result property="name" column="s_name"/>
    </collection>
</resultMap>

13 动态SQL

简化SQL拼接,当前提供功能如下:

  • if
  • choose (when, otherwise)
  • trim (where, set)
  • foreach

if

标签如下:

<if test="条件表达式"> sql语句</if>

示例:

<select 省略>
	select * from blog where 1=1
	<if test="titel != null">and title=#{title}</if>
	<if test="author != null">and author=#{author}</if>
</select>

注意:如果没有1=1,则条件成立后的and语句语法就不对了,但是这个1=1没什么实际含义,为了解决这个问题,使用where标签,该标签自动插入where且能删除多余and或or

<select id="findActiveBlogLike" resultType="Blog">
  SELECT * FROM BLOG
  <where>
    <if test="state != null">
         state = #{state}
    </if>
    <if test="title != null">
        AND title like #{title}
    </if>
    <if test="author != null and author.name != null">
        AND author_name like #{author.name}
    </if>
  </where>
</select>

chose

<select id="findActiveBlogLike"
     resultType="Blog">
  SELECT * FROM BLOG WHERE state = ‘ACTIVE’
  <choose>
    <when test="title != null">
      AND title like #{title}
    </when>
    <when test="author != null and author.name != null">
      AND author_name like #{author.name}
    </when>
    <otherwise>
      AND featured = 1
    </otherwise>
  </choose>
</select>

set

类似where,可以动态的拼接和删除末尾逗号

<update id="updateAuthorIfNecessary">
  update Author
    <set>
      <if test="username != null">username=#{username},</if>
      <if test="password != null">password=#{password},</if>
      <if test="email != null">email=#{email},</if>
      <if test="bio != null">bio=#{bio}</if>
    </set>
  where id=#{id}
</update>

trim

prefix:前缀,如果标签内部存在内容,则加上前缀

做功能定制,如和where等价的trim元素为:
prefixOverrides:前缀移除,移除标签内部语句的匹配前缀

<trim prefix="WHERE" prefixOverrides="AND |OR ">
  ...
</trim>

和set元素等价的trim元素为:
suffixOverrides:后缀移除,移除标签内部所有匹配后缀

<trim prefix="SET" suffixOverrides=",">
  ...
</trim>

foreach

集合遍历:用于in查询,特别注意:foreach中的collection属性!!

foreach的collection属性取值:
如果在接口中定义了@Param则按照注解来,否则:
如果是单参数,且为List类型,则为list
如果是单参数,且为array类型,则为array
如果是多参数,需要封装成Map,则为key

接口:

List<User> findByIds(@Param("ids")List ids);

映射文件:

<select id="findByIds" resultType="User" >
    select * from user where id in
    <foreach collection="ids" item="id" open="(" separator="," close=")">#{id}</foreach>
</select>

sql

可以将sql语句提取出来,然后include到需要用到的地方放,最好引用简单sql,防止出错
引用:
在这里插入图片描述
使用:
在这里插入图片描述

14 缓存

查询相同数据时直接走缓存不去数据库查询,提高查询速度,因为大部分情况下都在做查询操作

解决问题:高并发系统的性能问题

三高:高并发、高可用、高性能

使用环境:经常查询且不经常改变的数据

Mybatis提供:一级缓存和二级缓存
一级缓存:默认开启,SqlSession级别,又称为本地缓存,同一用户在一次请求中查询重复数据会使用缓存,close后清除
二级缓存:需要手动配置,基于namespace级别
自定义缓存:实现Mybatis的Cache接口,自定义二级缓存

映射语句文件中的所有 select 语句的结果将会被缓存。
映射语句文件中的所有 insert、update 和 delete 语句会刷新缓存。(缓存失效)
缓存会使用最近最少使用算法(LRU, Least Recently Used)算法来清除不需要的缓存。(默认)
缓存不会定时进行刷新(也就是说,没有刷新间隔)。
缓存会保存列表或对象(无论查询方法返回哪种)的 1024 个引用。
缓存会被视为读/写缓存,这意味着获取到的对象并不是共享的,可以安全地被调用者修改,而不干扰其他调用者或线程所做的潜在修改。

缓存策略:可用的清除策略有:
LRU – 最近最少使用:移除最长时间不被使用的对象。
FIFO – 先进先出:按对象进入缓存的顺序来移除它们。
SOFT – 软引用:基于垃圾回收器状态和软引用规则移除对象。
WEAK – 弱引用:更积极地基于垃圾收集器状态和弱引用规则移除对象。
默认的清除策略是 LRU。

14.1 一级缓存

手动清理缓存:sqlSession.clearCache()

14.2 二级缓存

同一个mapper下的会话会用到二级缓存

开启方式:要启用全局的二级缓存,还需要在你的 SQL 映射文件中添加一行:<cache/>

<cache/>
或,详细配置一下:
<cache eviction="FIFO" flushInterval="60000" size="512" readOnly="true"/>
解释:创建一个FIFO缓存,每隔60秒刷新,最多存储512个引用,返回的对象是只读的,不要去修改。

另外:为了方便阅读,建议显式配置一下:cacheEnabled:全局性地开启或关闭所有映射器配置文件中已配置的任何缓存。默认值为true。

<setting name="cacheEnable" value="true"/>

二级缓存作用机制:查询时的一级缓存在关闭会话后被放到二级缓存中了,新的会话可以从二级缓存中获取内容,不同的mapper查处的数据放在自己对应的map中

注意:关闭会话后才会放到二级缓存中,新会话才会用到二级缓存
注意:如果报未序列化错误,则在pojo类实现一下序列化即可
注意:查询时的顺序:二级缓存–>一级缓存–>数据库

14.3 自定义缓存

可以使用自己写的或者第三方的:<cache type="自定义缓存使用类"/>

14.3.1 使用第三方缓存

ehcache:一个纯Java进程内缓存框架,Hibernate默认缓存管理,面向通用缓存
redis:目前最流行的内存缓存

这里使用ehcache测试一下,步骤:

  1. 导包
  2. 加标签:<cache type="org.mybatis.caches.ehcache.EhcacheCache/>
  3. 加配置文件:ehache.xml(去网上搜一下,不做赘述)

14.3.2 使用自定义类

略

camera QXXX架构 This article introduces the QCX camera architecture for Qualcomm’s latest automotive chips including SA8650. It elaborates the layered camera stack under QNX, HGY and HQX systems, covering client applications, stream manager, CamX components and hardware d 阅读详情

相关推荐

Kubernetes多网卡环境下Calico网络配置避坑指南:如何精准指定业务网卡

本文针对Kubernetes多网卡环境下Calico网络配置的常见痛点,提供了精准指定业务网卡的实战指南。通过深入分析Calico的IP自动检测机制,详细解读并对比了五种IP_AUTODETECTION_METHOD配置方法(如interface、cidr、can-reach等),帮助运维人员从根源上解决网络分区和Pod通信失败问题,确保生产集群网络的稳定与可靠。

weixin_28835551的博客 730

MyBatis(B站狂神说)(自己总结方便复习)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mwHbX9qY-1600932169628)(MyBatis(B站狂神说)].assets/image-20200609171050895.png)

暴走的山交君的博客 1033

AIDC供电系统与算电协同

AIDC供电系统的技术革新为算电协同提供了基础保障,而算电协同则是解决AIDC高能耗问题、推动数字经济可持续发展的关键路径

数据中心全生命周期价值管理 2568

Mybatis复习1——B站

目录1 简介工作原理持久化2 搭建环境2.1 创建数据库2.2 创建idea项目2.3 编写核心配置文件2.4 编写mybatis工具类2.5 编写POJO2.6 编写dao接口2.7 编写dao接口配置文件2.8 单元测试2.9 排错2.10 优化 1 简介 参考文档:https://mybatis.org/mybatis-3/zh/index.html 优秀持久化框架,使用简单的xml来映射pojo到数据库 简化JDBC代码 Mybatis与Hibernate区别: Mybatis:半自动映射框架,需要

xiaopi3的博客 468

Vercel静态站被墙别慌!手把手教你用Cloudflare免费CDN+域名解析搞定DNS污染

本文详细介绍了如何利用Cloudflare免费CDN和域名解析解决Vercel静态网站遭遇DNS污染的问题。通过诊断DNS污染、设计Cloudflare解决方案架构、实战配置步骤以及高级调优技巧,帮助用户快速恢复站点访问并提升防护能力。

weixin_27442001的博客 677

Vivado IP核调参大师:高效配置RS编码器的避坑指南

本文深入解析Vivado中RS编码器IP核的高效配置方法,涵盖符号宽度选择、码长优化和AXI4-Stream接口控制等关键参数。重点指导如何避开常见陷阱,实现FPGA设计中的资源优化与性能平衡,提升RS编码在通信系统中的可靠性。

metaverse5vr的博客 221

MyBatis 复习文档

(4, ‘人工智能’, 50, TRUE, NULL, ‘2023-07-04 17:01:00’, ‘2023-07-04 17:01:00’, FALSE),(1, ‘前端’, 50, TRUE, NULL, ‘2023-07-04 17:01:00’, ‘2023-07-04 17:01:00’, FALSE),(6, ‘算法’, 50, TRUE, NULL, ‘2023-07-04 17:01:00’, ‘2023-07-04 17:01:00’, FALSE),2.2 MyBatis 配置。

weixin_54119491的博客 1193

RS485差分信号A下拉B上拉导致的乱码问题:一个硬件工程师的踩坑实录

本文通过一个工业网关项目中的RS485通信乱码故障,深入剖析了差分信号偏置电路设计的核心要点。文章详细记录了从波形抓取、原理图分析到多节点冲突排查的全过程,重点揭示了A下拉、B上拉这一反常规配置如何导致总线空闲状态不稳定,进而引发数据包末尾多出0x00字节及前导乱码的问题,并最终给出了硬件与软件协同的系统级解决方案与设计准则。

weixin_29159441的博客 236

spring boot+mybatis开发基础复习

spring boot+mybatis复习

2201_75999403的博客 962

Android投屏开发实战:手把手教你用Miracast实现Sink端功能(附完整代码)

本文是一份Android投屏Sink端开发的实战指南,详细讲解了如何利用Miracast协议和Wi-Fi P2P技术,从零构建一个功能完整的屏幕接收器。内容涵盖环境搭建、通过反射启用WFD Sink模式、RTSP协议协商、RTP流接收与解析,以及最终使用IjkPlayer进行音视频解码播放的全过程,并附有核心代码示例。

cherry的博客 878

uniapp+openlayers集成天地图实战:renderjs通信陷阱与性能优化避坑指南

本文深入探讨了uniapp与openlayers集成天地图时的renderjs通信陷阱与性能优化策略。通过实战案例解析了renderjs的特殊通信机制、地图实例生命周期管理、图层懒加载等关键技巧,帮助开发者避免常见坑点,提升应用流畅度。特别针对多语言切换、热重载偏移等疑难问题提供了解决方案,是uniapp+openlayers开发者的实用避坑指南。

weixin_30872157的博客 362

MyBatis复习笔记

resutlType无法帮助我们自动的去完成映射,所以只有使用resultMap手动的进行映射resultMap:属性:type 结果集对应的数据类型 Orderid 唯一标识,被引用的时候,进行指定autoMapping 开启自动映射extends 继承子标签:id:配置id属性result:配置其他属性association:配置一对一的映射property 定义对象的属性名javaType 属性的类型autoMapping 开启自动映射。

lihao1875699404的博客 1475

4、教育数据挖掘:公共数据集与研究进展

本文综述了教育数据挖掘(EDM)领域的研究进展与公共数据集应用情况。从2013年至2020年,EDM在电子学习系统、大规模开放在线课程(MOOC)等方面快速发展,涵盖了多种研究任务、工具与方法。文章梳理了UCI、Mendeley、DataShop等平台的公开数据集,分析了其特点与局限性,并介绍了KDD Cup、Kaggle等竞赛中的教育数据集及其评价指标。同时,探讨了多模态、心理行为等特色数据集的应用场景。最后指出当前EDM面临的主要挑战是缺乏系统性数据集综述、数据预处理复杂及可重复性不足,呼吁加强数据共享

rgv2345678的博客 171

MyBatis —— 复习

MyBatis MyBatis是一款优秀的持久层框架 它支持定制化SQL、存储过程以及高级映射 MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集,MyBatis可以使用简单的XML或注解来映射原生类型。 持久化 数据持久化: 持久化就是将程序的数据在持久状态和瞬间状态转化的过程 内存:断电及时 数据库、io文件持久化 为什么要使用持久化? 有一些对象不能让它丢掉 内存太贵了 持久层 Dao层、Service层、Controller层… 完成持久化工作的代码块 层界限十分明

weixin_46540606的博客 575

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Mybatis-plus复习篇

MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。润物无声:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑。效率至上:只需简单配置,即可快速进行单表 CRUD 操作,从而节省大量时间。丰富功能:代码生成、自动分页、逻辑删除、自动填充等功能一应俱全。

₍˄·͈༝·͈˄*₎◞ ̑̑的博客 1483

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Mybatis-plus学习笔记 (B站狂神说)(自己总结方便复习)

MyBatisPlusB站狂神说 学习MyBatis-Plus之前要先学MyBatis–>Spring—>SpringMVC 为什么要学它?MyBatisPlus可以节省我们大量的时间,所有CRUD代码都可以自动完成 JPA, tk-mapper ,MyBatisPlus 偷懒用的! 1.简介 是什么? 官网:https://baomidou.com/ 2.特性 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑 损耗小:启动即会自动注入基本 CURD,性能基本无损

暴走的山交君的博客 6813

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

MyBatis期末复习(SIT)

MyBatis期末复习 1.环境配置 1.导入jar包 2.在类路径下创建包结构 3.编写db.properties和mybatis-config配置文件 2.单表的增删改查和动态SQL 1.数据库表结构 2.实体类, 在pojo下编写(也可称为bean,domain等) 编写必要的getter,setter,constructor(无参,全参),toString方法 3.编写Mapper接口 public interface UserMapper { List<User> f

葡萄枸杞桂圆干的博客 1355

MyBatis基础知识复习

目 录作业3一.单选题二.填空题三.判断题 作业3 一.单选题 1、MyBatis的删除操作有关说发错误的是()。 A、MyBatis的删除操作在映射文件中是通过配置< delete >元素来实现的 B、MyBatis的删除操作也需要进行事务提交 C、MyBatis的删除操作执行了SqlSession的delete()方法 D、MyBatis的删除操作和添加操作时,也需要封装整个实体类 正确答案: D 2、关于MyBatis模糊查询中进行SQL字符串拼接时,说法错误的是()。 A、使用“${}”

此心安处 9541

mybatis复习

文章目录1. mybatis特性2. mybatis配置属性3. 分布查询4.多条件查询Where标签trim标签choose, when, otherwise循环删除foreachsql标签5.mybatis一级缓存6.MyBatis的二级缓存7.二级缓存的相关配置8.Mybatis缓存查询的顺序 mybatis官网:https://mybatis.org/mybatis-3/zh/configuration.html 1. mybatis特性 Mybatis是支持定制化SQL,存储过程以及高级映射的

qq_52581566的博客 1006

Mybatis框架复习

Mybatis框架复习三个核心接口 三个核心接口 SqlSessionFactoryBuilder 这个类可以被实例化、使用和丢弃,一旦创建了 SqlSessionFactory,就不再需要它了。 因此 SqlSessionFactoryBuilder 实例的最佳作用域是方法作用域(也就是局部方法变量)。 你可以重用 SqlSessionFactoryBuilder 来创建多个 SqlSessionFactory 实例,但最好还是不要一直保留着它,以保证所有的 XML 解析资源可以被释放给更重要的事情。 S

头秃程序员的日常 362

Mybatis 复习

parameterType:指定输入参数类型,MyBatis通过OGNL从输入对象中获取参数值设置在Sql中。resultType:指定输出结果类型,MyBatis将Sql查询结果的一行记录数据映射为resultType指定类型的 对象。

m0_68274160的博客 1013

复习使用SSM(mybatis)

提高开发的效率, 让开发人员把更多的精力集中在业务逻辑处理层面;Java编程语言: SpringPython编程语言: Django Flask TornadoMybatis是一个优秀的持久层框架,底层基于JDBC实现与数据库的交互;使用此框架程序员只需要通过注解或者修改xml配置文件的方式配置好需要执行的SQL语句,MyBatis框架会根据SQL语句生成对应的JDBC代码并对数据库中数据进行增删改查操作。该项目是一款社交媒体应用,用户可以在平台上发表短文等信息,分享自己的想法、心情和生活。

qq_20770569的博客 1275

mybatis复习-2

POINT-一些点 1、sql插入后,返回自增主键值 mybatis也是利用statement.getGenreatedKeys()。 属性: useGeneratedKeys="true" 使用自增主键获取主键值策略 keyProperty 指定对应的主键属性,也就是mybatis获取到主键值以后,将这个值封装给javaBean的哪个属性--> 例如: <insert id="addEmp" parameterType="com.atguigy.mybatis.bean.Employee" u

qq_41617261的博客 228

SpringMVC(B站狂神说java)(自己总结方便复习)

SpringMVC(B站狂神说java) 什么是MVC MVC是(Model)模型(dao service), (View)视图(jsp) ,(Controller)控制器(servlet) 的简写 , 是一种软件设计规范. 最典型的MVC就是JSP +servlet +javabean的模式 职责分析 Controller: 控制器 取得表单数据 调用业务逻辑 转向指定页面 Model : 模型 业务逻辑 保存数据的状态 View : 视图 显示页面 1.什么是SpringMVC Spring

暴走的山交君的博客 709

mybatis不等于怎么表示_孩子学习不复习等于没学,怎么复习最有效?

对于所学的知识,孩子学到什么程度,就可以称得上“会”了?所谓“会”,应该是在记忆的基础上,能够掌握并应用知识。如果我们问孩子一个他所学过的知识,孩子回答得模棱两可,似是而非的话,说明他并没有把知识牢记于心,更称不上“会”了。所以,“记住”是学会的基础。那么,孩子仅仅通过课堂学习和完成课后作业,就能完全掌握所学的知识吗?显然,只靠听课和写作业是不够的,那么,复习就成了学习过程中的重要环节。而复习的最...

weixin_39916379的博客 166

Spring(B站狂神说java)(自己总结方便复习)

Spring(B站狂神说java) 1.简介 SSH: Struct2 + Spring + Hibernate SSM: SpringMVC + Spring + Mybatis 官网:https://spring.io/projects/spring-framework 下载地址:https://repo.spring.io/release/org/springframework/spring/ github:https://github.com/spring-projects/spring-fr

暴走的山交君的博客 1593
上一篇: Mybatis复习1——B站
下一篇: JavaScript复习——B站
天落枫
博客等级 码龄10年 91粉丝 92原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值