动力节点王鹤MyBatis框架『第三章』MyBatis的Dao代理

Mybatis 返回值配置理解 - 返回值是浮点数 BigDecimal 或整数 Integer的配置 - 返回指定实体类格式的 List 数组 的值,否则就会报如上错误的,其实仔细看看因为报错原因的意思就好了。mybatis中的所有查询标签,都必须返回。 阅读详情

最近因为项目需要,又重新学习了一下MyBatis,发现好多以前学的都忘得差不多了,而且以前的笔记也没有了,所以自己去网上找资料学习。并且整理下来发到这里,大家一起学习。

视频看的动力节点王鹤老师讲的MyBatis框架,堪称史上最细,老师条理很清晰,讲的真心不错,观看链接点下边

https://www.bilibili.com/video/BV185411s7Ry

第三章 MyBatis的Dao代理

3.1 dao代理

3.1.1 mybatis提供代理:

mybatis创建Dao接口的实现类对象, 完成对sql语句的执行。 mybatis创建一个对象代替你的 dao实现类功能。

3.1.2 使用mybatis代理要求

1)mapper文件中的namespace 一定dao接口的全限定名称

2)mapper文件中 标签的id是dao接口方法名称

3.1.3 mybatis代理实现方式

使用SqlSession对象的方法 getMapper(dao.class)

例如: 现在有 StudentDao接口。

SqlSession session  = MyBatisUtils.getSqlSession();
StudentDao dao  = session.getMapper(StudentDao.class);
Student student = dao.selectById(1001);


//上面代码中
StudentDao dao  = session.getMapper(StudentDao.class);
等同于
StudentDao dao  = new StudentDaoImpl();

3.2 理解参数

理解参数是: 通过java程序把数据传入到mapper文件中的sql语句。 参数主要是指dao接口方法的形参

3.2.1 parameterType

parameterType:表示参数的类型, 指定dao方法的形参数据类型。 这个形参的数据类型是给mybatis使用。 mybatis在给sql语句的参数赋值时使用。 PreparedStatement.setXXX( 位置, 值)

第一个用法: java类型的全限定类型名称   parameterType="java.lang.Integer"
第二个用法: mybatis定义的java类型的别名  parameterType="int"

parameterType:mybatis通过反射机制可以获取 dao接口方法参数的类型, 可以不写

<select id="selectById"  parameterType="integer"
                 resultType="com.bjpowernode.domain.Student">
   select id,name,email,age from student where id=#{studentId}
</select>

3.2.2 dao接口方法是一个简单类型的参数

//dao接口的方法形参是一个简单类型的
//简单类型: java基本数据类型和String
Student selectByEmail(String email);
<!--
   dao接口是一个简单类型的参数
   mapper文件,获取这个参数值,使用#{任意字符}
-->
<select id="selectByEmail" resultType="com.bjpowernode.domain.Student">
    select id,name,email,age from student where email=#{studentEmail}
</select>

3.2.3 dao接口方法有多个简单类型的参数

@Param: 命名参数, 在方法的形参前面使用的, 定义参数名。 这个名称可以用在mapper文件中。

dao接口,方法的定义

/*
  多个简单类型的参数
  使用@Param命名参数, 注解是mybatis提供的
  位置:在形参定义的前面
  属性:value 自定义的参数名称
 */
List<Student> selectByNameOrAge(@Param("myname") String name,
                                @Param("myage") Integer age);

mapper文件

<!--
   多个简单类型的参数.
   当使用了@Param命名后,例如@Param("myname").
   在mapper中,使用#{命名的参数}, 例如 #{myname}
-->
<select id="selectByNameOrAge" resultType="com.bjpowernode.domain.Student">
    select id,name,email,age from student where name=#{myname} or age=#{myage}
</select>

3.2.4 dao接口方法使用一个对象作为参数

方法的形参是一个java对象。这个java对象表示多个参数。使用对象的属性值作为参数使用

java对象

public class Student {
    private Integer id;
    private String name;
    private String email;
    private Integer age;
    //set|get方法
}

public class QueryParam {
    private Object p1;
    private Object p2;
    //set|get方法
}

dao接口中的方法定义

/*
 * 一个java对象作为参数( 对象由属性, 每个属性有set,get方法)
 */
List<Student> selectByObject(Student student);

List<Student> selectByQueryParam(QueryParam param);

