SSM框架

1 SSM框架说明

Spring Boot:

        脚手架,用来快速搭建项目环境(不属于SSM)

Spring Framework:

        家族核心:用于bean对象创建和管理

Spring MVC子模块:

        用于快速开发Web应用程序(是Framework中的子模块)

MyBatis框架:

        第三方框架,主要用于数据库的管理(不属于Spring家族),是基于java的持久层框架,用于和数据库映射,避免了几乎所有的JDBC代码和手动设置参数以及获取结果集的工作;

        通过注解方式或者xml配置文件的方式来配置SQL和映射关系,灵活性非常高

        Spring可以将MyBatis框架整合进去

2 MyBatis框架

        Mybatis是一个优秀的持久层框架,底层基于JDBC实现从数据库的交互

        只需要通过注解或修改XML配置文件配置好需要执行的SQL语句,框架会根据SQL语句生成对应的JDBC代码并对数据库中数据进行增删改查操作。

3 使用步骤

                1、创建工程

                2、选择SpringBoot版本:2.7.12

                3、依赖项:MySQL Driver、MyBatis Framework

                4、配置文件中添加链接数据库信息

spring.datasource.url = jdbc : mysql : //localhost : 3306/blog?
serverTimezone = Asia/Shanghai&characterEncoding = utf8
spring.datasource.username = root
spring.datasource.password = root

 4 整合MyBatis完成用户数据操作

        @Mapper注解

        是由MyBatis框架提供,用于描述数据层接口,告诉系统底层为此接口创建其实现类,在实现类中定义数据访问逻辑,执行与数据库的会话(交互)

        @Insert注解(增删改查都有)

        使MyBatis框架根据接口方法的参数类型自动生成插入数据的代码

        insert、update、dalete返回值为受影响的数据条数int

        占位符#{}

        是MyBatis框架中用来表示占位符的语法

        在@Insert注解中,#{}所嗲表的是一个占位符,它可以接受java对象作为输入参数,并将其转换为预编译的SQL语句中的参数。使用#{}可以帮助我们避免SQL注入等问题,同时也让SQL写起来更加简单

MyBatis框架-xml管理

        5.1定义

        XML是一种可扩展型语言,用户可以自己定义标签,用来描述特定类型的数据;

        XML语法严格,每个标签都必须有一个结束标签,标签的嵌套关系也必须合法

        5.2和SQL注解比较

        XML配置SQL,可以将SQL语句和JAVA代码分离开

        XML配置SQL,支持动态SQL语句

        XML配置SQL,支持SQL语句的复用

        5.3使用流程

        1、在resources目录下创建目录,用来存放xml配置文件

        2、在文档服务中配置映射文件(文档服务器有模版)

        3. application.properties中添加配置:mybatis框架映射配置文件的位置

# 设置 MyBatis 框架的映射( Mapper )配置文件的位置
mybatis.mapper-locations = classpath : mappers/*.xml

        5.4xml配置SQL标签

        在Mybatis的XML文件中,SQL语句都是使用SQL标签来定义的

       

        5.5常用的SQL标签        

select
         用于查询操作,包括多表查询、条件查询等。可以使用 resultType 来指定返回结果的类型。
insert
        用于插入操作,并将其自动注入实体类中。
update
        用于更新操作,包括更新一条记录或者批量更新。
delete
        用于删除操作,包括删除一条记录或者批量删除。
if、foreach、set
        用于条件控制,可以根据不同的条件进行查询、插入、更新和删除操作。if 标签用于指定可以
为空的查询条件,foreach 标签用于循环查询,set 标签用于指定更新操作的字段值。
sql:
        用于定义可重用的 SQL 片段,通常是一些较为复杂的 SQL 片段。可以在其它 SQL 语句
中使用 include 标签来引用 SQL 片段。
include:
        用于引入外部的 SQL 片段。可以在 include 标签的 refid 属性中指定外部 SQL 片段
的名字,然后在当前 SQL 中使用它。

        5.6定义映射文件

<?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">
<!-- 1. 填写 namespace ,填写 WeiboMapper 的绝对路径 -->
<mapper namespace = "cn.tedu._04mybatis.mapper.WeiboMapper" >
<!-- 在微博表中插入数据 -->
<insert id = "insert" >
INSERT INTO weibo
VALUES (NULL, #{content}, #{created}, #{userId})
</insert>
<!-- 根据微博 id 查询数据-->  resultType是指查询结果映射到的java类
<select id = "selectByWeiboId" resultType = "cn.tedu._04mybatis.pojo.Weibo" >
SELECT *
FROM weibo
WHERE id = #{id}
</select>

        5.7动态SQL语句

        动态SQL是指在程序运行时动态生成SQL语句的技术,它允许开发人员在程序运行时根据不同的条件拼接SQL语句,从而灵活的构建各种查询

        DELETE FROM comment WHERE id in(2,3,5)  此处id的值不确定,数量也不确定!

         在接口中定义方法

/**1. 第一种批量删除 : 传递 Integer 的数组 */
int deleteByIds1 ( Integer [] ids );
/**2. 第二种批量删除:传递集合参数 */
int deleteByIds3 ( List < Integer > ids );

         定义映射文件

<!-- 批量删除 - 数组格式:
collection  用来设置遍历对象的类型,
item  设置遍历出每一个变量的名称
separator  设置分隔符
注意:注释一定要放在 delete 标签的外面,不能放在里面,放在里面会被当做 sql 语句执行!
-->
<delete id = "deleteByIds1" >
DELETE FROM comment WHERE id IN(
<foreach collection = "array" item = "id" separator = "," >
#{id}
</foreach>
)
</delete>
<!-- 集合传参,需要把 collection 改为 list -->
<delete id = "deleteByIds2" >
DELETE FROM comment WHERE id IN(
<foreach collection = "list" item = "id" separator = "," >
#{id}
</foreach>
)
</delete>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值