Connection(数据库连接对象)

简介:通过代码来讲解Connection的含义。
推荐学习路线:JDBC数据库的连接->Connection(数据库连接对象)->Driud数据库连接池的使用->Statement->ResultSet->通过PreparedStatement预防SQL注入->JDBC增删改查案例讲解 大家跟着敲完基本就可以JDBC基础毕业了。

演示代码

/*** JDBC API 详解:Connection*/
public class JDBCDemo_Connection {public static void main(String[] args) throws Exception {//1. 注册驱动Class.forName("com.mysql.cj.jdbc.Driver");//2. 获取连接// String url = "jdbc:mysql://127.0.0.1:3306/books"; // 如果是mysql5这样写String url = "jdbc:mysql://localhost:3306/books?serverTimezone=GMT%2B8&useOldAliasMetadataBehavior=true"; // 如果是mysql8这样写String username = "root";String password = "1234";Connection conn = DriverManager.getConnection(url, username, password);//3. 定义sqlString sql1 = "update book set price = price - 8 where reclD = 1";String sql2 = "update book set price = price - 8 where reclD = 2";String sql3 = "update book set price = price - 8 where reclD = 3";//4. 获取执行sql的对象 StatementStatement stmt = conn.createStatement();try {// ============开启事务==========conn.setAutoCommit(false); // 加上这几句之后 如果发生异常就会回滚 然后数据不会发生改变// 如果没有发生异常 但是发现数据库里面的数据没有改变// 可以把这里改成true 不改的话内存里面的数据改了 但是显示的没有改//5. 执行sqlint count1 = stmt.executeUpdate(sql1);//受影响的行数//6. 处理结果System.out.println(count1);//5. 执行sqlint count2 = stmt.executeUpdate(sql2);//受影响的行数//6. 处理结果System.out.println(count2);// ============提交事务==========//程序运行到此处,说明没有出现任何问题,则需求提交事务conn.commit();} catch (Exception e) {// ============回滚事务==========//程序在出现异常时会执行到这个地方,此时就需要回滚事务conn.rollback();e.printStackTrace();}//7. 释放资源stmt.close();conn.close();}
}

运行结果

代码分析

使用Connection的步骤

导入自己的各种信息

//1. 注册驱动Class.forName("com.mysql.cj.jdbc.Driver");//2. 获取连接// String url = "jdbc:mysql://127.0.0.1:3306/books"; // 如果是mysql5这样写String url = "jdbc:mysql://localhost:3306/books?serverTimezone=GMT%2B8&useOldAliasMetadataBehavior=true"; // 如果是mysql8这样写String username = "root";String password = "12345";

创建Connection对象

Connection conn = DriverManager.getConnection(url, username, password);

定义sql语句

 //3. 定义sqlString sql1 = "update book set price = price - 8 where reclD = 1";String sql2 = "update book set price = price - 8 where reclD = 2";String sql3 = "update book set price = price - 8 where reclD = 3";

调用creatStatement()方法

//4. 获取执行sql的对象 StatementStatement stmt = conn.createStatement();

Connection的理解

这就是Connection(数据库连接对象) 的在代码中的涉及部分,那么Connection到底是什么了,就跟它的名字一样,数据库连接对象,从面相对象的角度理解,这个对象就是封装了去连接整个数据库信息的用户的各种信息,比如url,password,username,这些信息,把这些信息封装打包,成为一个Connection(数据库连接对象),然后就可以通过这个封装好的对象去进行一系列操作了。

其他信息

Connection(数据库连接对象)作用:

  • 获取执行 SQL 的对象
  • 管理事务

Connection(数据库连接对象)相关推荐

  1. 数据库连接对象Connection对象的获取及相关知识总结

    一. Connection con = DriverManager.getConnection(); JDBC入门方案,实现步骤如下: 导入驱动jar包:mysql-connector-java-5. ...

  2. MySQL获取数据库连接对象_利用JDBC连接mysql数据库,获取连接对象的通用格式

    String driverName="com.mysql.jdbc.Driver";        //驱动程序名 String userName="root" ...

