MyBatis:mybatis入门

MyBatis

持久层框架,用于简化JDBC开发,是对原始JDBC程序的封装

持久层

数据访问层(dao),用来操作数据库

框架

一个半成品软件,一套可重用的通用软件代码模型.

JDBC

(Java DataBase Connectivity)

使用java语言操作关系型数据库的一套API

本质是sun公司官方定义的一套操作所有关系型数据库的规范(接口)

我们需要通过实现这套接口进行编程,真正执行的代码是由数据库厂商提供的驱动jar包中的实现类.

JDBC的操作步骤

创建User类接收数据

注:含下划线字段使用小驼峰进行接收,由mybatis自动映射

注册驱动

Class.forName("com.mysql.cj.jdbc.Driver");

获取连接对象

String url = "jdbc:mysql://192.168.150.101:3306/mybatis";
String username = "root";
String password = "123";
Connection connection = DriverManager.getConnection(url,username,password);

执行SQL语句,返回结果

Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery("select * from user");
List<User> userlist = new ArrayList<>();
//创建集合存放数据库中的表数据,对象每个属性对应表中每个字段

封装结果数据

while(resultSet.next()){
	int id = resultSet,getInt("id");
	String name = resultSet.getString("name");
	int age = resultSet.getInt("age");
	short gender = resultSet.getShort("gender");
	String phone = resultSet.getString("phone");
	User user = new User(id,name,age,gender,phone);
	UserList.add(user);
	//添加一行数据
	userlist.for;
}

释放资源

statement.close();
connection.close();

JDBC的缺点

数据库链接写死在java代码中

查询结果的解析及封装非常繁琐

每次查询都需要获取连接和释放连接

MyBatis的优化

将数据库链接配置在springboot的配置文件 application.properties中

mybatis自动完成对sql语句和表数据的映射封装

使用连接池技术,无需频繁创建销毁连接

MyBatis的使用

创建项目,勾选依赖

创建数据库

配置参数

定义实体类

定义mapper包和其中的接口(使用@Mapper注解,定义抽象方法加sql操作注解)

测试类注入接口对象调用方法

数据库连接池

负责对数据库连接进行分配和管理

允许应用程序重复使用一个现有的数据库连接而不是再重新创建一个

释放空闲时间超过最大空闲时间的数据库连接

从而避免因为没有数据库连接引起的数据库连接遗漏

资源重用
提升系统的响应速度
避免数据库连接遗漏

连接池的原理

在一开始就创建一些连接对象进行存储,连接数据库时只需要获取一个连接进行使用即可,在使用完成后还能还给连接池实现资源重用,节省了频繁创建连接销毁所花费的时间也提升了系统响应的速度.

连接池的使用

在pom文件中引入依赖
<dependency>
	<groupId>com.alibaba</groupId>
	<artifactId>druid-spring-boot-starter</artifactId>
	<version>1.2.8</version>
</dependency>
在application.properties中引入数据库连接配置
spring.datasource.druid.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.druid.url=jdbc:mysql://localhost:3306/mybatis
spring.datasource.druid.username=root
spring.datasource.druid.password=1234

lombok

一个实用的java工具包,通过简单的注解来简化和消除代码

@Getter/@Setter 为所有的属性提供get/set方法
@ToString 会给类自动生成易阅读的toString方法
@EqualsAndHashCode 根据类所拥有的非静态字段自动重写equals方法和hashCode方法
@Data 提供了更综合的生成代码功能(@Getter + @Setter + @ToString + @EqualsAndHashCode)
@NoArgsConstructor 为实体类生成无参的构造方法
@AllArgsConstructor 生成实体类的全参构造方法
@Slf4j 日志相关
  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值