这里写目录标题

  • 上午:
  • 什么是url?
  • 下午:
  • JDBC
  • 什么是ORM?
  • mybatis:
  • springboot与mybatis整合
  • 数据库操作
  • 新增:
  • 修改:
  • 删除:
  • 数据分页查询:
  • 数据库查询过滤:
  • 使用注解代替xml实现CRUD
  • 所谓的CRUD:
  • Typora笔记下载:


上午:

什么是url?

url的各个板块划分和内容:

springboot 不输出mybaits sql 日志_spring


各个注解的知识点:

下午:

JDBC

JDBC: java Databasse Connectivity 是java语言中用于规范客户端程序如何访问数据库的应用程序接口,提供了访问数据库的方法

1、通过jdbc连接数据库:

springboot 不输出mybaits sql 日志_mysql_02


2、预编译指令 (执行一个sql语句)

3、将数据映射到pojo类上:

springboot 不输出mybaits sql 日志_mysql_03


4、第四步应该放到finally中去,以便能够将连接关闭(即使中途抛出异常也能够关闭连接,否则当连接抛出异常时,不能将连接关闭,导致占用,这是一种属于安全意识方面的东西)

springboot 不输出mybaits sql 日志_sql语句_04

什么是ORM?

ORM(Object Relational Mapping):对象关系映射,指把java中对象的字段与数据库表中的列进行意义对应

springboot 不输出mybaits sql 日志_sql语句_05


ORM功能:

  • 自动映射数据与对象
  • 解耦业务代码与sql语句

现在的程序都讲究低耦合,

mybatis:

一款优秀的ORM半自动化持久化框架

springboot 不输出mybaits sql 日志_mysql_06

springboot与mybatis整合

  • 新建一个用户表
  • 新建一个springboot项目
  • 在springboot中集成mybatis

mybatis需要的包:
mybatis-spring-boot-starter
mysql的连接包

在pom.xml文件中导入mybatis和mysql的依赖

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>2.2.0</version>
</dependency>
<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>8.0.25</version>
</dependency>

通过配置文件(application.yml或application.properties,两种文件均可配置,但当他们同时存在时,只有properties发挥作用,说明properties文件在IDEA中的优先级更高)
配置文件的书写方式:

# 配置数据库的连接
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/book?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
    username: root
    password: 123456
# 配置mybatis的配置
mybatis:
  # 指定mapper.xml文件存放的路径
  mapper-locations: classpath:mappers/*.xml
  # 给pojo取一个别名【可选】
  type-aliases-package: com.itheima.pojo

在yml配置文件中添加下面这段在控制台打印sql语句

# 设置日志级别
logging:
  level:
    root: info
    com.itheima.dao: debug

数据库操作

可在mapper.xml文件中书写对应的sql语句来实现数据库的查询和增删改操作:

springboot 不输出mybaits sql 日志_sql语句_07


对应的写法分别如下所示:

新增:
<!--useGeneratedKeys=true,是声明当前插入语句时自动增注解,执行成功后需要回填主键的值,keyColumn数据表的主键名称,keyProperty对象的属性-->
    <insert id="save" parameterType="user" useGeneratedKeys="true" keyColumn="id" keyProperty="id" >
        insert into user (username,password,salt,sex) value (#{user.userName},#{user.password},#{user.salt},#{user.sex});
    </insert>
修改:
<update id="update" parameterType="user">
    update user set sex=#{user.sex} where id=#{user.id}
</update>
删除:
<delete id="delete" parameterType="int">
    delete from user where id=#{id}
</delete>
数据分页查询:
<!--查询全部用户并支持分页-->
<select id="findAllForPage" resultType="user">
    select * from user limit #{start},#{size}
</select>

写一个test类进行测试(userMapper是一个mapper的实体类在test上面使用了@autowired注解)

@Test
public void testFindAllForPage(){
    int page=1;
    List<User> list = userMapper.findAllForPage((page-1)*2,2);
    System.out.println("第一页:"+list);
    page=2;
    list = userMapper.findAllForPage((page-1)*2,2);
    System.out.println("第二页:"+list);
    page=3;
    list = userMapper.findAllForPage((page-1)*2,2);
    System.out.println("第三页:"+list);
}

书写测试类的方式如下图所示:

springboot 不输出mybaits sql 日志_sql语句_08


注:

书写sql语句时列名要写数据库中的列名,注意名称的大小写,

数据库查询过滤:

查找指定用户名的方法(指定一列数据的值通过该值进行查询):

<!--查询用户-->
<select id="findByUserName" resultType="user">
    select * from user where username=#{userName}
</select>

使用注解代替xml实现CRUD

将xml中的sql写进注解中(如下图所示,但是这种方式并不好,因为它是将sql语句写在了java类里面,这样不方便管理(我不清楚是不方便管理的原因还是什么原因了)):

springboot 不输出mybaits sql 日志_sql语句_09

所谓的CRUD:

CRUD是指在做计算处理时的增加(Create)、读取查询(Retrieve)、更新(Update)和删除(Delete)几个单词的首字母简写。

Typora笔记下载:

大致内容展示:

springboot 不输出mybaits sql 日志_sql语句_10