mapper文件

<!--
   一个java对象作为方法的参数,使用对象的属性作为参数值使用
   简单的语法: #{属性名} , mybatis调用此属性的getXXX()方法获取属性值
-->
<select id="selectByObject" resultType="com.bjpowernode.domain.Student">
    select id,name,email,age from student where name=#{name} or age=#{age}
</select>

<select id="selectByQueryParam" resultType="com.bjpowernode.domain.Student">
     select id,name,email,age from student where name=#{p1} or age=#{p2}
</select>

<!--负责的语法格式: #{属性名,javaType=java类型的全限定名称,jdbcType=mybatis中定义列的数据类型}-->
<select id="selectByObject" resultType="com.bjpowernode.domain.Student">
        select id,name,email,age from student where
        name=#{name,javaType=java.lang.String,jdbcType=VARCHAR}
        or
        age=#{age,javaType=java.lang.Integer,jdbcType=INTEGER}
</select>

3.2.5 dao接口中多个简单类型的参数,使用位置

参数位置: dao接口中方法的形参列表,从左往右,参数位置是 0 , 1, 2…

语法格式:#{arg0} ,#{arg1}

dao接口的方法

/*
   使用位置,获取参数
 */
List<Student> selectByPosition(String name,Integer age);
<!--
   mybatis版本是 3.5.1
   使用位置获取参数值, dao接口方法是多个简单类型的参数
   语法: #{arg0}, #{arg1}....
-->
<select id="selectByPosition" resultType="com.bjpowernode.domain.Student">
    select id,name,email,age from student where name=#{arg0} or age=#{arg1}
</select>

3.2.6 dao接口参数是一个Map

map作为dao接口的参数, 使用 key 获取参数值,mapper文件中,语法格式 #{key}

/*
   使用Map作为参数
 */
List<Student> selectStudentByMap(Map<String,Object> map);

mapper文件

<!--
   使用Map传递参数,
   在mapper文件中,获取map的值,是通过key获取的,语法:#{key}
-->
<select id="selectStudentByMap" resultType="com.bjpowernode.domain.Student">
     select id,name,email,age from student where name=#{myname} or age=#{myage}
</select>

测试,调用方法的位置

@Test
public void testSelectByMap(){
    SqlSession sqlSession = MyBatisUtil.getSqlSession();
    StudentDao dao  = sqlSession.getMapper(StudentDao.class);

    //使用map传递参数
    Map<String,Object> data = new HashMap<>();
    data.put("myname", "李思思");
    data.put("myage", 20);
    List<Student> students = dao.selectStudentByMap(data);

    students.forEach( stu-> System.out.println("stu="+stu));
    sqlSession.close();

}

3.3 #和$的区别

3.3.1 # 占位符

语法: #{字符}

mybatis处理#{} 使用jdbc对象是 PrepareStatment对象

<select id="selectById"  parameterType="integer"
             resultType="com.bjpowernode.domain.Student">
    select id,name,email,age from student where id=#{studentId}
</select>

mybatis出创建PrepareStatement对象,执行sql语句
String sql=" select id,name,email,age from student where id=?";
PrepareStatement pst = conn.prepareStatement(sql);
pst.setInt(1,1001);  //传递参数
ResultSet rs  = pst.executeQuery(); //执行sql语句


#{}特点:

1)使用的PrepareStatement对象,执行sql语句,效率高。

2)使用的PrepareStatement对象,能避免sql语句, sql语句执行更安全。

3) #{} 常常作为 列值使用的, 位于等号的右侧, #{}位置的值和数据类型有关的。

3.3.2 $ 占位符

语法 : ${字符}

mybatis执行${}占位符的sql语句

<select id="selectById"  parameterType="integer"
             resultType="com.bjpowernode.domain.Student">
    select id,name,email,age from student where id=${studentId}
</select>	

${} 表示字符串连接, 把sql语句的其他内容和 ${}内容使用 字符串(+) 连接的方式连在一起
String sql="select id,name,email,age from student where id=" + "1001";

mybatis创建Statement对象, 执行sql语句。
Statement stmt  = conn.createStatement(sql);
ResultSet rs  = stmt.executeQuery();

${} 的特点

1)使用Statement对象,执行sql语句,效率低

2)${}占位符的值,使用的字符串连接方式, 有sql注入的风险。 有代码安全的问题

