Java连接数据库 JDBC
1、JDBC是什么?
JDBC,英文全称:Java DataBase Connectivity,中文全称:java数据库连接,是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,由一组用Java语言编写的类和接口组成。
2、JDBC能做什么?
简单来说,JDBC 可做三件事:与数据库建立连接、发送和执行操作数据库的语句、处理SQL语句执行结果。
3、Java连接数据库的步骤
(1)加载驱动类
Oracle数据库的驱动类名称为:oracleDriverName = oracle.jdbc.driver.OracleDriver
MySQL数据库的驱动类名称为:mysqlDriverName = com.mysql.jdbc.Driver
//加载驱动类,也可以叫做注册载入驱动
Class.forName(DriverName); //DriverName为驱动类的名称,具体应用时要替换成具体数据库的驱动类名称//加载MySQL驱动类
Class.forName("com.mysql.jdbc.Driver");//加载Oracle驱动类
Class.forName("oracle.jdbc.driver.OracleDriver");
(2)创建连接对象
获取连接对象时的三个参数:url、username、password
Oracle数据库:
url = jdbc:oracle:thin:@oracleip:port:dbname (其中oracleip为Oracle数据库所在电脑的ip地址,port为Oracle数据库的端口号默认端口号为1521,dbname 为所使用的数据库名称)
username = scott (用户名称,默认的是Scott,实际应用时,具体名称,具体设置)
password为使用数据库时的密码;
MySQL数据库:
url = jdbc:mysql://mysqlip:port/dbname (其中mysqlip为mysql数据库所在电脑的ip地址,如果mysql数据库安装在主机中,则mysqlip可以写成localhost,post为mysql数据库的端口号,默认端口号为3306,dbname为数据库的名称)
username = root
password为使用数据库时的密码;
//例如如下语句://创建连接对象
Connection conn =DriverManager.getConnection(url ,username , password ) ; //创建和MySQL数据库连接的对象
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/dbname", "root","123456");
在这里可以写个方法对以上两个步骤进行测试:
package sql; //类所在的包//需要导入的包
import java.sql.Connection;
import java.sql.DriverManager;public class DbTest {public static void main(String[] args) {//获取mysql数据库连接步骤//第一步:加载驱动类Class.forName("com.mysql.jdbc.Driver");//第二步:创建连接对象Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/zxdb","root","123456");//控制台输出数据库连接对象System.out.println(conn);}
}//注意,本段代码为原始代码,里面有异常未处理,请继续向下阅读
观察两种异常的类型:
对原始代码进行异常处理:
package sql; //类所在的包//需要导入的包
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;public class DbTest {public static void main(String[] args) {//获取mysql数据库连接步骤//第一步:加载驱动类try {Class.forName("com.mysql.jdbc.Driver");} catch (ClassNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();}//第二步:创建连接对象Connection conn = null;try {conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/zxdb","root","123456");} catch (SQLException e) {// TODO Auto-generated catch blocke.printStackTrace();}//控制台输出数据库连接对象System.out.println(conn);}
}
处理异常:是为了提高代码的健壮性,当程序运行发生异常并被捕获时,根据捕获异常时得到的异常信息,就可以很快定位到出现异常的代码位置。
将驱动类的名称故意写错,观察错误信息:
也可以将获取数据库连接对象用方法(函数)的形式来写,当需要获取数据库连接对象时,直接调用方法(函数)即可,不用每次都写获取数据库连接对象的全部代码。
package sql; //类所在的包//需要导入的包
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;public class DbTest {/*** 函数功能:获取数据库连接对象* @return 返回一个数据库连接对象*/public static Connection getConn(){//第一步:加载驱动类try {Class.forName("com.mysql.jdbc.Driver");} catch (ClassNotFoundException e) {System.out.println("驱动类加载失败");e.printStackTrace();//打印详细的异常信息内容}//第二步:创建连接对象Connection conn = null;try { conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/zxdb","root","123456");} catch (SQLException e) {System.out.println("获取连接对象时出错");e.printStackTrace();//在控制台输出具体的异常信息内容}return conn;}public static void main(String[] args) {Connection conn = getConn(); //调用获取数据库连接对象的函数System.out.println(conn); //控制台输出数据库连接对象}
}
(3)创建执行SQL语句的对象
使用数据库连接对象,调用createStatement()方法,创建一个执行SQL语句的对象,即Statement对象;
// 创建执行SQL语句的对象
Statement st = conn.createStatement();
(4)执行SQL语句
executeQuery(String sql)方法:只能执行查询语句,返回一个结果集对象;
executeUpdate(String sql)方法:可执行增、删、改语句及DDL语句,返回执行语句受到影响的记录条数(返回结果为int类型);
//执行查询语句
ResultSet rs = st.executeQuery(sql);//执行增删改语句和DDL语句
int cnt = st.executeUpdate(sql);
(5)关闭资源
关闭资源的顺序和创建资源的顺序相反,称为“倒关闭”
rs.close(); //关闭结果集对象
st.close(); //关闭执行SQL语句的对象
conn.close(); //关闭连接对象
为了较少报错的几率,最好使用try...catch...判断处理错误;
try {if (rs != null) {rs.close();}
} catch (SQLException e) {e.printStackTrace();} finally {try {if (st != null) {st.close();}} catch (SQLException e) {e.printStackTrace();} finally {try {if (conn != null) {conn.close();}} catch (SQLException e) {e.printStackTrace();}}
}
实例请查看:JDBC操作数据库实例
Java连接数据库 JDBC相关推荐
- Java连接数据库JDBC
1.数据库驱动和JDBC JDBC SUN公司为了简化开发人员的((对数据库的统一)操作,提供了一个(Java操作数据库的规范,俗称JDBC)这些规范的实现由具体的厂商去做 对于开发人员来说,我们只需 ...
- Java连接数据库(JDBC非常重要)
目录 一.数据库连接 1.1之前如何操作数据库 1.2.实际开发中如何操作数据库? 二.JDBC(Java Database Connectinity)(重要) 2.1.JDBC的概念 2.2 JDB ...
- java连接数据库,jdbc四要素,jdbc六大步
1.先确保项目中已经有了jdbc的jar包(ojdbc.jar),没有可以去网上找然后添加到项目 2.jdbc 的四要素 //jdbc四要素//驱动:决定连接的是何种类型的数据库private sta ...
- java连接数据库--JDBC
//驱动程序名 String driver =("com.mysql.jdbc.Driver");// "com.MySQL.jdbc.Driver"; //U ...
- Java中JDBC连接数据库详解
今天动力节点java学院小编分享的是JDBC连接数据库的相关知识,希望通过看过此文,各位小伙伴对DBC连接数据库有所了解,下面就跟随小编一起来看看JDBC连接数据库的知识吧. 一.JDBC连接数据库概 ...
- JAVA通过JDBC连接并操作MySQL数据库
JAVA通过JDBC连接并操作MySQL数据库 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提 ...
- Java使用Jdbc操作MySql数据库(一)
这个示例是Java操作MySql的基本方法. 在这个示例之前,要安装好MySql,并且配置好账户密码,创建一个logininfo数据库,在数据库中创建userinfo数据表.并且在表中添加示例数据. ...
- Java连接数据库(4)
环境:netbeans (四)Java通过Jdbc连接MySql数据库 MySql数据库相对postgresql来说常见一些,它们的连接方法极其类似.MySql中的操作就不叙述了,读者自己在MySql ...
- 一篇文章教你学会Java基础JDBC
文章目录 一.搭建JDBC开发环境 1.搭建工程 2.连接数据库工具类JdbcConnectionUtil 3.main方法测试 二.创建Statement或PreparedStatement接口,执 ...
最新文章
- 【干货书】Pytorch创建和部署深度学习应用
- JavaScript中为什么string可以拥有方法?
- ABAP--一个不错的函数模块的文档生成程序
- 有理有据!为什么String选择数字31作为hashCode方法乘子?
- 20220203--CTF刷题WEB方向-- PHP2--考察URL编码解码和修改php后缀为phps
- [HEOI2013] SAO(dp + 组合数 + 前缀和)
- 数字货币交易所_数字货币交易所开发运营的盈利模式
- ES6之let能替代var吗?
- 江苏省政府投资基金集聚区落地,基金目标规模再增1500亿
- 常用的几款抓包工具_ 常见的4种抓包工具比较
- python手机端抢票大麦网_手把手教你用python抢票回家过年 !
- 2022icpc昆明打铁记录
- 折弯公差尺寸及工艺要求
- 初学者-CSS思维导图(上)
- 非常全的 matlab 函数
- JavaScript中splice的用法
- 《测试驱动开发应用实践》讨论记录
- LeetCode376 摇摆序列
- 反幂法matlab程序,数值分析幂法和反幂法.doc
- 2022年Q2全国网络零售发展指数同比增长3.3%
热门文章
- Leetcode 391.完美矩形
- win10安装docker并结合Idea2018.1部署springboot项目
- ●洛谷P3688 [ZJOI2017]树状数组
- 对学习编译原理的看法
- MySQL 的“root”用户修改密码
- myeclipse 遇到的一些问题及解决方案
- 交换两个变量的值不使用第三个变量(Java)
- va_start() va_end()函数应用
- 【Smart_Point】C/C++ 中智能指针
- Linux环境编程--进程通信