-
JDBC连接数据库
2019-06-20 21:46:04JDBC连接数据库 简介: ODBC(开放数据库连接)是微软公司提供的一组对数据库访问的规范化标准API[应用程序编程接口/函数]。 JDBC:ODBC Java 版本 。SUN公司提出的使用Java访问数据库的规范 JDBC API主要由两部分组成:...JDBC连接数据库
简介:
- ODBC(开放数据库连接)是微软公司提供的一组对数据库访问的规范化标准API[应用程序编程接口/函数]。
- JDBC:ODBC Java 版本 。SUN公司提出的使用Java访问数据库的规范
- JDBC API主要由两部分组成:
JAVA应用程序开发接口
JDBC驱动程序开发接口
- JDBC驱动:实现了JDBC接口的类的集合,主要为 java.sql.Driver 接口
- 驱动的两种主要类型:
桥连接方式:JDBC-ODBC桥+ODBC驱动
直连接方式:本地协议驱动(java驱动)
6. JDBC常用的组件:
7. JDBC数据库访问步骤:(桥连接+直连接)
(1)加载驱动程序。
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); Class.forName("com.mysql.jdbc.Driver");
(2)打开数据库连接。
Connection con = DriverManager.getConnection("jdbc:odbc:数据库名","user","password"); Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306/数据库名","user","passwd");
(3)获取Statement对象。
Statement stmt = con.createStatement(); Statement stmt =con.createStatement();
①connection.createStatement(); 执行不带参数的sql语句。
②connection.prepareStatement(); 执行带参数或不带参数的预编译的SQL语句
③connection.parpareCall(); 调用数据库中的存储过程或函数等(4)执行SQL语句。(rs:游标[数据缓存区,存放SQL执行结果])
ResultSet rs = stmt.executeQuery(“SQL语句”); ResultSet rs = stmt.executeQuery(“SQL语句”);
①statement.executeQuery(); 返回类型ResultSet。
②statement.executeUpdate(); 返回类型int,执行此sql语句所影响的记录数。
③statement.execute(); 返回类型boolean,代表执行此语句是否有resultset返回。(5)处理结果集。(next一次下移一行)
while (rs.next( )){ } while (rs.next( )){ }
直连式:
package JDBC; import java.sql.*; public class Jdbc { public static void main(String[] args) { Connection con=null; Statement stmt=null; ResultSet rs = null; user="root"; passwd=" "; String strTemp = "SELECT * FROM student"; try{ Class.forName("com.mysql.jdbc.Driver"); }catch(ClassNotFoundException e){ e.printStackTrace(); } try{ con=DriverManager.getConnection("jdbc:mysql://localhost:3306/mysql,user,passwd); stmt=con.createStatement(); }catch(SQLException e){ e.printStackTrace(); } try { rs = stmt.executeQuery(strTemp); while(rs.next()){ System.out.println(rs.getString("id")); System.out.println(rs.getString("name")); System.out.println(rs.getString("gender")); System.out.println(rs.getString("address")); System.out.println(rs.getString("phone")); System.out.println(rs.getString("major")); } } catch (SQLException e) { e.printStackTrace(); } try { rs.close(); stmt.close(); con.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
桥接式:
1)配置数据源:控制面板->管理工具->数据(ODBC)。
2)编程,通过桥连方式与数据库建立连接。
-
Jdbc连接数据库
2018-07-21 15:25:25驱动:jdbc的实现类由数据库厂商提供 使用jdbc 导入驱动jar包 编码: 注册驱动 获取连接 编写sql 创建预编译语句的执行者 设置参数 执行sql语句 处理结果 释放资源 mysql数据库:** jdbc驱动的jar包 密码...Jdbc是Oracle公司提供的一套接口
驱动:jdbc的实现类由数据库厂商提供使用jdbc
- 导入驱动jar包
- 编码:
- 注册驱动
- 获取连接
- 编写sql
- 创建预编译语句的执行者
- 设置参数
- 执行sql语句
- 处理结果
- 释放资源
mysql数据库:**
jdbc驱动的jar包
密码:p81k下面是所有版本的
http://central.maven.org/maven2/mysql/mysql-connector-java/注:驱动和mysql数据库的版本号尽量相同
利用properties文件来保存连接的url 驱动和user 以及密码 这样当需要修改数据库时,直接修改properties里面的东西即可
下面是jdbc.properties文件
loadDriver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/yd?serverTimezone=GMT%2B8 user=root pwd=123456
下面这句是为了设置时间,防止连接时报时区错误
?serverTimezone=GMT%2B8
连接mysql数据库的代码,没有写执行sql语句的代码,
package com.sharetime.jdbc.util; import java.io.FileInputStream; import java.io.IOException; import java.sql.*; import java.util.Properties; /** * @Author: yd * @Date: 2018/7/20 19:58 * @Version 1.0 */ public class JdbcUtil { /** * 读取配置文件,用于使用其他数据库是可灵活切换 * 用properties保存 url user pwd * <p> * 写在静态代码块中可以让它只执行一次 */ private static final String DRIVERCLASS; private static final String URL; private static final String USER; private static final String PWD; static { Properties properties = new Properties(); try { //加载该配置文件 properties.load(new FileInputStream("src/jdbc.properties")); } catch (IOException e) { e.printStackTrace(); } DRIVERCLASS = properties.getProperty("loadDriver"); URL = properties.getProperty("url"); USER = properties.getProperty("user"); PWD = properties.getProperty("pwd"); } /** * 加载驱动 * * @return void */ public void loadDriver() { try { Class.forName(DRIVERCLASS); } catch (ClassNotFoundException e) { e.printStackTrace(); } } /** * 获取连接 * * @return java.sql.Connection */ public Connection getConnection() { loadDriver(); Connection conn = null; try { conn = DriverManager.getConnection(URL, USER, PWD); } catch (SQLException e) { e.printStackTrace(); } return conn; } /** * 执行sql语句 * * @param sql * @return java.sql.ResultSet */ private ResultSet select(String sql) { PreparedStatement st = null; ResultSet res = null; try { st = getConnection().prepareStatement(sql); res = st.executeQuery(); } catch (SQLException e) { e.printStackTrace(); } return res; } /** * 释放资源 * * @param ac * @return void */ private void release(AutoCloseable ac) { if (ac != null) { if (ac instanceof Statement || ac instanceof ResultSet || ac instanceof Connection) { try { ac.close(); } catch (Exception e) { e.printStackTrace(); } ac = null; } } } /** * 释放资源 * * @param st, conn * @return void */ public void release(Statement st, Connection conn) { release(st); release(conn); } /** * 释放资源 * * @param st, conn, re * @return void */ public void release(Statement st, Connection conn, ResultSet re) { release(st, conn); release(re); } }
测试连接,re.getString(“PhoneNum”)里面的字符串是你数据库里的列名
public class Test { public static void main(String[] args) { JdbcUtil jd = new JdbcUtil(); String sql = "select * from user"; PreparedStatement st = null; try { st = jd.getConnection().prepareStatement(sql); ResultSet re =st.executeQuery(); while(re.next()){ System.out.println(re.getString("PhoneNum")); } } catch (SQLException e) { e.printStackTrace(); } } }
-
JDBC连接数据库6个步骤
2018-11-01 09:46:27JDBC连接数据库,创建一个以JDBC连接数据库的程序,包含7个步骤: 首先准备JDBC所需的四个参数(user,password,url,driverClass) (1)user用户名 (2)password密码 (3)URL定义了连接数据库时的协议、...JDBC连接数据库,创建一个以JDBC连接数据库的程序,包含7个步骤:
首先准备JDBC所需的四个参数(user,password,url,driverClass)
(1)user用户名
(2)password密码
(3)URL定义了连接数据库时的协议、子协议、数据源标识,它们之间用冒号隔开。 书写形式: 协议:子协议:数据源标识
协议:在JDBC中总是以jdbc开始
子协议:是桥连接的驱动程序或是数据库管理系统名称。
数据源标识:标记找到数据库来源的地址与连接端口。
例如:(MySql的连接URL)
jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=gbk ;
useUnicode=true:表示使用Unicode字符集。如果characterEncoding设置为
gb2312或GBK,本参数必须设置为true 。characterEncoding=gbk:字符编码方式。(4)driverClass连接数据库所需的驱动。
1、加载JDBC驱动程序:
在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),这通过java.lang.Class类的静态方法forName(String className)实现。
例如:
try{//加载MySql的驱动类
Class.forName("com.mysql.jdbc.Driver") ;
}catch(ClassNotFoundException e){
System.out.println("找不到驱动程序类 ,加载驱动失败!");
e.printStackTrace() ;
}
成功加载后,会将Driver类的实例注册到DriverManager类中。
2、创建数据库的连接
•要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象,该对象就代表一个数据库的连接。
•使用DriverManager的getConnectin(String url , String username , String password )方法传入指定的欲连接的数据库的路径、数据库的用户名和密码来获得。
例如:
//连接MySql数据库,用户名和密码都是root
String url = "jdbc:mysql://localhost:3306/test" ;
String username = "root" ;
String password = "root" ;
try{
Connection con = DriverManager.getConnection(url , username , password ) ;
}catch(SQLException se){
System.out.println("数据库连接失败!");
se.printStackTrace() ;
}3、创建一个preparedStatement
•要执行SQL语句,必须获得java.sql.Statement实例,Statement实例分为以下3 种类型:
1、执行静态SQL语句。通常通过Statement实例实现。
2、执行动态SQL语句。通常通过PreparedStatement实例实现。
3、执行数据库存储过程。通常通过CallableStatement实例实现。
•具体的实现方式:
Statement stmt = con.createStatement() ;
PreparedStatement pstmt = con.prepareStatement(sql) ;
CallableStatement cstmt = con.prepareCall("{CALL demoSp(? , ?)}") ;4、执行SQL语句
•Statement接口提供了三种执行SQL语句的方法:executeQuery 、executeUpdate和execute
1、ResultSet executeQuery(String sqlString):执行查询数据库的SQL语句,返回一个结果集(ResultSet)对象。
2、int executeUpdate(String sqlString):用于执行INSERT、UPDATE或 DELETE语句以及SQL DDL语句,如:CREATE TABLE和DROP TABLE等
3、execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的语句。
•具体实现的代码:
ResultSet rs = stmt.executeQuery("SELECT * FROM ...") ;
int rows = stmt.executeUpdate("INSERT INTO ...") ;
boolean flag = stmt.execute(String sql) ;5、遍历结果集
两种情况:
1、执行更新返回的是本次操作影响到的记录数。
2、执行查询返回的结果是一个ResultSet对象。
• ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些
行中数据的访问。
• 使用结果集(ResultSet)对象的访问方法获取数据:
while(rs.next()){
String name = rs.getString("name") ;
String pass = rs.getString(1) ; // 此方法比较高效
}
(列是从左到右编号的,并且从列1开始)6、处理异常,关闭JDBC对象资源
•操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声 明顺序相反:
1、先关闭requestSet
2、再关闭preparedStatement
3、最后关闭连接对象connectionif(rs !=null){ // 关闭记录集
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(stmt !=null){ // 关闭声明
try {
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if(conn !=null){ // 关闭连接对象
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
-
JDBC连接数据库步骤
2019-08-09 15:17:33JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包含7个步骤: 1、JDBC所需的参数 2、加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java....
JDBC连接数据库
•创建一个以JDBC连接数据库的程序,包含7个步骤:
1、JDBC所需的参数
2、加载JDBC驱动程序:
在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),
这通过java.lang.Class类的静态方法forName(String className)实现。
例如: try{ //加载MySql的驱动类 Class.forName("com.mysql.jdbc.Driver") ; }catch(ClassNotFoundException e){ System.out.println("加载驱动失败!"); e.printStackTrace() ; }
成功加载后,会将Driver类的实例注册到DriverManager类中。
3、创建数据库的连接
•要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象,
该对象就代表一个数据库的连接。
•使用DriverManager的getConnectin(String url , String username ,
String password )方法传入指定的欲连接的数据库的路径、数据库的用户名和
密码来获得。
例如:
//连接MySql数据库,用户名和密码都是root String url = "jdbc:mysql://localhost:3306/test" ; String username = "root" ; String password = "root" ; try{ Connection con = DriverManager.getConnection(url , username , password ) ; }catch(SQLException se){ System.out.println("数据库连接失败!"); se.printStackTrace() ; }
4、创建一个preparedStatement
如果需要要执行SQL语句,必须获得java.sql.Statement实例,Statement实例分为以下2
种类型:
1、执行静态SQL语句。通常通过Statement实例实现。
2、执行动态SQL语句。通常通过PreparedStatement实例实现。
具体的实现方式: Statement stmt = con.createStatement() ; PreparedStatement pstmt = con.prepareStatement(sql) ;
5、执行SQL语句
Statement接口提供了三种执行SQL语句的方法:executeQuery 、executeUpdate
和execute
1、ResultSet executeQuery(String sqlString):执行查询数据库的SQL语句
,返回一个结果集(ResultSet)对象。
2、int executeUpdate(String sqlString):用于执行INSERT、UPDATE或
DELETE语句以及SQL DDL语句,如:CREATE TABLE和DROP TABLE等
3、execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的
语句。
具体实现的代码: ResultSet rs = stmt.executeQuery("SELECT * FROM ...") ; int rows = stmt.executeUpdate("INSERT INTO ...") ; boolean flag = stmt.execute(String sql) ;
6、遍历结果集
两种情况:
1、执行更新返回的是本次操作影响到的记录数。
2、执行查询返回的结果是一个ResultSet对象。
• ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些
行中数据的访问。
• 使用结果集(ResultSet)对象的访问方法获取数据:while(rs.next()){ String name = rs.getString("name") ; String pass = rs.getString(1) ; }
7、处理异常,关闭JDBC对象资源
操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声
明顺序相反:
1、先关闭resultSet
2、再关闭preparedStatement
3、最后关闭连接对象connection if(rs != null){ // 关闭记录集 try{ rs.close() ; }catch(SQLException e){ e.printStackTrace() ; } } if(stmt != null){ // 关闭声明 try{ stmt.close() ; }catch(SQLException e){ e.printStackTrace() ; } } if(conn != null){ // 关闭连接对象 try{ conn.close() ; }catch(SQLException e){ e.printStackTrace() ; } }
-
java JDBC连接数据库步骤及代码
2018-12-06 09:34:01JDBC连接数据库,包含7个步骤 (1)加载JDBC驱动程序 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机), 这通过java.lang.Class类的静态方法forName(String className)实现,成功加载后... -
JDBC 连接数据库,关闭数据库连接
2016-12-14 09:59:54JDBC 连接数据库,关闭数据库连接 -
JDBC连接数据库7个步骤
2019-06-19 10:08:39JDBC连接数据库7个步骤 JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包含7个步骤: 1、JDBC所需的四个参数(user,password,url,driverClass) (1)user用户名 (2)password密码 (3)URL定义了连接... -
java利用jdbc连接数据库之删除数据库中的数据
2018-03-29 18:41:07java利用jdbc连接数据库之删除数据库中的数据准备工作: java利用jdbc连接mysql数据库准备知识目的: java利用jdbc连接数据库之删除数据库中的数据 1:代码package cn_java_connection_mysql;import java.sql.... -
Java中使用JDBC连接数据库
2019-01-23 17:02:38Java中使用JDBC连接数据库 加载驱动 创建数据库连接 创建执行sql的语句 执行语句 处理执行结果 释放资源 源代码附上: package com.demo.test; import java.sql.Connection; import java.sql.... -
java利用jdbc连接数据库之更改数据库中的数据
2018-03-29 18:19:33java利用jdbc连接数据库之更改数据库中的数据准备工作: java利用jdbc连接mysql数据库准备知识目的: java利用jdbc连接数据库之更改数据库中的数据 1:代码package cn_java_connection_mysql;import java.sql.... -
JDBC连接数据库的相关问题
2020-03-23 21:16:33JDBC连接数据库的相关问题 1. JDBC 的概念 jdbc是一种用于执行SQLQ语句的API,可以为多种数据库提供统一的访问,它是由一组java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使... -
jdbc连接数据库Sql Server2012
2016-12-27 17:33:21jdbc连接数据库是需要我们熟练使用并掌握的一个基本知识,所以也是简单的内容。连接数据库的作用也是十分必要的,就不多说了。此处实现jdbc连接数据库SQLserver2012.。首先基于以下平台:SQLserver 2012、MyEclipse ... -
完整java语言中JDBC连接数据库步骤
2017-06-05 18:05:05完整java开发中JDBC连接数据库代码和步骤 JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包含7个步骤: 1、加载JDBC驱动程序: 在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM... -
java利用jdbc连接数据库之获取查询结果集
2018-03-29 16:51:41java利用jdbc连接数据库之获取查询结果集准备工作: java利用jdbc连接mysql数据库准备知识目的: java利用jdbc连接数据库之获取查询结果集 1:代码package cn_java_connection_mysql;import java.sql.Connection;... -
jdbc连接数据库
2005-11-23 22:15:00在Java技术的体系中,应用程序是通过JDBC(Java Database Connectivity)接口来访问数据库的,JDBC支持"建立连接、SQL语句查询、处理结果"等基本功能。在应用JDBC接口访问数据库的过程中,只要根据规范来操作,这些... -
java利用jdbc连接数据库之插入数据
2018-03-29 15:30:15java通过JDBC连接数据库具体功能: 使用PreparedStatement接口中的executeUpdate()方法向数据库中插入一条数据 前提: 具有一个数据库和一个列表(列表和数据库长啥样后面会说) 1:创建java project2:下载jar... -
JNDI配置DataResource代替JDBC连接数据库
2020-10-25 20:28:30JNDI配置DataResource代替JDBC连接数据库 1.JDBC和JNDI JDBC就是我们连接数据库的一个标准的Java API,JDBC提供了一系列接口和规范,各个数据库公司根据其JDBC接口和规范,开发出各自的连接和操作数据库的.jar包... -
jdbc连接数据库六步走
2017-06-12 16:30:26这几天正好在学oracle数据库,而且我发现我已经忘了jdbc连接数据库的步骤了,所以写篇博客记录一下。 jdbc连接数据库六步: 加载驱动 获取数据库连接 创建statement 执行SQL语句 获取结果集 释放资源(关闭statement... -
jsp使用jdbc连接数据库
2019-09-21 22:14:35在IDEA编译器中通过jdbc连接数据库,都是坑。。。 坑的我一度很暴躁。 首先说明一下我的软件版本: java1.8 Mysql 8.0 所以需要驱动包(mysql-connector-java)为8.0以上这个很重要 如果驱动包和Mysql版本不兼容,嘿嘿... -
JDBC连接数据库7大步骤
2019-05-05 19:12:29JDBC连接数据库7大步骤 加载驱动→创建连接数据库对象→创建操作数据库对象→编写sql语句→执行sql语句,返回结果集→操作结果集→释放资源 1.Class.forName(“com.mysql.jdbc.Driver”); 2. Connection conn = ... -
JDBC连接数据库的方法(mysql oracle)
2016-05-24 23:58:14JDBC连接数据库 使用JDBC连接数据库要点: 1. -
JAVA通过JDBC连接数据库
2017-07-22 10:52:52JAVA通过JDBC连接数据库 工具 Mysql,Eclipse,Navicat Premium 步骤 (1)打开数据库,创建一个数据库并新建一个表 (2)打开eclipse,导入java连接mysql驱动 下载链接:... -
JDBC连接数据库学习心得
2017-06-03 11:00:34JDBC连接数据库学习心得 1. 环境的搭建 首先在intelliJADE下新建工程,并且在工程根目录下创建lib包,lib包用于存放JDBC的jar包,以及以后其他工具jar包.将jar包存入并且导入环境配置后进行下一步 2.数据库连接... -
完整java开发中JDBC连接数据库代码和步骤
2016-03-21 22:27:20JDBC连接数据库 •创建一个以JDBC连接数据库的程序,包含7个步骤: -
Java JDBC 连接数据库 基本步骤
2015-08-31 12:14:48Java JDBC 连接数据库 基本步骤 -
JDBC连接数据库的七个步骤
2017-03-22 22:02:12Java开发中JDBC连接数据库代码和步骤
-
学生党平价蓝牙耳机有哪些、学生用的蓝牙耳机推荐
-
完美解决php无法上传大文件方案
-
S3cmd使用手册
-
m3u8PC直接播放视频.zip
-
MySQL 高可用(DRBD + heartbeat)
-
MySQL 性能优化(思路拓展及实操)
-
2020年中国AI%2b医疗行业研究报告.pdf
-
pkcs_11v2.11-CH.pdf
-
获山东科技最高奖-农业大健康·万书波:沉醉谋定花生增产
-
office和visio不兼容的终极办法(亲测可用)
-
超迷你TYPE-C锂电池充电模块
-
15 javaweb --EL表达式、JSP标签、JSTL标签、
-
Java2021年1月
-
MySQL 高可用工具 DRBD 实战部署详解
-
Flash-Video-Downloader_v.zip
-
和电源大咖一起夯基础(第三部分).pdf
-
用Go语言来写区块链(一)
-
BCGControlBar.28.full.7z
-
IOC(Inversion of Control)
-
云开发后台+微信扫码点餐小程序+cms网页管理后台 含后厨端和用户端