3 ) ${} 数据是原样使用的, 不会区分数据类型。

4)${} 常用作 表名或者列名, 在能保证数据安全的情况下使用 ${}

3.4 封装MyBatis输出结果

封装输出结果: MyBatis执行sql语句,得到ResultSet, 转为java对象。

讲两个 resultType, resultMap

3.4.1 resultType

resultType属性: 在执行select时使用, 作为标签的属性出现的。

resultType:表示结果类型 , mysql执行sql语句,得到java对象的类型。 它的值有两种

1) java类型的全限定名称 。

2)使用别名

1) resultType:表示java自定义对象

Student selectById(Integer id);

<select id="selectById"  parameterType="integer"
             resultType="com.bjpowernode.domain.Student">
    select id,name,email,age from student where id=#{studentId}
</select>

resultType:现在使用java类型的全限定名称。 表示的意思 mybatis执行sql,把ResultSet中的数据转为Student类型的对象。  mybatis会做以下操作:

1. 调用com.bjpowernode.domain.Student的无参数构造方法,创建对象。
    Student student = new Student(); //使用反射创建对象
2. 同名的列赋值给同名的属性。
    student.setId( rs.getInt("id"));
    student.setName(rs.getString("name"));
3. 得到java对象, 如果dao接口返回值是List集合, mybatis把student对象放入到List集合。


所以执行 Student mystudent = dao.selectById(1001); 得到 数据库中 id=1001这行数据, 
这行数据的列值, 付给了mystudent对象的属性。 你能得到mystudent对象。 就相当于是 id=1001这行数据。



2)resultType表示简单类型

dao方法

long countStudent();

mapper文件

<!--
  执行sql语句,得到是一个值(一行一列)
-->
<select id="countStudent" resultType="java.lang.Long">
    select count(*) from student
</select>

3) resultType:表示一个map结构

//查询结果返回是一个Map
Map<Object,Object> selectMap(@Param("stuid") Integer id);
<!--
   执行sql得到一个Map结构数据, mybatis执行sql,把ResultSet转为map
   sql执行结果, 列名做map的key , 列值作为value
   sql执行得到是一行记录,转为map结构是正确的。

   dao接口返回是一个map, sql语句最多能获取一行记录,多余一行是错误

-->
<select id="selectMap" resultType="java.util.HashMap">
    select id,name,email from student where id != #{stuid}
</select>

练习题:

输入一个省份id ,得到 省份id ,省份name, 城市id,城市名称

例如输入 省份id=1

1 河北 1 石家庄

1 河北 2 秦皇岛

3.4.2 resultMap

resultMap: 结果映射。 自定义列名和java对象属性的对应关系。 常用在列名和属性名不同的情况。

用法:

1.先定义 resultMap标签, 指定列名和属性名称对应关系

2.在select标签使用resultMap属性,指定上面定义的resultMap的id值

<!--使用resultMap定义列和属性的关系-->
<!--定义resultMap
    id:给resultMap的映射关系起个名称,唯一值
    type:java类型的全限定名称
-->
<resultMap id="customMap" type="com.bjpowernode.vo.CustomObject">

    <!--定义列名和属性名的对应-->
    <!--主键类型使用id标签-->
    <id column="id" property="cid" />
    <!--非主键类型使用result标签-->
    <result column="name" property="cname" />
    <!--列名和属性名相同不用定义-->
    <result column="email" property="email" />
    <result column="age" property="age" />
</resultMap>

<!--使用resultMap属性,指定映射关系的id
    resultMap和resultType 不能同时使用, 二选一。
-->
<select id="selectById2" resultMap="customMap">
  select id,name,email,age from student where id=#{stuid}
</select>

3.5 自定义别名

mybatis提供的对java类型定义简短,好记名称。

自定义别名的步骤:

1)在mybatis主配置文件,使用 typeAliases标签声明别名

2)在mapper文件中, resultType=“别名”

声明别名(mybatis主配置文件)

<typeAliases>
    <!--第一种语法格式
        type:java类型的全限定名称(自定义类型)
        alias:自定义别名
    -->
    <typeAlias type="com.bjpowernode.domain.Student" alias="stu" />

</typeAliases>

mapper文件中使用

resultType="别名"
<select id="selectById"  parameterType="integer" resultType="stu">
    select id,name,email,age from student where id=#{studentId}
