jdbc

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 全称: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();
}


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
7月前
|
SQL Java 数据库连接
JDBC是真的啰里啰嗦啊-但是很重要!(下)
JDBC是真的啰里啰嗦啊-但是很重要!
30 1
|
XML 存储 Java
什么是jdbc?为什么要用jdbc
什么是jdbc?为什么要用jdbc
|
SQL Oracle 数据可视化
|
7月前
|
存储 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
132 0
JDBC2.0
|
SQL 存储 关系型数据库
JDBC的“那些事“之应当注意的问题(中)
JDBC的“那些事“之应当注意的问题(中)
|
SQL 人工智能 数据可视化
JDBC的“那些事“之应当注意的问题(上)
JDBC的“那些事“之应当注意的问题(上)
|
Java 关系型数据库 MySQL
JDBC1.0
JDBC是JAVA十三大规范之一,由JAVA定义顶级接口API,各个数据库厂商去实现。常用的四大接口——Driver,DriverManager,Connection,Statement。 这里先给出结论: 所谓的JAVA制定标准,就是指JAVA给出接口,厂家各自去实现。 比如Driver,Connection,Statement等都是有接口,有实现。 通过向DriverManager注册不同Driver来确定Connection,Statement的类型
67 0
|
SQL Java 关系型数据库
JDBC介绍
JDBC介绍
115 0
|
SQL 安全 Java
33 JDBC实用详解
info 💡 概念:JDBC是java提供的一套用于操作数据库的接口API:java程序员只需要面向这套接口编程即可;
93 0