首页 > 数据库 >【数据库】编码-基于JDBC--待补充

【数据库】编码-基于JDBC--待补充

时间:2023-08-01 21:46:10浏览次数:33  
标签:JDBC String rs -- 数据库 try mysql 连接池

参考:https://www.liaoxuefeng.com/wiki/1252599548343744/1321748435828770 

关键词:连接池


 

基本编码

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.47</version>
    <scope>runtime</scope>
</dependency>

 代码: 

核心代码是DriverManager提供的静态方法getConnection()。DriverManager会自动扫描classpath,找到所有的JDBC驱动,然后根据我们传入的URL自动挑选一个合适的驱动。

因为JDBC连接是一种昂贵的资源,所以使用后要及时释放。使用try -with-resource来自动释放

String JDBC_URL = "jdbc:mysql://localhost:3306/test";
String JDBC_USER = "root";
String JDBC_PASSWORD = "password";

try (Connection conn = DriverManager.getConnection(JDBC_URL, JDBC_USER, JDBC_PASSWORD)) { try (Statement stmt = conn.createStatement()) { try (ResultSet rs = stmt.executeQuery("SELECT id, grade, name, gender FROM students WHERE gender=1")) { while (rs.next()) { long id = rs.getLong(1); // 注意:索引从1开始 long grade = rs.getLong(2); String name = rs.getString(3); int gender = rs.getInt(4); } } } }
Statement 存在SQL注入风险,使用PreparedStatement
executeUpdate 可返回受影响的行数



 

JDBC连接池

标准的接口javax.sql.DataSource,注意这个类位于Java标准库中,但仅仅是接口。要使用JDBC连接池,我们必须选择一个JDBC连接池的实现。常用的JDBC连接池有:

  • HikariCP: 目前使用最广泛的是HikariCP,比如spring
  • C3P0
  • dbcp
  • Druid

标签:JDBC,String,rs,--,数据库,try,mysql,连接池
From: https://www.cnblogs.com/clarino/p/17599165.html

相关文章

  • 讲一讲我用vscode生成的Vue工程
    近照官网教程,先建立一个文件夹,然后用vscode打开,然后执行 npminitvue@latest命令出现页面我全部选择NO,那些组件用到之后再往进加,要么太乱了然后录入自己要创建的项目名称,我的名称起名myvue,注意项目名称不识别大写然后执行命令:cd myvue  再执行命令   npminstal......
  • Wetab 标签页:内置多种免费实用优雅小组件的浏览器主页和起始页
    Wetab是什么?Wetab是一款基于浏览器的新标签页产品,主张辅助用户打造一个兼具效率与美观的主页。 Wetab的核心特色便是内置了多种实用、优雅的小组件。今天这篇,主要按照分类详细介绍 Wetab中的各个小组件的功能及使用示范。Wetab内置了多种小组件,包括AI小组件、日历、待......
  • 什么是算法复杂度?
    算法复杂度(AlgorithmComplexity)是衡量算法性能的度量标准。它描述了算法在输入规模增大时,所需的计算资源(例如时间和空间)的增长情况。算法复杂度通常用"大O符号"(BigOnotation)来表示,用来描述算法在最坏情况下的增长速度。在算法复杂度的表示中,我们关注的是算法执行所需的基本操......
  • 你是否理解空间换时间的思想?
    "空间换时间"是计算机科学和算法设计中的一个基本原则。它指的是在某些算法中,你可以通过使用更多的内存空间来减少执行算法所需的时间,或者反过来,通过减少内存空间的使用来增加执行时间。换句话说,你可以在时间效率和空间效率之间进行权衡。通过增加内存空间,你可以存储预先计算的结......
  • C++入门到放弃(06)——this指针
    1.基本介绍this本身很容易理解:在C++所有类当中,都将this(关键字)指针设置为当前对象的地址。this本身是指针,*this是变量,类型为当前类的类型。2.举例刚开始看到this指针的时候,总会觉得奇怪,怎么会有这种用法。我们需要当前类的变量以及函数的时候,明明可以直接在类的内部直接调用,......
  • Flask的请求,响应简介
    Flask的请求,响应简介Flask的请求与响应请求对象defindex():#请求对象,是全局的,需要导入,这个全局的request,在哪个视图函数中,就是当次的request对象,不会乱#request.method提交的方法print(request.method)#request.argsget请求提及的数据prin......
  • 配置proxy代理
    在vite.config.ts中进行如下配置server:{//http://localhost:5173/api/login->http://www.test.com/loginproxy:{//api是自行设置的请求前缀,任何请求路径以/api开头的请求将被代理到对应的target目标'/api':{target:http://www.test.com,//需要代......
  • Gin+Xterm.js实现远程Kubernetes Pod(一)
    Xterm.js简介xterm.js(https://xtermjs.org/)是一个开源的JavaScript库,它模拟了一个终端接口,可以在网页中嵌入一个完全功能的终端。这个库非常灵活,并且具有很多定制选项和插件系统。下面是一些使用xterm.js的基本步骤:首先,需要在项目中安装xterm.js。你可以直接从npm......
  • 【Azure 环境】ARM部署模板大于4MB的解决方案及Linked Template遇见存储账号防火墙无
    问题一:在ADFPipeline部署ARMTemplate报错“Deploymentfailed--therequestcontentsizeexceedsthemaximumsizeof4MB”【解答】4MB是一个固定限制,不可以修改其大小。 如果Template文件太大,需要把拆分成多个后,通过LinkedTemplate的方式部署。 在部署的时候,ARM通过main......
  • 使用 Go 语言实现二叉搜索树
    原文链接:使用Go语言实现二叉搜索树二叉树是一种常见并且非常重要的数据结构,在很多项目中都能看到二叉树的身影。它有很多变种,比如红黑树,常被用作std::map和std::set的底层实现;B树和B+树,广泛应用于数据库系统中。本文要介绍的二叉搜索树用的也很多,比如在开源项目go-ze......