Spring Boot开发 (2) :MyBatis

JavaWeb开发——SSM基础 数据库后端操作:MyBatis

MyBatis官网:https://mybatis.org/mybatis-3/zh_CN/index.html%5D%28https://mybatis.org/mybatis-3/zh_CN/index.html

MySQL数据库基础教程

在这里插入图片描述

在这里插入图片描述


1 概述

JDBC(Java DataBase Connectivity)是sun公司官方定义的一套使用Java语言操作所有关系型数据库的API(规范)。各个数据库厂商去实现这套接口,提供数据库驱动jar包。我们可以使用这套接口(JDBC)编程,真正执行的代码是驱动jar包中的实现类。

MyBatis(官网:https://mybatis.org/mybatis-3/zh_CN/index.html)是一款优秀的持久层框架,用于简化JDBC的开发。

  1. 准备工作(创建SpringBoot工程、数据库表user、实体类User)
    在这里插入图片描述
  2. 在application.properties中配置数据库连接:引入MyBatis的相关依赖,配置数据库的连接信息——四要素
    # application.properties
    # 驱动类名称
    spring.datasource.driver-class-name = com.mysql.cj.jdbc.Driver
    # 数据库连接的url
    spring.datasource.url = jdbc:mysql://localhost:3306/数据库
    # 连接数据库的用户名
    spring.datasource.username = 用户名
    # 连接数据库的密码
    spring.datasource.password = 密码
    
  3. 用注释@Mapper定义mapper接口,并在操作注释中编写SQL语句(或者用XML映射文件):运行时会自动生成该接口的实体类对象(代理对象),并将该对象成为Bean交给IOC容器管理
    /* mapper.UserMapper.java */
    @Mapper
    public interface UserMapper {
         
    	@Select("select * from user")
    	public List<User> list();	// 查询全部用户信息
    }
    
  4. 单元测试:使用依赖注入(DI)
    /* SpringbootMybatisQuickstartApplicationTests.java */
    @SpringBootTest
    class SpringbootMybatisQuickstartApplicationTests {
         
    	@Autowired
    	private UserMapper userMapper;
    	
    	@Test
    	public void testListUser() {
         
    		List<User> userList = userMapper.list();
    		userList.stream().forEach(System.out::println);
    	}
    }
    

默认在MyBatis中编写SQL语句是不识别的,可如下图右键配置,并在Idea中配置MySQL数据库的连接(参见MySQL数据库基础教程)以识别表信息

在这里插入图片描述

要想查看MyBatis的日志,可以在application.properties中添加以下内容:

# 指定mybatis输出日志的位置,输出控制台
mybatis.configuration.log-impl = org.apache.ibatis.logging.stdout.StdOutImpl

2 数据库连接池

数据库连接池是负责分配、管理数据库连接(Connection)的容器。它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个。释放空闲时间超过最大空闲时间的连接,来避免因为没有释放连接而引起的数据库连接遗漏。

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

在这里插入图片描述

DataSource:sun公司官方提供的数据库连接池标准接口,由第三方组织实现此接口,用于获取连接

Connection getConnection() throws SQLException;

在这里插入图片描述
Hikari连接池是SpringBoot默认的连接池。

Druid(德鲁伊)连接池是阿里巴巴开源的数据库连接池项目,功能强大,性能优秀,是Java语言最好的数据库连接池之一。切换成Druid数据库连接池只需引入起步依赖druid-spring-boot-starter,详见:官方文档


3 lombok工具包

Lombok是一个实用的lava类库,能通过注解的形式自动生成构造器、getter/setter、equals、hashCode、toString等方法,并可以自动化生成日志变量,简化java开发、提高效率。Lombok会在编译时自动生成对应的java代码,使用时需要安装一个lombok的插件(Idea自带)并引入依赖lombok

常用的Lombok注解 作用
@Getter/@Setter 为所有的属性提供 get/set 方法
@ToString 会给类自动生成易阅读的 toString 方法
@EqualsAndHashCode 根据类所拥有的非静态字段自动重写 equals 方法和 hashCode 方法
@Data 提供了更综合的生成代码功能(@Getter+@Setter+@ToString+@EqualsAndHashCode
@NoArgsConstructor 为实体类生成无参构造器
@AllArgsConstructor 为实体类生成除了static修饰的字段外的全参构造器
@Data
@NoArgsConstructor
@AllArgsConstructor
public class Emp {
   
	private Integer id;
	private String username;
	private String password;
	private String name;
	private Short gender;	// 性别:1男,2女
	private String image;	// 图像url
	private Short job;		// 职位:1班主任,2讲师,3保安
	private LocalDate entrydate;<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Akira37

💰unneeded

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值