</select>

3.6 列名和java对象属性名称不一样解决方式

1) 使用resultMap: 自定义列名和属性名称对应关系

2)使用resultType: 使用列别名,让别名和java对象属性名称一样

3.7 like

第一种方式: 在java程序中,把like的内容组装好。 把这个内容传入到sql语句

//like第一种方式
List<Student> selectLikeOne(@Param("name") String name);

mapper

<!--like第一种方式-->
<select id="selectLikeOne" resultType="com.bjpowernode.domain.Student">
    select * from student where name like #{name}
</select>

执行like

@Test
public void testLikeOne(){
    SqlSession sqlSession = MyBatisUtil.getSqlSession();
    StudentDao dao  = sqlSession.getMapper(StudentDao.class);

    String name="%李%";
    List<Student> students = dao.selectLikeOne(name);

    sqlSession.close();

    students.forEach( stu-> System.out.println(stu));
}

第二种方式: 在sql语句,组织like的内容。

sql语句like的格式: where name like “%“空格#{name}空格”%”

//like第二种方式
List<Student> selectLikeTwo(@Param("name") String name);
<!--like第二种方式-->
<select id="selectLikeTwo" resultType="com.bjpowernode.domain.Student">
    select * from student where name like "%" #{name} "%"
</select>
@Test
public void testLikeTwo(){
    SqlSession sqlSession = MyBatisUtil.getSqlSession();
    StudentDao dao  = sqlSession.getMapper(StudentDao.class);

    String name="李";
    List<Student> students = dao.selectLikeTwo(name);

    sqlSession.close();

    students.forEach( stu-> System.out.println(stu));
}
动力节点SSM框架超详细笔记,绝对是初学者学习的ssm框架教程 SSM框架是spring MVC,spring和mybatis框架的整合,是标准的MVC模式,将整个系统划分为表现层,controller层,service层,DAO层四层,使用spring MVC负责请求的转发和视图管理,spring实现业务对象管理,mybatis作为数据对象的持久化引擎。 原理 SpringMVC 1.客户端发送请求到DispacherServlet(分发器) 2.由DispacherServlet控制器查询HanderMapping,找到处理请求的Controller . 阅读详情

相关推荐

Ghidra逆向分析实战:从安装JDK到解析STM32的bin文件(附SVD插件配置)

本文详细介绍了使用Ghidra进行STM32固件逆向分析的完整流程,从JDK安装配置到SVD插件的应用。通过实战案例展示如何解析bin文件、恢复符号信息以及利用SVD插件识别外设寄存器,帮助开发者高效完成嵌入式设备的逆向工程任务。

weixin_29309475的博客 643

mybatis之返回值总结

mybatis之返回值总结

s_156的博客 5668

AHB不对称半桥反激电路设计(一)变换器拓扑工作原理详解

本文详细分析了AHB(不对称半桥)反激变换器拓扑的工作原理及关键优势。该拓扑通过谐振腔结构实现原边功率管的零电压开通(ZVS)和副边整流管的零电流关断(ZCS),显著提升效率至95%以上。文章阐述了6个工作阶段的时序特征,包括谐振电感电流和电容电压的数学模型推导。AHB拓扑具有漏感能量回收、宽电压输出(适配PD快充等场景)和协同储能等优势,相比传统方案可缩小变压器体积30%,成为100-300W隔离电源的理想选择。

【Simon】的博客 7121

MyBatis传入多个参数的问题

一、单个参数: public List<XXBean> getXXBeanList(String xxCode); <select id="getXXXBeanList" parameterType="java.lang.String" resultType="XXBean">   select t.* from tableName t wher...

weixin_30362083的博客 441

中国全国地面站点数据(1981-2010)、月平均气象、月平均降水、月平均相对湿度、月最大降水、月最高温度最低温度、月最高温平均值最低温平均值、高低温站点基础数据,气候数据

中国全国地面站点数据(1981-2010)、月平均气象、月平均降水、月平均相对湿度、月最大降水、月最高温度最低温度、月最高温平均值最低温平均值、高低温站点基础数据 b_china_mon_avg_data_pressure月平均气象 b_china_mon_avg_data_rain月平均降水 b_china_mon_avg_data_rhu月平均相对湿度 b_china_mon_max_data_rain月最大降水 b_china_mon_max_min_data_tem月最高温度最低温度 b_china

