jdbc

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: 全称:Java DataBase Connectivity, 意思就是 java连接数据库用到的,用来操作不同数据库的。

jdbc


全称:Java DataBase Connectivity,       意思就是 java连接数据库用到的,用来操作不同数据库的。


jdbc 出现原因:  数据库可能有好多种,比如mysql,oracl,db2等数据库,java 需要操作不同数据库,需要不同的实现,就很乱,特别麻烦,不是很规范,为了解决这个问题,Java就开发了一种接口规范,让不同的数据库去实现,通过不同厂商的是实现产生很多实现类,java将这些类(jar包)导入就可以操作不同数据库。


jdbc编写入门:1.加载Driver 驱动  个人理解  (就是创建驱动实现类对象,调不同方法实现)


                          2.获取连接得到Connection


                          3.执行增删改查 -发送sql给mysql 执行sql语句返回结果  Statement


                          4.释放资源-关闭连接  (求解答   Java中什么样就算是一种资源链接,需要关闭,就是java去操作别的程序吗)


ResultSet(结果集) sql查询语句返回结果  一行一行的形式返回


PreparedStatement 对sql语句预处理 ,防止sql注入(特殊手段(字符组合)破环数据库资源),是Statement子类,也是执行静态sql语句,
减少编译次数,效率高  (这里不懂)


jdbc 事务(不懂先看 mysql 事务,资源)


mysql事务默认是自动提交的 ,需要开启事务方法使用:


1.connect.setAutoCommit(false); 开启事务


2.connect.rollback();  回滚


3.connect.commit(); 提交事务


批处理(将很多sql语句打包,一起发送到mysql 执行)


需求,我们向数据库添加数据inster 3000条数据,我们一条一条执行特别浪费网络资源,执行时间也长,这时候就需要批处理


使用方法:


@Test
 public void noBath() throws Exception {
        //JdbcUtils  这个是我自己封装的 ,无法导入其他资源包
     Connection connection = JdbcUtils.getConnection();
     PreparedStatement preparedStatement = connection.prepareStatement("insert into t_user (name) values (?)");
     for (int i = 0; i < 5900; i++) {
         preparedStatement.setString(1,"java"+i);
         //将很多sql语句存储起来
         preparedStatement.addBatch();
         if ((i+1)%500 == 0) {
             //执行SQL语句
             preparedStatement.executeBatch();
             //清空batch 
             preparedStatement.clearBatch();
         }
     }
     JdbcUtils.close(null,preparedStatement,connection);
 }

数据连接池:


出现原因:每次去连接connect 数据库时,直接去获取连接资源,比较慢,同时一个数据库同时支持1000个连接,Java同时2000个连接过去直接导致mysql数据库瘫痪,无法控制最大连接数,这时  连接池就出现了 比如c3p0   阿里 Druid连接池


连接池原例图:




原理解释:就是连接池帮助我们创建好一定连接资源,我们直接从连接池拿取连接,用完再放回连接池,帮助我们管理数据库连接。

使用实现:
@Test
public void Druid() throws Exception {
    //创建properties对象,读取配置文件
    Properties properties = new Properties();
    //这里加载的资源时druid配置好的连接规范
    properties.load(new FileInputStream("src\\druid.properties"));
    //创建一个指定数据源的连接池
    DataSource dataSource = DruidDataSourceFactory.createDataSource(properties);
    //从连接池拿取资源
    Connection connection = dataSource.getConnection();
    System.out.println("连接成功");
    //不是真正意义上关闭,而是放回连接池资源啊
    connection.close();
}


相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
4月前
|
SQL Java 关系型数据库
JDBC详解
Java Database Connectivity(JDBC)是Java语言中用于访问关系型数据库的标准接口,定义了一组API,使Java程序能以统一方式连接、访问和操作不同关系型数据库,简化数据库操作,提高Java应用程序的可移植性和可维护性。使用JDBC进行数据库操作主要包括创建数据源对象、建立连接、构造和执行SQL语句及释放资源等步骤。此外,还可以使用Set系列方法设置值,并使用get系列方法获取查询结果。
117 2
JDBC详解
|
4月前
|
SQL Java 关系型数据库
|
4月前
|
SQL 数据库
jdbc10
jdbc10
34 1
|
8月前
|
SQL Java 数据库连接
JDBC是真的啰里啰嗦啊-但是很重要!(下)
JDBC是真的啰里啰嗦啊-但是很重要!
33 1
|
XML 存储 Java
什么是jdbc?为什么要用jdbc
什么是jdbc?为什么要用jdbc
|
8月前
|
存储 Java 数据库连接
JDBC简单总结
JDBC简单总结
|
缓存 druid Java
JDBC2.0
JDBC2.0在1.0版本java.sql.*上增加了一个扩展包javax.sql.*包,这个包里面包含两个接口: 1.DataSource,数据源。 2.ConnectionPoolDataSource,数据池。 DataSource的源码可以看到,这个接口的作用就是拿来获取connection连接的。 各个数据库厂商只负责实现connection, 至于获取connection,在JDBC1.0里面是由DriverManager来负责的。 JDBC2.0版本之所新增DataSource,原因很简单——数据库连接池。1.0版本时每用一次connection都需要重新new,而da
134 0
JDBC2.0
|
SQL 人工智能 数据可视化
JDBC的“那些事“之应当注意的问题(上)
JDBC的“那些事“之应当注意的问题(上)
|
SQL 缓存 关系型数据库
JDBC的“那些事“之应当注意的问题(下)
JDBC的“那些事“之应当注意的问题(下)
|
SQL 安全 Java
33 JDBC实用详解
info 💡 概念:JDBC是java提供的一套用于操作数据库的接口API:java程序员只需要面向这套接口编程即可;
94 0