重庆建设车业官方网站,网站升级 云南省建设注册考试中心,建网站论坛,傻瓜式装修设计软件文章目录1 Mybatis 介绍1.1 快速入门2 JDBC2.1 JDBC介绍2.3 JDBC问题分析2.4 Mybatis与JDBC技术对比3 数据库连接池3.1 数据库连接池介绍3.2 数据库连接池产品产品3.3 Druid引入项目4lombok4.1 lombok介绍4.2 lombok使用4.2.1 在pom.xml文件中引入依赖4.2.2 pojo类代码引入1 My…
文章目录1 Mybatis 介绍1.1 快速入门2 JDBC2.1 JDBC介绍2.3 JDBC问题分析2.4 Mybatis与JDBC技术对比3 数据库连接池3.1 数据库连接池介绍3.2 数据库连接池产品产品3.3 Druid引入项目4lombok4.1 lombok介绍4.2 lombok使用4.2.1 在pom.xml文件中引入依赖4.2.2 pojo类代码引入1 Mybatis 介绍 什么是MyBatis?MyBatis是一款持久层框架用于简化JDBC开发。提升开发效率、降低资源浪费 持久层指的是数据访问层(dao)用来操作数据库。 1.1 快速入门
1.1.1 SQL数据准备
-- 用户表
create table user(id int unsigned primary key auto_increment comment ID,name varchar(100) comment 姓名,age tinyint unsigned comment 年龄,gender tinyint unsigned comment 性别, 1:男, 2:女,phone varchar(11) comment 手机号
) comment 用户表;-- 测试数据
insert into user(id, name, age, gender, phone) VALUES (null,白眉鹰王,55,1,18800000000);
insert into user(id, name, age, gender, phone) VALUES (null,金毛狮王,45,1,18800000001);
insert into user(id, name, age, gender, phone) VALUES (null,青翼蝠王,38,1,18800000002);
insert into user(id, name, age, gender, phone) VALUES (null,紫衫龙王,42,2,18800000003);
insert into user(id, name, age, gender, phone) VALUES (null,光明左使,37,1,18800000004);
insert into user(id, name, age, gender, phone) VALUES (null,光明右使,48,1,18800000005);1.1.2 pojo实体类:
public class User {private Integer id; //id主键private String name; //姓名private Short age; //年龄private Short gender; //性别private String phone; //手机号//省略GET, SET方法
}1.1.3 application.properties配置文件:
# 应用名称
spring.application.namespringboot_mybatis-crud
# 数据库驱动
spring.datasource.driver-class-namecom.mysql.cj.jdbc.Driver
# 数据源名称
spring.datasource.namedefaultDataSource
# 数据库连接地址
spring.datasource.urljdbc:mysql://localhost:3306/mybatis?serverTimezoneUTC
# 数据库用户名密码
spring.datasource.usernameroot
spring.datasource.password123456
#下面这些内容是为了让MyBatis映射
#指定Mybatis的Mapper文件
mybatis.mapper-locationsclasspath:mappers/*xml
#指定Mybatis的实体目录
mybatis.type-aliases-packagecom.sesameseed.mybatis.entity
# 配置mybatis的sql语句输出到控制台
mybatis.configuration.log-implorg.apache.ibatis.logging.stdout.StdOutImpl1.1.4 mapper数据库操作类
import com.itheima.pojo.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import java.util.List;Mapper//生成该接口的实现类并放到spring容器中
public interface UserMapper {//查询所有用户数据Select(select id, name, age, gender, phone from user)public ListUser list();}注解解释Mapper1、表示是mybatis中的Mapper接口2、注意程序运行时框架会自动生成接口的实现类对象(代理对象)并交给Spring的IOC容器管理Select代表的就是select查询用于书写select查询语句
1.1.5 单元测试类
SpringBootTest
public class MybatisQuickstartApplicationTests {Autowiredprivate UserMapper userMapper;Testpublic void testList(){ListUser userList userMapper.list();for (User user : userList) {System.out.println(user);}}
}2 JDBC
2.1 JDBC介绍 JDBC ( Java DataBase Connectivity )使用Java语言操作关系型数据库的一套API。 注意使用这套接口(JDBC)编程真正执行是驱动jar包中的实现类 2.3 JDBC问题分析 原始JDBC程序存在以下问题 数据库链接的四要素(驱动、链接、用户名、密码)全部硬编码在java代码中查询结果的解析及封装非常繁琐每次查询数据库都需获取连接,操作完毕释放连接, 资源浪费, 性能降低 2.4 Mybatis与JDBC技术对比 Mybatis中 数据库连接四要素(驱动、链接、用户名、密码)都配置在springboot默认配置文件 application.properties中查询结果解析及封装由mybatis自动完成映射封装我们无需关注在mybatis中使用了数据库连接池技术从而避免频繁创建连接、销毁连接而带来的资源浪费。Mybatis提升开发效率、降低资源浪费 3 数据库连接池
3.1 数据库连接池介绍 没有使用数据库连接池 客户端执行SQL语句要先创建新连接对象然后执行SQL语句执行后又需关闭连接对象、释放资源每次执行SQL都需要创建连接、销毁链接频繁重复创建销毁的过程是浪费计算机性能。 数据库连接池是个容器负责分配、管理数据库连接(Connection) 程序在启动时会在数据库连接池(容器)中创建一定数量的Connection对象 允许应用程序重复使用一个现有数据库连接而不重新建立 客户端在执行SQL时先从连接池中获取一个Connection对象然后再执行SQL语句SQL执行完后释放Connection时就会把Connection对象归还给连接池Connection对象可以复用客户端获取到Connection对象但是Connection对象并没有去访问数据库(处于空闲)数据库连接池发现Connection对象的空闲时间 连接池中预设的最大空闲时间此时数据库连接池会自动释放掉这个连接对象。 数据库连接池的好处 1. 资源重用 2. 提升系统响应速度 3. 避免数据库连接遗漏 3.2 数据库连接池产品产品 常见的数据库连接池C3P0、DBCP、Druid、Hikari (springboot默认)现在使用更多的是Hikari、Druid 性能更优越 Hikari追光者 [默认的连接池] Druid德鲁伊 Druid连接池是阿里巴巴开源的数据库连接池项目功能强大性能优秀是Java语言最好的数据库连接池之一 Druid参考官方地址https://github.com/alibaba/druid/tree/master/druid-spring-boot-starter 3.3 Druid引入项目
3.3.1 在pom.xml文件中引入依赖
dependency!-- Druid连接池依赖 --groupIdcom.alibaba/groupIdartifactIddruid-spring-boot-starter/artifactIdversion1.2.8/version
/dependency3.3.2 在application.properties中引入数据库连接配置
# 应用名称
spring.application.namespringboot_mybatis-crud
# 数据库驱动
spring.datasource.driver-class-namecom.mysql.cj.jdbc.Driver
# 数据源名称
spring.datasource.namedefaultDataSource
# 数据库连接地址
spring.datasource.urljdbc:mysql://localhost:3306/mybatis?serverTimezoneUTC
# 数据库用户名密码
spring.datasource.usernameroot
spring.datasource.password123456
#下面这些内容是为了让MyBatis映射
#指定Mybatis的Mapper文件
mybatis.mapper-locationsclasspath:mappers/*xml
#指定Mybatis的实体目录
mybatis.type-aliases-packagecom.sesameseed.mybatis.entity# 配置mybatis的sql语句输出到控制台
mybatis.configuration.log-implorg.apache.ibatis.logging.stdout.StdOutImpl4lombok
4.1 lombok介绍 Lombok是一个实用的Java类库可以通过简单注解来简化、消除一些必须有但臃肿的Java代码。 注解作用Getter/Setter为所有的属性提供get/set方法ToString会给类自动生成易阅读的 toString 方法EqualsAndHashCode根据类所拥有的非静态字段自动重写 equals 方法和 hashCode 方法DataGetter Setter ToString EqualsAndHashCodeNoArgsConstructor为实体类生成无参的构造器方法AllArgsConstructor为实体类生成除了static修饰的字段之外带有各参数的构造器方法。
4.2 lombok使用
4.2.1 在pom.xml文件中引入依赖
!-- 在springboot的父工程中已经集成了lombok并指定了版本号故当前引入依赖时不需要指定version --
dependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactId
/dependency4.2.2 pojo类代码引入
package com.sesameseed.pojo;import lombok.*;//Getter
//Setter
//ToString
//EqualsAndHashCodeData //替代上边4个不包含下方四个NoArgsConstructor //无参构造
AllArgsConstructor //全参构造
public class User {private Integer id;private String name;private Short age;private Short gender;private String phone;
}