无极低码 2万+

ChipCamp探索系列 -- 7A. 开源CPU之BOOM的来龙去脉

本文梳理一下Berkeley的乱序超标量CPU项目----Berkeley Out of Order Machine (BOOM),作为探索7系的首篇(7A)。

ChipCamp的博客---https://chipcamp.blog.youkuaiyun.com/ 1558

mybatis直接拼写sql即原生sql返回结果bootstarp datatable struts2 jquery 整合

1、项目中多个表查询,嵌套sql语句,聚合函数等,致使拼写的sql直接返回结果集合。 2、以上场合mybatis,mapper配置使用起来,配置繁琐,一对一,一对多,多对多关系需要考虑进去,类似需要以下的配置 &amp;amp;amp;amp;amp;amp;lt;association property=&amp;amp;amp;amp;amp;quot;allocatinglandTable&amp;amp;amp;amp;amp;quot; column=&a

guoruijun_2012_4的专栏 1890

stm32最小系统_完成一个最小FOC矢量控制系统所需的基本模块和功能配置

当我们读懂 FOC 矢量控制的基本原理之后,便迫不及待的想动手尝试,去实现一个矢量控制系统,让电机先转起来,有一个直观的感受。因此,我们需要设计实现一个矢量控制的最小系统,具备矢量控制的基本功能,满足电机矢量运行的基本条件。首先,看一下矢量控制的基本架构:矢量控制架构如上图所描述,矢量控制系统包括实时电流的采集、clarke 变换、park 变换、SVPWM 、实时角度的反馈和计算以及电流环和速...

weixin_39524048的博客 1782

Mybatis调用存储过程返回查询结果的通用接口(Oracle 存储过程 游标)

在通常的业务处理中,需要前端展示一个表单,后端通常要写配套的返回实体类 VO好将Mybatis查询的结构映射为实体类,即便是简单的单表查询也需要写常用的三层结构。本文主要是为了业务大量存放于存储过程的项目服务,如果是单纯为了方便可以稍作修改,将Mybatis调用存储过程,修改为普通的SQL。其余的思路也是相通的。.........

欢迎来到猫萌萌公司 3033

92. SAP ABAP 系统里长文本 Long Text 的设计和读取函数 READ_TEXT 的详细讲解

SAP ABAP中的长文本(Long Text)是指在SAP系统中存储和管理较长文本信息的一种机制。长文本通常用于存储描述性信息、注释、说明等,这些文本信息可能超过了标准数据库表字段的长度限制。 长文本的作用主要有以下几点: 1. 更多的信息存储:长文本允许您存储和显示比标准表字段允许的更多信息。例如,产品描述、用户注释、维护计划等可能需要大量的文本来详细描述。 2. 更好的可读性:长文本提供了更好的文本格式化选项,可以改善可读性。用户可以使用段落、列表、字体样式等格式化文本,以便更容易地理解和阅读。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1993

AI视频生成模型训练:从数据准备到部署全流程

咱们这次的目的就像是要建造一座超级厉害的AI视频生成魔法城堡。范围呢,就是从收集建造城堡的材料(数据准备)开始,到把城堡搭建起来(模型训练),再到让城堡能供大家使用(模型部署),涵盖了整个过程的方方面面。接下来我们会先给大家介绍一些重要的术语,就像认识冒险途中的关键道具一样。然后引入一个有趣的故事,带大家进入AI视频生成的奇妙世界,解释核心概念以及它们之间的关系。接着会详细讲解核心算法原理、数学模型和公式,还会有项目实战,带大家亲自体验代码的魅力。

小白菜的博客 399

动力节点王鹤MyBatis框架『第一章』框架的概述

MyBatis 框架 第一章 框架的概述 1.三层架构 mvc:web开发中,使用mvc架构模式。 m:数据, v:视图, c:控制器。 c控制器: 接收请求,调用service对象,显示请求的处理结果。 当前使用servlet作为控制器 v视图: 现在使用jsp,html,css,js。 显示请求的处理结果,把m中数据显示出来。 m数据: 来自数据库mysql, 来自文件,来自网络 mvc作用: ​ 1)实现解耦合。 ​ 2)让mvc 各负其职。 ​ 3)使的系统扩展更好。更

A_coding的博客 1394

