【day5】实训日志5(mysql,mybatis的依赖,yml配置文件内容,springboot整合mybatis后的数据库操作)

导读:本篇文章讲解 【day5】实训日志5(mysql,mybatis的依赖,yml配置文件内容,springboot整合mybatis后的数据库操作),希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

上午:

什么是url?

url的各个板块划分和内容:
url的详解
各个注解的知识点:

下午:

JDBC

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

1、通过jdbc连接数据库:
通过jdbc建立连接
2、预编译指令 (执行一个sql语句)
3、将数据映射到pojo类上:
在这里插入图片描述
4、第四步应该放到finally中去,以便能够将连接关闭(即使中途抛出异常也能够关闭连接,否则当连接抛出异常时,不能将连接关闭,导致占用,这是一种属于安全意识方面的东西)
在这里插入图片描述

什么是ORM?

ORM(Object Relational Mapping):对象关系映射,指把java中对象的字段与数据库表中的列进行意义对应
在这里插入图片描述
ORM功能:

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

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

mybatis:

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

相关属性

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语句来实现数据库的查询和增删改操作:
在这里插入图片描述
对应的写法分别如下所示:

新增:

<!--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);
}

书写测试类的方式如下图所示:
在这里插入图片描述
注:
书写sql语句时列名要写数据库中的列名,注意名称的大小写,

数据库查询过滤:

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

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

使用注解代替xml实现CRUD

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

所谓的CRUD:

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

Typora笔记下载:

大致内容展示:
在这里插入图片描述
课堂笔记下载

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/114570.html

(0)
Java光头强的头像Java光头强

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!