【2.索引,事务,与 JDBC】

文章介绍了数据库索引的概念、作用以及创建与删除方法,强调了其对提升查询性能的重要性。同时,讨论了事务的基本原理和使用,展示了如何在数据库操作中使用事务确保数据一致性。最后,讲解了JDBC在数据库连接中的角色,包括其优势和使用步骤,特别是通过数据源建立连接和执行SQL语句的过程。
摘要由CSDN通过智能技术生成

索引

索引的概念

索引是一种特殊的文件,包含着对数据表里所有记录的引用指针。可以对表中的一列或多列创建索引,
并指定索引的类型,各类索引有各自的数据结构实现

索引的作用

1.数据库中的表、数据、索引之间的关系,类似于书架上的图书、书籍内容和书籍目录的关系。
2.索引所起的作用类似书籍目录,可用于快速定位、检索数据。
3.索引对于提高数据库的性能有很大的帮助。

创建索引

创建主键约束(PRIMARY KEY)、唯一约束(UNIQUE)、外键约束(FOREIGN KEY)时,会自动创建
对应列的索引。

show index from 表名

对于非主键、非唯一约束、非外键的字段,可以创建普通索引

create index 索引名 on 表名(字段名);
删除索引
drop index 索引名 on 表名;

事务

事务的概念

事务指逻辑上的一组操作,组成这组操作的各个单元,要么全部成功,要么全部失败。
在不同的环境中,都可以有事务。对应在数据库中,就是数据库事务。

事务的使用

(1)开启事务:start transaction;
(2)执行多条SQL语句
(3)回滚或提交:rollback/commit

start transaction;
-- 阿里巴巴账户减少2000
update accout set money=money-2000 where name = '阿里巴巴';
-- 四十大盗账户增加2000
update accout set money=money+2000 where name = '四十大盗';
commit;

JDBC

JDBC的概念

JDBC,即Java Database Connectivity,java数据库连接。是一种用于执行SQL语句的Java API,它是
Java中的数据库连接规范。这个API由 java.sql.,javax.sql. 包中的一些类和接口组成,它为Java开发人员操作数据库提供了一个标准的API,可以为多种关系数据库提供统一访问。

优势

JDBC优势:
1.Java语言访问数据库操作完全面向抽象接口编程
2.开发数据库应用不用限定在特定数据库厂商的API
3.程序的可移植性大大增强

JDBC的使用

1.创建并初始化一个数据源并建立数据库链接

        //1. 创建并初始化一个数据源
        DataSource dataSource = new MysqlDataSource();
        ((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/learn01?characterEncoding=utf8&useSSL=false");
        ((MysqlDataSource)dataSource).setUser("root");
        ((MysqlDataSource)dataSource).setPassword("123456");

        //2. 和数据可服务器建立连接
        Connection connection = dataSource.getConnection();
  1. 构建 SQL 语句
//3. 构造 SQL 语句
        System.out.println("请输入学号");
        int id = scanner.nextInt();
        System.out.println("请输入姓名");
        String name = scanner.next();
        System.out.println("请输入班级号");
        int classId = scanner.nextInt();
        String sql = "insert into student values (?,?,?)";
        PreparedStatement statement = connection.prepareStatement(sql);
        statement.setInt(1,id);
        statement.setString(2,name);
        statement.setInt(3,classId);
        System.out.println(statement);
  1. 执行 SQL语句
        //4. 执行 SQL 语句
        int ret = statement.executeUpdate();
        System.out.println(ret);
  1. 释放必要资源
        //5. 释放必要资源
        statement.close();
        connection.close();

常见问题

数据库的连接方式

Connection接口实现类由数据库提供,获取Connection对象通常有两种方式:
一种是通过DriverManager(驱动管理类)的静态方法获取
一种是通过DataSource(数据源)对象获取。实际应用中会使用DataSource对象。
区别:

  1. DriverManager类来获取的Connection连接,是无法重复利用的,每次使用完以后释放资源
    时,通过connection.close()都是关闭物理连接。
  2. DataSource提供连接池的支持。连接池在初始化时将创建一定数量的数据库连接,这些连接
    是可以复用的,每次使用完数据库连接,释放资源调用connection.close()都是将
    Conncetion连接对象回收。
Statement对象

Statement对象主要是将SQL语句发送到数据库中。JDBC API中主要提供了三种Statement对象。
1.Statement 用于执行不带参数的简单 SQL 语句
2.PreparedStatement 用于执行带参数或不带参数的 SQL语句 ,SQL语句会预编译在数据库系统,执行速度快于 Statement 对象
3.CallableStatement 用于执行数据库存储过程的调用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值