jdbc连接数据库的代码和步骤
jdbc连接数据库的代码和步骤
学习目标
- jdbc连接数据库的代码和步骤
- 1、加载JDBC 驱动程序:
- 2、提供JDBC连接需要的URL
- 3、创建数据库的连接
- 4、创建一个Statement
- 5、执行SQL语句
- 6、对数据库中 查询的结果做处理
- 7、关闭JDBC对象
- 连接UXDB数据库整个完整的代码:
- 连接MySQL数据库整个完整的代码:
介于大家使用Mysql的比较多,最下面有UXDB和MySQL两种数据库连接的完整代码
JDBC连接数据库的程序,主要包含7个步骤
1、加载JDBC 驱动程序:
在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),
可以通过java.lang.Class类的静态方法forName(String className)实现。
示例1:(加载UXDB的驱动类)
// 加载 UXDB的驱动try{Class.forName("com.uxsino.uxdb.Driver");}catch (Exception e){e.printStackTrace();}
示例2:(加载MySQL的驱动类)
try{ //加载MySql的驱动类 Class.forName("com.mysql.jdbc.Driver") ; }catch(ClassNotFoundException e){ System.out.println("找不到驱动程序类 ,加载驱动失败!"); e.printStackTrace() ; }
成功加载后,会将Driver类的实例注册到DriverManager类中。
注意:不管加载什么数据库的驱动,可能都得提前导入驱动的jar包
如果你会用maven的话,就可以直接镜像下载,就不用再手动导入了。
2、提供JDBC连接需要的URL
连接JDBC的 URL定义了连接数据库时的协议、子协议、数据源标识
URL的书写形式:书写形式:协议:子协议:数据源标识
- 协议:在JDBC中总是以jdbc开始 。
- 子协议:是桥连接的驱动程序或是数据库管理系统名称。
- 数据源标识:标记找到数据库来源的地址与连接端口。
示例1:(UXDB的连接URL)
// UXDB的连接URL
String url = "jdbc:uxdb://192.71.1.31:5432/uxdb";
示例2:(MySQL的连接URL)
String url = "jdbc:mysql://localhost:3306/mysql" ;
3、创建数据库的连接
(1)要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象,
获取到的 Connection 对象就代表一个数据库的连接。
(2)使用DriverManager的getConnection(String url , String username ,
String password )方法传入 连接的 数据库的路径、数据库的用户名和
密码来获得。
示例1:(连接UXDB数据库,用户名,密码)
// 连接UXDB数据库
String url = "jdbc:uxdb://192.71.1.31:5432/uxdb";try{ Connection conn = DriverManager.getConnection(url,"uxdb","123456"); }catch(Exception e){ System.out.println("数据库连接失败!"); e.printStackTrace() ; }
示例2:(连接MySQL数据库)
String username = "root" ; String password = "root" ; try{ Connection conn = DriverManager.getConnection(url , username , password ) ; }catch(SQLException se){ System.out.println("数据库连接失败!"); se.printStackTrace() ; }
4、创建一个Statement
(1)要执行SQL语句,必须获得java.sql.Statement实例,Statement实例分为以下 3 种类型:
- 执行静态SQL语句。通常通过Statement实例实现。
- 执行动态SQL语句。通常通过PreparedStatement实例实现。
- 执行数据库存储过程。通常通过CallableStatement实例实现。
具体的实现方式: (这里不管什么数据库基本一致,大同小异)
Statement st = con.createStatement() ; PreparedStatement ps = con.prepareStatement(sql) ; CallableStatement cs = con.prepareCall("{CALL demoSp(? , ?)}") ;
5、执行SQL语句
Statement接口提供了三种执行SQL语句的方法:executeQuery 、executeUpdate 和 execute
- ResultSet executeQuery(String sqlString):执行查询数据库的SQL语句 ,
返回一个结果集(ResultSet)对象。 - int executeUpdate(String sqlString):用于执行INSERT、UPDATE或
DELETE语句以及SQL DDL语句,如:CREATE TABLE和DROP TABLE等 - execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的语句。
-(这里不管什么数据库基本一致,大同小异)
// 这里的st 就是上面 第4步 中,你获取的Statement实例ResultSet rs = st.executeQuery("SELECT * FROM ...") ; int rows = st.executeUpdate("INSERT INTO ...") ; boolean flag = st.execute(String sql) ;
6、对数据库中 查询的结果做处理
两种情况:
(1)执行更新返回的是本次操作影响到的记录数。
(2)执行查询返回的结果是一个ResultSet对象。
• ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些
行中数据的访问。
• 使用结果集(ResultSet)对象的访问方法获取数据
while(rs.next()){ String name = rs.getString("name") ; String password = rs.getString(1) ; // 此方法比较高效 }
rs.getString(1)的意思是取表中第一列的数据(列是从左到右编号的,并且从列1开始)
7、关闭JDBC对象
操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和连接顺序刚好相反
(1)关闭记录集
(2)关闭声明
(3)关闭连接对象
if(rs != null){ // 关闭结果集try{ rs.close() ; }catch(SQLException e){ e.printStackTrace() ; } } if(st != null){ // 关闭声明 try{ stmt.close() ; }catch(SQLException e){ e.printStackTrace() ; } } if(conn != null){ // 关闭连接对象 try{ conn.close() ; }catch(SQLException e){ e.printStackTrace() ; } }
连接UXDB数据库整个完整的代码:
package com.song.jdbc;import java.sql.*;public class ConnTest {public static void main(String[] args) {Connection connection = getConn();String sql = "select * from student";PreparedStatement statement;statement = null;ResultSet resultSet;resultSet = null;try {// statement = connection.createStatement();
// resultSet = statement.executeQuery(sql);//4、创建一个StatementPreparedStatement statement1 = connection.prepareStatement(sql);//5、执行SQL语句resultSet = statement1.executeQuery();System.out.println("======");//6、对数据库中 查询的结果做处理while (resultSet.next()){System.out.println("===22222====");System.out.println(resultSet.getString(1));System.out.println("\n");}}catch (Exception e){e.printStackTrace();}finally {//7、关闭JDBC对象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();}}}}private static Connection getConn(){Connection connection;connection = null;try{//1、加载JDBC 驱动程序Class.forName("com.uxsino.uxdb.Driver");//2、提供JDBC连接需要的URLString url = "jdbc:uxdb://192.71.1.31:5432/uxdb";try {//3、创建数据库的连接return DriverManager.getConnection(url,"uxdb","123123");}catch (Exception e){e.printStackTrace();}}catch (Exception e){e.printStackTrace();}return connection;}
}
连接MySQL数据库整个完整的代码:
package sqldemo;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;public class main {public static void main(String[] args) {//声明Connection对象Connection con;//驱动程序名String driver = "com.mysql.jdbc.Driver";//URL指向要访问的数据库名mydataString url = "jdbc:mysql://localhost:3306/sqltestdb";//MySQL配置时的用户名String user = "root";//MySQL配置时的密码String password = "123456";//遍历查询结果集try {//加载驱动程序Class.forName(driver);//1.getConnection()方法,连接MySQL数据库!!con = DriverManager.getConnection(url,user,password);if(!con.isClosed())System.out.println("Succeeded connecting to the Database!");//2.创建statement类对象,用来执行SQL语句!!Statement statement = con.createStatement();//要执行的SQL语句String sql = "select * from emp";//3.ResultSet类,用来存放获取的结果集!!ResultSet rs = statement.executeQuery(sql);System.out.println("-----------------");System.out.println("执行结果如下所示:"); System.out.println("-----------------"); System.out.println("姓名" + "\t" + "职称"); System.out.println("-----------------"); String job = null;String id = null;while(rs.next()){//获取stuname这列数据job = rs.getString("job");//获取stuid这列数据id = rs.getString("ename");//输出结果System.out.println(id + "\t" + job);}rs.close();con.close();} catch(ClassNotFoundException e) { //数据库驱动类异常处理System.out.println("Sorry,can`t find the Driver!"); e.printStackTrace(); } catch(SQLException e) {//数据库连接失败异常处理e.printStackTrace(); }catch (Exception e) {// TODO: handle exceptione.printStackTrace();}finally{System.out.println("数据库数据成功获取!!");}}}
jdbc连接数据库的代码和步骤相关推荐
- JAVA JDBC连接数据库操作的基本步骤
JAVA中JDBC连接数据库操作的基本步骤.注:假定连接数据库的用户名为root,密码为root. 步骤一: 定义连接数据库的相关信息 步骤一: 定义连接数据库的相关信息(1) 连接数据库的驱动:8. ...
- JDBC连接数据库的8个步骤
package jdbcStudy;import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLExce ...
- JDBC连接数据库的七个步骤(超详细)
JDBC连接数据库 1.JDBC所需的四个参数(user,password,url,driverClass) 2.加载JDBC驱动程序 3.创建数据库的连接 4.创建一个preparedStateme ...
- JDBC连接数据库的原理和步骤
JDBC是Sun公司制定的一个可以用Java语言连接数据库的技术. 一.JDBC基础知识 JDBC(Java Data Base Connectivity,java数据库连接)是一种用 ...
- 关于java用JDBC连接数据库的代码
留下JDBC的代码以备后用 import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedSta ...
- 完整java开发中JDBC连接数据库代码和步骤
JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.l ...
- Java开发中JDBC连接数据库代码和步骤
JDBC连接数据库:创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),这通过java.lan ...
- java jdbc连接 代码块_java 中JDBC连接数据库代码和步骤详解及实例代码
•创建一个以JDBC连接数据库的程序,包含7个步骤: 1.加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),这通过java.lang.Class类的 ...
- java JDBC连接数据库步骤及代码
JDBC连接数据库,包含7个步骤 (1)加载JDBC驱动程序 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.lang.Class类的静态方法for ...
最新文章
- 算法系列15天速成——第三天 七大经典排序【下】
- Unity图片优化神器 - dither算法究极进化方案
- 云计算的概念_近500亿资金汹涌出逃!云计算概念龙头抛压沉重,科技股资金出逃名单出炉...
- 关注微信公众号使其自动发送欢迎你关注消息
- Java 算法 矩阵乘法
- 基于2.9.6vue-cli初始化webpack工程
- 漂亮的抽奖C#源代码
- 组合数学+概率,期望+生成函数一文全精通
- windows 2008 r2 kb4512486 安装失败解决方法
- 没有巨头公司做内容支撑 剪辑软件公司小影科技上市后能跑多远?
- 介绍两个用于生成二维码的js库
- 数字货币量化分析[2018-05-28]
- matlab建模DNA双链,matlab绘制DNA双螺旋结构模型三维图 请高手给详细步骤。 分重要,关键是我能学会。(可以加分)...
- 2021CSP-J1
- 特效笔记1----特效设计的概念和基础原则
- 实名报名超5000人!RTE2022即将开幕,声网发布RTE行业首本专业书《实时万象》
- 第 3-5 课:Flutter 调试及 Android 和 iOS 打包
- Windows下安装CMake教程
- vue3 :deep() :slotted() :global() css动态绑定变量
- 2035年会证实外星人存在?或许是任重道远的探索
热门文章
- Win10开发:微软详解在应用中使用新型OneDrive API
- 峰哥it-推荐-AnyDesk多ID集中控制台V1.2
- 南华大学计算机学院龚向坚,以培养学生计算思维能力为目标的计算机专业主干课程教学改革探讨龚向坚.pdf...
- Week7-3HMM1
- ADS1118的MSP430驱动代码,非常方便移植
- 深入剖析某国外组织针对中国境内企业的APT攻击(CVE-2015-8651)
- java8新特性lambda表达式概述
- 2020年大厂阿里,腾讯,字节跳动,美图,百度等技术线职级薪资一览表
- 使用病毒式营销策划推广方案
- SUNTANS模型学习(7)——学习simplified river plume算例