二、入门案例

二、入门案例

准备工作

演示数据准备

  • 创建表
CREATE DATABASE `mybatis_plus` /*!40100 DEFAULT CHARACTER SET utf8mb4 */;
use `mybatis_plus`;
CREATE TABLE `user` (
`id` bigint(20) NOT NULL COMMENT '主键ID',
`name` varchar(30) DEFAULT NULL COMMENT '姓名',
`age` int(11) DEFAULT NULL COMMENT '年龄',
`email` varchar(50) DEFAULT NULL COMMENT '邮箱',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  • 添加数据
INSERT INTO user (id, name, age, email) VALUES
(1, 'Jone', 18, 'test1@baomidou.com'),
(2, 'Jack', 20, 'test2@baomidou.com'),
(3, 'Tom', 28, 'test3@baomidou.com'),
(4, 'Sandy', 21, 'test4@baomidou.com'),
(5, 'Billie', 24, 'test5@baomidou.com');

依赖注入

<dependency>
<!--Mybatis-Plus-->
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
<dependency>
<!--数据库-->
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<dependecy/>

数据库配置

spring:
	# 配置数据源信息
	datasource:
	# 配置数据源类型
		type: com.zaxxer.hikari.HikariDataSource
		# 配置连接数据库信息
		driver-class-name: com.mysql.cj.jdbc.Driver
		url: jdbc:mysql://localhost:3306/mybatis_plus?characterEncoding=utf-
		8&useSSL=false
		username: root
		password: 123456

spring.datasource.type 配置数据源类型,设置数据源类型的属性。
它允许开发者指定应用程序应该使用哪种数据库连接池来管理数据库连接。

可选择的配置源如下:

  1. HikariCP (com.zaxxer.hikari.HikariDataSource)
    性能优越:目前Java平台上最快的连接池之一,它提供了极低的延迟和高吞吐量。
    轻量级:HikariCP 的设计非常注重减少内存占用,这有助于在资源受限的环境中提高性能。
    可靠性:HikariCP 提供了稳定的数据库连接管理,减少了连接泄漏和死锁的风险。
    易于配置:HikariCP 的配置相对简单,且支持多种配置方式,包括通过Spring Boot的配置文件。

  2. Apache DBCP2 (org.apache.commons.dbcp2.BasicDataSource)
    历史悠久:Apache DBCP 是较早的Java数据库连接池之一,拥有广泛的用户基础和社区支持。
    功能丰富:DBCP2 提供了丰富的配置选项,允许开发者根据需要进行详细调整。
    兼容性:由于历史悠久,DBCP2 与许多旧版本的数据库和Java环境兼容。

  3. Apache Tomcat JDBC Pool (org.apache.tomcat.jdbc.pool.DataSource)
    集成友好:Tomcat JDBC Pool 是Tomcat服务器自带的连接池,与Tomcat服务器集成紧密,适用于基于Tomcat的应用部署。
    性能优化:Tomcat JDBC Pool 提供了一些性能优化特性,如连接池预热、连接池监控等。
    易用性:对于使用Tomcat作为应用服务器的开发者来说,Tomcat JDBC Pool 是一个自然的选择。

  4. Druid (com.alibaba.druid.pool.DruidDataSource)
    监控和扩展性强:Druid 提供了强大的监控和扩展功能,包括SQL监控、慢查询日志等,有助于开发者优化数据库操作。
    防SQL注入:Druid 提供了内置的防SQL注入功能,增强了应用程序的安全性。
    社区活跃:Druid 是阿里巴巴开源的数据库连接池,拥有活跃的社区和持续的更新。

spring.datasource.driver-class-name:用于指定用于连接数据库的 驱动程序的完全限定类名
这些驱动类名用于在Java应用程序中加载相应的数据库驱动程序,以便能够与数据库建立连接并执行SQL语句。

  1. MySQL
    驱动类名:com.mysql.cj.jdbc.Driver
    新版本使用com.mysql.cj.jdbc.Driver,旧版本com.mysql.jdbc.Driver
    JDBC URL示例:jdbc:mysql://localhost:3306/mydatabase
  2. Oracle
    驱动类名:oracle.jdbc.driver.OracleDriver
    JDBC URL示例:jdbc:oracle:thin:@localhost:1521:orcl(其中orcl是数据库的SID或服务名)
  3. SQL Server
    驱动类名:com.microsoft.sqlserver.jdbc.SQLServerDriver(较新的版本中常用的)
    JDBC URL示例:jdbc:sqlserver://localhost:1433;databaseName=mydatabase
  4. DB2
    驱动类名:com.ibm.db2.jcc.DB2Driver(IBM DB2数据库的JDBC驱动类名)
    JDBC URL示例:jdbc:db2://localhost:50000/mydatabase
  5. PostgreSQL
    驱动类名:org.postgresql.Driver(PostgreSQL数据库的JDBC驱动类名)
    JDBC URL示例:jdbc:postgresql://localhost/mydatabase

启动类

@SpringBootApplication
// @MapperScan 注解主要用于自动扫描并注册 Mapper 接口
@MapperScan("com.test.mybatisplus.mapper")
public class MybatisplusApplication {
public static void main(String[] args) {
SpringApplication.run(MybatisplusApplication.class, args);
}
}

实体类

@Data //lombok注解
public class User {
private Long id;
private String name;
private Integer age;
private String email;
}

添加mapper

BaseMapper是MyBatis-Plus提供的模板mapper,其中包含了基本的CRUD方法,泛型为操作的实体类型

public interface UserMapper extends BaseMapper<User> {
}

添加配置

它是 MyBatis 提供的几种日志实现之一,用于将 SQL 语句及其执行结果输出到标准输出(通常是控制台)。这对于调试和跟踪 SQL 语句的执行非常有用。

# 配置MyBatis日志
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

测试

@SpringBootTest
public class MybatisPlusTest {
@Autowired
private UserMapper userMapper;
@Test
public void testSelectList(){
	//selectList()根据MP内置的条件构造器查询一个list集合,null表示没有条件,即查询所有
	userMapper.selectList(null).forEach(System.out::println);
	}
}

结果
结果
日志输出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值