损失函数大汇总(三十八)(AUCPR Loss附公式推导与代码)

本文系统介绍了AUCPR Loss的原理与应用。针对不平衡分类任务中AUC指标不够敏感的问题,提出通过优化PR曲线面积(AUCPR)来提升模型性能。文章详细推导了AUCPR的可微近似实现:首先用sigmoid函数软化阈值判断,构造可微的TP/FP/FN计数;然后基于软Precision和Recall计算近似PR曲线面积;最后通过数值积分得到可优化的损失函数。特别讨论了温度参数τ对训练稳定性的影响,并比较了AUCPR与AUC、AP等指标的异同。该方法适用于医学筛查、欺诈检测等极端不平衡场景,能更准确反映模型对

悦学共鸣,温柔以待,汇聚光芒,共同成长 441

ssm整合开发 动力节点王鹤版本

动力节点 王鹤版本 视频地址https://www.bilibili.com/video/BV1sk4y167pD 1. pom.xml 1 2. web.xml 2 3. 新建包、目录、文件 新建4个包 分别是controller,dao,domain,service 新建resources/config目录 以及该目录下的applicationContext.xml、dispatcherServlet.xml、jdbc.properties文件 4.disp...

hello world 3880

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

动力节点王鹤MyBatis框架『第二章』MyBatis入门实例

第二章 MyBatis入门 2.1 第一个例子 实现步骤: 0.创建student表(id,name,email,age) 1.新建maven项目 2.修改pom.xml 1)加入依赖 mybatis依赖, mysql驱动, junit 2)在加入资源插件 3.创建实体类Student。定义属性, 属性名和列名保持一致 4.创建Dao接口, 定义操作数据库的方法。 5.创建xml文件(mapper文件), 写sql语句。 mybatis框架推荐是把sql语句和java代码分开 mapper文件:定义和da

A_coding的博客 812

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

动力节点—2020最新MyBatis教程笔记

文章目录1 介绍2 快速入门2.1 操作步骤(P9)2.1.1 首先创建maven2.1.2 接着会做一些配置2.2 在编译的target目录下面缺少xml的解决方式(P11)2.3 日志的输出2.4 注意事项2.5对各个对象的分析**Resources** **类****SqlSessionFactoryBuilder** **类****SqlSessionFactory** **接口****SqlSession** **接口**2.6 工具类3 MyBatis DAO代理3.1两种sql的执行方式3.2

weixin_41677899的博客 1299

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

动力节点王鹤MyBatis框架『第四章』动态sql

最近因为项目需要,又重新学习了一下MyBatis,发现好多以前学的都忘得差不多了,而且以前的笔记也没有了,所以自己去网上找资料学习。并且整理下来发到这里,大家一起学习。 视频看的动力节点王鹤老师讲的MyBatis框架,堪称史上最细,老师条理很清晰,讲的真心不错,观看链接点下边 https://www.bilibili.com/video/BV185411s7Ry 第四章 动态sql 什么是动态sql: 同一个dao的方法, 根据不同的条件可以表示不同的sql语句, 主要是where部分有变化 使用mybat

A_coding的博客 292

动力节点Spring框架学习笔记-王鹤(三)spring整合MyBatis

三、spring整合MyBatis 官方下载地址 动力节点spring资料 视频观看地址 https://www.bilibili.com/video/BV1nz4y1d7uy 将 MyBatis 与 Spring 进行整合,主要解决的问题就是将SqlSessionFactory 对象交由 Spring来管理 只需要将 SqlSessionFactory 的对象生成器 SqlSessionFactoryBean 注册在 Spring 容器中,再将其注入给 Dao 的实现类即可完成整合

Java_Leo12的博客 253

动力节点王鹤MyBatis框架『第六章』PageHelper

最近因为项目需要,又重新学习了一下MyBatis,发现好多以前学的都忘得差不多了,而且以前的笔记也没有了,所以自己去网上找资料学习。并且整理下来发到这里,大家一起学习。 视频看的动力节点王鹤老师讲的MyBatis框架,堪称史上最细,老师条理很清晰,讲的真心不错,观看链接点下边 https://www.bilibili.com/video/BV185411s7Ry 第六章 PageHelper PageHelper做数据分页。 在你的select语句后面加入分页的 sql 内容, 如果你使用的mysql数据库

A_coding的博客 745

整理动力节点王鹤老师ssm整合步骤

