手把手教会你如何自定义mini-mapper

本文详述了如何封装JDBC,创建mini-mapper,包括JDBC简介、环境准备、MiniJdbcTemplate封装、LambdaQueryWrapper实现及AbstractBaseMapper的定义。通过实例展示了增删改查操作,并提醒读者在实际开发中考虑使用成熟框架。
摘要由CSDN通过智能技术生成

 

本文向大家介绍对JDBC简单的封装,自定义mini-mapper,希望以此加深大家对此技术的理解。


一、JDBC简介

JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。

Java 具有坚固、安全、易于使用、易于理解和可从网络上自动下载等特性,是编写数据库应用程序的杰出语言。所需要的只是 Java应用程序与各种不同数据库之间进行对话的方法。

数据库是实现持久化的一种途径,而JDBC则是通向数据库的桥梁。


二、环境准备

1、引入maven依赖

<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>${mysql-connector.version}</version>
  <scope>runtime</scope>
</dependency>
<!-- 引入lombok,去除冗余代码 -->
<dependency>
  <groupId>org.projectlombok</groupId>
  <artifactId>lombok</artifactId>
  <version>${lombok.version}</version>
  <scope>provided</scope>
</dependency>
<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.12</version>
  <scope>test</scope>
 </dependency>

2、引入配置文件jdbc.properties

jdbc.driveClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://127.0.0.1:3306/mini_mapper?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&verifyServerCertificate=false&useSSL=false&useAffectedRows=true&zeroDateTimeBehavior=convertToNull
jdbc.username=root
jdbc.password=pf1234

3、新建测试数据表

CREATE TABLE `t_user` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键id',
  `name` varchar(255) DEFAULT '' COMMENT '姓名',
  `age` tinyint(3) unsigned DEFAULT '0' COMMENT '年龄',
  `birthday` date DEFAULT NULL COMMENT '生日',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;


三、封装MiniJdbcTemplate

MiniJdbcTemplate提供对数据库表的增删改查操作

1、定义JdbcUtil

获取数据库链接,关闭数据库链接,放在JdbcUtil里维护

public final class JdbcUtil {
    
    /**
    * 数据库链接
    */
    private static String url = null;
    
    /**
    * 用户名
    */
    private static String username = null;
    
    /**
    * 密码
    */
    private static String password = null;
    
    static {
        try (
            InputStream inputStream = JdbcUtil.class.getClassLoader().getResourceAsStream("jdbc.properties")
        ) {
            Properties properties = new Properties();
            properties.load(inputStream);
            String driveClassName = properties.getProperty("jdbc.driveClassName");
            Class.forName(driveClassName);
            url = properties.getProperty("jdbc.url");
            username = properties.getProperty("jdbc.username");
            password = properties.getProperty("jdbc.password");
        } catch (Exception e) {
            throw new RuntimeException("加载驱动异常", e);
        }
    }
    
    private JdbcUtil() {
    }
    
    
    
    /**
    * 获取数据库链接
    */
    public static Connection getConnection() throws SQLException {
        return DriverManager.getConnection(url, username, password);
    }
    
    /**
    * 关闭链接
    */
    public static void close(Connection connection, PreparedStatement preparedStatement, ResultSet resultSet) throws SQLException {
        if (resultSet != null) {
            resultSet.close();
        }
        
        if (preparedStatement != null) {
            preparedStatement.close();
        }
        
        if (connection != null) {
     
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值