JDBC获取数据库连接
是什么?
JDBC:Java Data Base Connectivity(java数据库连接)
为什么用?
sun公司提供JDBC API接口,数据库厂商来提供实现
我们需要用哪个数据库就加载那个数据库厂商提供的驱动包
怎么用?
- 需要先在数据库中建立表
我的数据库名为db_user,表名为t_user
2.在根目录下创建lib文件夹,导入Mysql驱动程序,接着ctrl+shift+alt+s >> Modules >> 右侧绿色加号 >> JARS >>选择驱动程序
3.写入以下程序:
步骤为:
- 加载数据库驱动程序
- 获取与数据库连接的connection对象
- 获取执行SQL语句的statement对象
- 执行SQL语句,拿到结果集
- 遍历结果集,得到数据
- 关闭连接
- package com.zhangwei.test;
- import java.sql.*;
- public class DBTest {
- public static void main(String[] args) {
- Connection connection = null;
- Statement statement = null;
- ResultSet resultSet = null;
- try {
- Class.forName("com.mysql.jdbc.Driver");
- connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/db_user?useSSL=false", "root", "123456");
//黄色部分为 需要显式禁用SSL设置usessl = false,或设置usessl =true提供服务器证书验证信任库。- statement = connection.createStatement();
- resultSet = statement.executeQuery("SELECT * FROM t_user");
- while(resultSet.next()){
- System.out.println(resultSet.getInt(1));
- System.out.println(resultSet.getString(2));
- System.out.println(resultSet.getString(3));
- System.out.println(resultSet.getString(4));
- }
- }catch (SQLException e){
- e.printStackTrace();
- }catch (ClassNotFoundException e){
- e.printStackTrace();
- }finally{
- if(resultSet != null){
- try {
- resultSet.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- if(statement != null){
- try {
- statement.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- if(connection != null){
- try {
- connection.close();
- } catch (SQLException e) {
- e.printStackTrace();
- }
- }
- }
- }
- }
运行结果:
需要知道的几个对象
Connection对象:客户端与数据库的交互(DriverManager.getConnection()时返回此对象)
Statement对象:用于向数据库发送Sql语句,实现数据库的增删改查(connection.createStatement()时返回此对象)
Resultset对象:代表SQL语句的执行结果(statement.executeQuery()时返回此对象)
转载自:https://segmentfault.com/a/1190000013293202
JDBC获取数据库连接的更多相关文章
- JAVA jdbc获取数据库连接
JDBC获取数据库连接的帮助类 import java.io.InputStream; import java.sql.Connection; import java.sql.DriverManage ...
- 在IDEA中使用JDBC获取数据库连接时的报错及解决办法
在IDEA中使用JDBC获取数据库连接时,有时会报错Sat Dec 19 19:32:18 CST 2020 WARN: Establishing SSL connection without ser ...
- JDBC获取数据库连接慢
RHEL6.4 获取Oracle数据库链接时快时慢,RHEL7.3获取Oracle数据库链接时一直很慢能够达到五万毫秒. 解决方法: 修改$JAVA_HOME/jre/lib/security/jav ...
- JDBC编程:获取数据库连接
JDBC(Java Database Connectivity),即Java数据库连接.通过JDBC编程,可以使Java应用程序和数据库进行交互. JDBC驱动的方式有很多种,我们常用的驱动方式为:本 ...
- JDBC 学习笔记(四)—— JDBC 加载数据库驱动,获取数据库连接
1. 加载数据库驱动 通常来说,JDBC 使用 Class 类的 forName() 静态方法来加载驱动,需要输入数据库驱动代表的字符串. 例如: 加载 MySQL 驱动: Class.forName ...
- MYSQL 之 JDBC(二): 数据库连接(二)通过DriverManager获取数据库连接
通过DriverManager获取数据库连接 修改一下配置文件 driver=com.mysql.cj.jdbc.Driver jdbcUrl=jdbc:mysql://localhost:3306/ ...
- MYSQL 之 JDBC(一): 数据库连接(一)通过Driver接口获取数据库连接
通过Driver接口获取数据库连接 数据持久化 数据库存取技术分类 JDBC直接访问数据库 JDO技术 第三方O/R工具,如Hibernate,ibatis等JDBC是java访问数据库的基石 JDB ...
- 【JDBC核心】获取数据库连接
获取数据库连接 要素一:Driver 接口实现类 Driver 接口: java.sql.Driver 接口是所有 JDBC 驱动程序需要实现的接口.这个接口是提供给数据库厂商使用的,不同数据库厂商提 ...
- jdbc java数据库连接 3)Statement接口之执行DDL和DML语句的简化
上一章的代码中,可以发现,jdbc执行DDL和DML有几个步骤都是一样的: 1)执行语句开始时,创建驱动注册对象.获取连接的数据库对象.创建Statement对象 // 创建驱动注册对象 Class. ...
随机推荐
- 立即执行函数 IIFE
立即执行函数表达式IIFE(Immediately-invoked function expression)我们知道,在javascript(ES5)中,是没有块级作用域的概念的.看一个例子 for ...
- css基础系列
盒子模型 盒子模型的概念 高和宽的设置 边框的设置 内边距的设置 外边距的设置 盒子的计算 元素显示的方式 盒子模型: border边框,margin外边距,padding内部距,content内容, ...
- 2018-01-12 Antlr4添加中文变量赋求值,括号,各种问题
中文编程知乎专栏原文地址 例程(更多测试用例在此): 基数=100 基数×(基数+1)÷2 => 求值为5050 续上文Antlr4实现数学四则运算, 修改的语法规则部分: 程序: 声明+; 声 ...
- 自己手动搭建jenkins教程
下载列表; http://updates.jenkins-ci.org/download/war/ 本次下载: http://updates.jenkins-ci.org/download/war/ ...
- Win7系统修改hosts无法保存怎么办?
背景 有的时候我们需要修改hosts文件,但是在某些情况下竟提示保存不了.之前有一次IntelliJ IDEA提示我快到期了,于是我到网上找到了一个激活方法,但需要将一个地址放到hosts文件中去,此 ...
- JAVA文件的上传与访问
/** * 各种文件上传与判断 * types 文件类型(1图片 2视频 3文件) */@RequestMapping(method = RequestMethod.POST, path = &quo ...
- gittalk报错Error
最近通过github和jekyll搭了一个博客,申请使用了gittalk的评论. 但是博客的页面一直报Error:Not found,如下 发现是gittalk中的信息填写错了,name随便写:Hom ...
- OutOfMemoryError/OOM/内存溢出异常实例分析--堆内存溢出
Java堆内存溢出 只要不断创建对象,并且保证GC Roots到对象之间有可达路径来避免垃圾回收机制清除这些对象, 那么在对象数量到达最大堆的容量限制后就会产生内存溢出异常,代码如下: import ...
- ReactiveSwift源码解析(二) Bag容器的代码实现
今天博客我接着上篇博客的内容来,上篇博客我们详细的看了ReactiveSwift中的Observer已经Event的代码实现.接下来我们来看一下ReactiveSwift中的结构体Bag的实现.Bag ...
- 1. 容器化部署一套云服务 第一讲 Jenkins(Docker + Jenkins + Yii2 + 云服务器))
容器化部署一套云服务系列 1. 容器化部署一套云服务之Jenkins 一.购买服务器 服务器