数据库的主流技术概述

(1) SQL
SQL是Structured Query Language的缩写,中文意思为结构化查询语言,是一种用于在关系数据库中进行数据管理和操作的标准语言。SQL可以用来完成创建数据库、创建表、插入数据、查询数据、更新数据和删除数据等操作。SQL是一种非常重要的数据库编程语言,在各种企业应用程序中都有广泛应用。
(2) Mysql
MySQL是一种开源的关系型数据库管理系统(RDBMS),由瑞典MySQL AB公司开发,现在属于Oracle公司所有。MySQL是一种在Web应用程序中广泛使用的数据库,它具有高效、安全和易用的特点。 MySQL支持多种操作系统,包括Windows、Linux和UNIX等。它也非常灵活,可以与多种编程语言(如PHP、Java、Perl、C++、Python)结合使用。MySQL的开源免费特性,使得它在Web应用程序、企业基础架构和科研领域被广泛应用。
(3) JDBC
JDBC: ( Java DataBase Connectivity ),就是使用Java语言操作关系型数据库的一套标准API。
它提供了一组用于访问和操作关系数据库的接口。通过JDBC API,Java应用程序可以连接到数据库服务器,执行SQL语句,以及处理查询结果等。
使用JDBC可以实现以下功能:
• 连接到数据库
• 执行SQL语句
• 处理查询结果
• 执行存储过程和函数
• 事务控制
JDBC的工作流程:

  1. 加载JDBC驱动程序
  2. 建立数据库连接
  3. 创建Statement对象或PrepareStatement对象
  4. 执行SQL语句
  5. 处理SQL执行结果
  6. 关闭数据库连接
    以下是一个使用JDBC连接到MySQL数据库的示例代码:
    (不用掌握,看懂就行)
    import java.sql.*;

public class JdbcDemo {
public static void main(String[] args) {

 try {
   // 加载JDBC驱动程序
   Class.forName("com.mysql.jdbc.Driver");
   
   // 建立数据库连接
   String url = "jdbc:mysql://localhost:3306/your_database_name";
   String user = "your_username";
   String password = "your_password"; 
   Connection conn = DriverManager.getConnection(url, user, password);
   
   // 创建Statement对象
   Statement stmt = conn.createStatement();
   
   // 执行SQL语句
   String sql = "SELECT * FROM your_table_name";
   ResultSet rs = stmt.executeQuery(sql);
   
   // 处理查询结果
   while (rs.next()) {
     int id = rs.getInt("id");
     String name = rs.getString("name");
     System.out.println("id: " + id + ", name: " + name);
  }
   
   // 关闭数据库连接
   rs.close();
   stmt.close();
   conn.close();
} catch (ClassNotFoundException e) {
   e.printStackTrace();
} catch (SQLException e) {
   e.printStackTrace();
}

}
}
(4) Mybatis
Mybatis框架,就是对原始的JDBC程序的封装。
Mybatis是一款开源的Java持久层框架,它可以将Java对象与关系型数据库之间进行映射,使Java程序员可以在不必编写过多的JDBC代码的情况下进行CRUD(增删改查)操作。Mybatis主要由三部分组成:SQL映射文件、Java Bean以及映射配置文件。
Mybatis的核心优势如下:
• 简化SQL语句:Mybatis使用半自动化的方式工作,开发人员可以直接使用SQL语句来操作数据库,同时也支持动态SQL语句的使用。
• 更好的可维护性:将SQL语句与Java代码分离可以提高代码的可维护性和可读性。
• 易于集成:Mybatis可以与Spring、Spring Boot等多种框架无缝集成,使开发更加便捷。
Mybatis的使用流程:

  1. 编写映射配置文件。在映射配置文件中定义Java Bean与SQL语句之间的映射关系。
  2. 初始化SqlSessionFactory对象。SqlSessionFactory对象是Mybatis的工厂对象,用于创建SqlSession对象。
  3. 获取SqlSession对象。SqlSession对象是操作数据库的核心对象,它提供了操作数据库所需的所有方法。
  4. 调用SqlSession对象的方法来操作数据库。其中包括增、删、改、查、事务控制等方法。
    以下是一个使用Mybatis操作数据库的示例代码:
  5. 定义Java Bean
    public class User {
    private int id;
    private String name;
    private int age;

// getter and setter methods
}
2. 编写SQL映射文件

<?xml version="1.0" encoding="UTF-8" ?> SELECT * FROM user WHERE id = #{id} INSERT INTO user (name, age) VALUES (#{name}, #{age}) UPDATE user SET name = #{name}, age = #{age} WHERE id = #{id} DELETE FROM user WHERE id = #{id} 3. 创建SqlSessionFactory对象 在Mybatis中,SqlSessionFactory是一个非常重要的对象。它充当了SqlSession的工厂,并负责将mapper配置文件加载到内存中,并将Mapper对象注册到Mybatis的MapperRegistry中。 String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); 4. 获取SqlSession对象 可以通过SqlSessionFactory对象来创建SqlSession对象,以便进行数据库操作。通常情况下,一个SqlSession对象对应一个线程,不能共用,使用完毕后要进行关闭。 SqlSession sqlSession = sqlSessionFactory.openSession(); 5. 调用SqlSession对象的方法来操作数据库 调用SqlSession对象的方法来进行数据的增、删、改、查等操作。 // 获取单个用户 UserMapper userMapper = sqlSession.getMapper(UserMapper.class); User user = userMapper.getUserById(1);

// 插入新用户
User newUser = new User();
newUser.setName(“小明”);
newUser.setAge(20);
userMapper.insertUser(newUser);

// 更新用户
User updateUser = new User();
updateUser.setId(1);
updateUser.setName(“小红”);
updateUser.setAge(30);
userMapper.updateUser(updateUser);

// 删除用户
userMapper.deleteUserById(1);

// 提交事务
sqlSession.commit();

// 关闭SqlSession
sqlSession.close();
(5) 数据库连接池
数据库连接池是个容器,负责分配、管理数据库连接(Connection)
没有使用数据库连接池:
• 客户端执行SQL语句:要先创建一个新的连接对象,然后执行SQL语句,SQL语句执行后又需要关闭连接对象从而释放资源
• 每次执行SQL时都需要创建连接、销毁链接,这种频繁的重复创建销毁的过程是比较耗费计算机的性能。
使用数据库连接池:
• 程序在启动时,会在数据库连接池(容器)中,创建一定数量的Connection对象
• 客户端在执行SQL时,先从连接池中获取一个Connection对象,然后在执行SQL语句,SQL语句执行完之后,释放Connection时就会把Connection对象归还给连接池(Connection对象可以复用)
• 客户端获取到Connection对象,但是Connection并没有去访问数据库,数据库连接池发现Connection空闲时间 > 连接池中预设的最大空闲时间,数据库连接池就会自动释放掉这个连接对象
数据库连接池的好处:

  1. 资源重用
  2. 提升系统响应速度
  3. 避免数据库连接遗漏
    常见的数据库连接池:
    • C3P0
    • DBCP
    • Druid (是阿里巴巴开源的数据库连接池项目,功能强大,性能优秀,是Java语言最好的数据库连接池之一)
    • Hikari (springboot默认)

把默认的数据库连接池切换为Druid数据库连接池:
参考官方地址:https://github.com/alibaba/druid/tree/master/druid-spring-boot-starter

  1. 在pom.xml文件中引入依赖
    com.alibaba
    druid-spring-boot-starter
    1.2.8
  2. 在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
  • 24
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值