听了动力节点王鹤老师的Springmvc课程,根据老师上课做的笔记,还有注意点,还有自己写碰到的一些问题,或者需要注意的地方,整理出来的一份文章

weixin_59649587的博客 958

史上最全面最易懂的,Spring框架学习教程

Spring通过PlatformTransactionManager平台事务管理器接口对事务的管理进行高度抽象,但是该接口下具体的实现是由各个平台自己实现,Spring并不直接管理事务,而是提供了多种事务管理器,也就是对各个平台的事务管理进行封装,最终将事务管理的职责委托给JDBC、Hibernate、JPA、JMS、MongoDB等持久化平台框架的事务来实现。 本套Spring课程,是动力节点王鹤老师讲解的,主要讲了Spring4在SSM框架中的使用及运用方式。 内容涵盖了实际工作中可能用到的几乎所有

assdfgdfgjhtdo的博客 982

MyBatis框架学习笔记整理(超全、硬货)管饱

Java自学党,最近跟着动力节点王鹤老师学到了MyBatis框架,整理了相关笔记发到这里,大家一起学习。 王妈妈讲的课,我觉得无敌了,看了这么多网上的视频,只有王鹤老师讲的能听明白…就喜欢讲的细的,而且老师条理很清晰 视频资源:https://www.bilibili.com/video/BV185411s7Ry MyBatis 框架 第一章 框架的概述 1.三层架构 mvc:web开发中,使用mvc架构模式。 m:数据, v:视图, c:控制器。 c控制器:接收请求,调用service对象,显示请求的处

Java_Coding1的博客 717

CHY的Spring学习笔记---师从动力节点王鹤老师(B站白嫖)

Spring学习笔记 核心技术:ioc和aop ioc:使用di(依赖注入)实现控制反转,底层使用的是反射机制 spring可以创建自己写的类的对象,也可以创建非自定义对象,只要知道类的全限定名即可。 spring创建对象:默认调用的是无参构造方法。 使用spring框架的步骤: 加入spring-context依赖 创建类:接口,实现类、没有接口的类 创建spring的配置文件applicationContext.xml,使用声明对象 使用容器中的对象: ApplicationCont

CHY821的博客 536

【Spring】(7)整合Spring和MyBatis的流程及要点

两个月前跟着b站动力节点王鹤老师的Spring框架教程视频学习完了Spring框架,在学习过程中我将视频中涉及的代码都一行一行手敲了一遍,并且把Spring入门相关的资料整理了一下,在这里记录一下我在Spring框架学习过程中的笔记和一些心得,希望能帮助到想要通过文字教程入门Spring这一框架的小伙伴哦! 视频地址:2020最新Spring框架教程【IDEA版】-Spring框架从入门到精通 文章目录整合 Spring 和 MyBatis1. 概述与回顾2. 实现步骤2.1 创建数据库表2.2 配置.

aaa_hao的博客 428

ssm整合idea版

ssm整合idea鸣谢我的环境新建表创建maven项目,web模板)配置pom.xml文件项目结构创建配置文件(编写在resources/conf)编写代码最后就是前端文件了代码至此全部完毕,效果图备注 鸣谢 谢谢动力节点的王鹤老师,王妈妈实在是太细了,整个文章都是照着王老师的视频打的,说的特别清楚 https://www.bilibili.com/video/BV1sk4y167pD?share_source=copy_web p44开始看,整合思路虽然不涉及代码,但是还是要看,王老师说的特别清晰,我以前

weixin_41815912的博客 645

带你轻松入门SpringMVC(第三章)SSM整合

第三章 SSM 整合 3.1 SSM 整合思路 SSM思路: SpringMVC+ Spring + MyBatis(IBatis), 所以有人叫做SSI整合。 SSM整合是使用三个框架的优势功能。三个框架对应的三层架构的三层。 SpringMVC是视图层, Spring是业务层, MyBatis持久层。 SSM 整合,需要把对象交给容器管理, 让容器去创建项目中要使用的java对象。 现在有两个容器。 第一个是Spring容器: Spring容器是管理service 和 dao等对象的。 是业务层对

Java_Leo12的博客 248
上一篇: 动力节点王鹤MyBatis框架『第二章』MyBatis入门实例
下一篇: 动力节点王鹤MyBatis框架『第四章』动态sql
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值