  3. 【数据库学习笔记】——创建数据库连接对象connection

    目录 connect函数的参数 创建连接对象连接MySQL代码 连接对象常见属性与方法 事务名词解释 课程视频链接: 第14节 Python操作数据库_哔哩哔哩_bilibili666https:// ...

  4. geotools 数据库连接对象无法正常释放

    问题描述: 我使用spring 将geotools数据库对象注入到Bean管理器中开始使用挺好,直到测试进行压力测试的时候问题出来了,每次访问25个连接的时候数据查询服务就挂掉了,无法进行后续查询操作 ...

  5. 1 创建数据库连接对象 IDbConnection

    //oracle版 //程序集 System.Data.OracleClient using System.Data.OracleClient; new OracleConnection(connec ...

  6. javaweb学习总结(三十九)——数据库连接池

    javaweb学习总结(三十九)--数据库连接池 一.应用程序直接获取数据库连接的缺点 用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长.假设网站一天10 ...

  7. javaweb学习总结(三十九):数据库连接池

    一.应用程序直接获取数据库连接的缺点 用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要消耗相对较大的资源,创建时间也较长.假设网站一天10万访问量,数据库服务器就需要创建10万次连接,极大 ...

  8. mysql数据库连接_mysql数据库连接池配置教程

    在与数据库进行连接的时候,会牵扯到数据库连接池的配置,本文将详细介绍mysql数据库连接池配置,需要了解跟多的朋友可以参考下 第一步:写javabean package withouttears.jd ...

  9. js语句连接mysql数据库_js中require()的用法----JS如何连接数据库执行sql语句或者建立数据库连接池...

    var vue = require('vue'); 引入vue的意思,commonjs的写法.node都是用require来载入模块的,可以看看webpack+vue. require()可以调用模块 ...

  10. 孤傲苍狼 只为成功找方法,不为失败找借口! javaweb学习总结(三十九)——数据库连接池 一、应用程序直接获取数据库连接的缺点   用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要

    孤傲苍狼 只为成功找方法,不为失败找借口! javaweb学习总结(三十九)--数据库连接池 一.应用程序直接获取数据库连接的缺点 用户每次请求都需要向数据库获得链接,而数据库创建连接通常需要消耗相对 ...

最新文章

  1. winform 让他间隔一段时间 执行事件 且只执行一次_Redis 事件机制详解
  2. 系统架构师学习笔记_第二章_连载
  3. vue调用百度地图API输入提示示例下拉列表一直被触发问题
  4. 在 2D 横向卷轴游戏里上下楼梯
  5. 2020年第十一届蓝桥杯 - 省赛 - Python大学组 - G. 单词分析
  6. 使用DynamoDBMapper扫描DynamoDB项目
  7. 如何在pycharm debug类似python -m的命令
  8. SLF4J错误:NoSuchMethodError解决方案
  9. JavaWeb开发Filter学习
  10. 基于集成学习模型的估价预测(量化投资)
  11. 可靠性测试设备技术含量_可靠性测试中心
  12. 学习uni-app之微信登录
  13. datawhale 学习笔记——建模调参入门
  14. BTC EmbeddedPlatform安装手记
  15. BIOS功能调用表格
  16. Inventor记录
  17. DDN4.9实践 - Source版的安装
  18. VB6银联读卡之旅(一)__简单ocx封装应用
  19. (概率/dp)P2059 [JLOI2013]卡牌游戏
  20. android多线程下载3

热门文章

  1. 获取本地视频文件的缩略图
  2. 水色物语:清新水彩手绘插画技法
  3. excel如何转化成word文件
  4. 预测股票涨跌看什么指标,如何预测明天股票走势
  5. source-map配置
  6. 从零开始成为网络工程师,H3CNE从零学起
  7. 如何查看当前位置显存使用情况
  8. 计算机作文600字关于科学事业,对科学事业的执着追求作文600字
  9. 【TSOJ课程】20 1151 玛雅日历
  10. html5游戏 搭积木,搭积木游戏