Oracle培训(三十一)—JDBC第二章知识点总结——JDBC基本应用
知识点预览
使用JDBC建立到数据库的连接
理解并使用JDBC相关对象
使用JDBC操作数据
使用JDBC建立到数据库的连接
1.第一个JDBC程序
2.应用JDBC的基本步骤
a)注册驱动
b)建立到数据库的连接
c)创建statement
d)执行SQL语句
e)处理results
f)关闭JDBC对象
3.Step 1--注册驱动
a)四种驱动方式
第四种:本地协议驱动
b)驱动用来连接到数据库
c)可以装载多个驱动
JDBC API使用能成功连接到指定URL(数据库)的第一个驱动
d)JDBC API使用驱动与数据库引擎建立连接
e)语法
Class.forName(driverName);
f)示例
//com.mysql.jdbc.Driver是MySQL数据库的Java驱动类名
//不同的数据库,驱动各不相同
//由数据库厂商提供,可以在数据库厂商的网站下载
Class.forName(“com.mysql.jdbc.Driver”);
g)经常使用的JDBC驱动
i.JDBC-ODBC:sun.jdbc.odbc.JdbcOdbcDriver
ii.Oracle:oracle.jdbc.driver.OracleDriver
iii.MySQL:com.mysql.jdbc.Driver
iv.Sybase:com.sybase.jdbc2.jdbc.SybDriver
v.SQLServer:com.microsoft.jdbc.sqlserver.SQLServerDriver
vi.。。。。。。
h)不是固定不变的,与数据库的版本有关
在数据库厂商的网站上下载
4.Step 2—建立到数据库的连接
a)使用驱动创建连接,连接建立后就可以访问数据
b)创建数据库连接
DriverManager类调用getConnection(urlString)方法
获得一个Connection对象
c)URL被解析用来查找数据库服务器的位置
d)当驱动收到URL(数据库)的确认响应时, DriverManager创建一个连接
e)当驱动不能匹配会返回null,并对下一个驱动进行检测
f)连接创建失败时,会抛出SQLException异常
5.创建数据库连接的过程
6.使用getConnection()方法
a)方法
getConnection(Stringurl)
b)语法
Connection con =DriverManager.getConnection(参数)
c)示例
//jdbc:mysql://computerName或IP地址 :端口/数据库名称
// 不同的数据库URL字符串格式不同
Connection con =DriverManager.getConnection(
"jdbc:mysql://localhost:3306/test?user=root&password=root");
7.JDBC URLs语法
a)使用URL来查找数据库服务器的位置
b)常见数据库的URL
JDBC-ODBC:jdbc:odbc:ODBC名称
Oracle:jdbc:oracle:thin:@ computerName或IP地址:端口:数据库名称
MySQL: jdbc:mysql://computerName或IP地址 :端口/数据库名称
Sybase:jdbc:sybase:Tds:computerName或IP地址:端口
SQL Server:
jdbc:microsoft:sqlserver://computerName或IP地址:端口;databaseName=数据库名称
c)Connection con =DriverManager.getConnection(
"jdbc:mysql://localhost:3306/test?user=root&password=root");
8.Step 3--创建Statement
a)Statement对象用来执行SQL语句,对数据进行操作
b)通过connection.createStatement()方法得到Statement对象
c)语法
Statement stm = connection.createStatement();
d)示例
Statement stm = null;
ResultSet rs = null;
try{
stm =connection.crateStatement();
rs = stm.executeQuery("select id, name, agefrom student");
}catch(SQLException e) {}
9.Step 4--执行SQL语句
a)通过Statement对象将SQL语句原样传送到已经建立连接的数据库并执行
b)查询数据的SQL语句执行后得到的结果集以表数据的形式存储在java.sql.ResultSet对象中,通过ResultSet对象访问查询结果
executeQuery(sqlString):执行查询相关的SQL语句,返回ResultSet对象
c)添加,删除,修改数据的SQL语句执行后返回整数,表示受到影响的行数
executeUpdate(sqlString):执行增加,修改,删除相关SQL语句或不返回任何内容的SQL语句
d)executeQuery(sqlString)
语法
Connection con = DriverManger.getConnection(urlString);
Statement stm = con.createStatement();
ResultSet rs = stm.excuteQuery(sqlString);
示例
Statement stm = con.createStatement();
ResultSet rs = stm.executeQuery(“select *from student”);
e)executeUpdate(sqlString)
语法
Connection con = DriverManger.getConnection(urlString);
Statement stm = con.createStatement();
int count = stm.excuteUpdate(sqlString);
示例
Statement stm = con.createStatement();
int count= stm.executeUpdate(“update studentset age=25 whereid=1”);
10.Step 5--处理Results
a)对数据进行添加、删除、修改等操作,SQL执行结束就已经完成
b)对数据进行查询,查询结果存放在ResultSet对象中
ResultSet对象是满足查询条件的数据行,是数据库表数据的子集
c)ResultSet
使用游标指向数据行
游标最初定位在第一行之前
boolean rs.next();
当游标指向某行数据,我们就可以从当前行取出需要的数据
d)在ResultSet对象中使用getXXX(索引或列名)方法获得数据
e)使用列名称或索引检索数据
rs.getString(2);
rs.getInt(“age”);
f)语法
While(rs.next()){
System.out.println(rs.getXXX(column);
}
g)示例
ResultSetrs = stm.executeQuery(“select* from student”);
while(rs.next()){
System.out.print("id: " +rs.getInt(1));
System.out.print("\tname: "+ rs.getString(2));
System.out.print("\tage: " +rs.getInt(3));
System.out.println("");
}
getDate(),getDouble(),getFloat(),getInt(),getLong(),getShort(),
getTime(),getString(),getBoolean(),getByte()……
11.Step 6--关闭JDBC对象
a)所有JDBC对象都需要关闭,关闭顺序应该是从小到大
ResultSet
Statement
Connection
b)示例
//关闭JDBC对象,释放资源
if(rs != null)try{ rs.close(); }catch(Exception e){}
if(stm != null)try{ stm.close(); }catch(Exception e){}
if(con != null)try{ con.close(); }catch(Exception e){}
12.应用JDBC示例
public class TestJDBC2 {
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
int count = 0;
String sql = "";
try {
Class.forName("com.mysql.jdbc.Driver");
conn =DriverManager.getConnection(
"jdbc:mysql://localhost:3306/test?user=root&password=root");
stmt = conn.createStatement();
sql = "update student set age=25 where id=1";
count =stmt.executeUpdate(sql);
} catch(Exception ex) {
ex.printStackTrace();
} finally {
try {
if(stmt!=null){ stmt.close(); }
if(conn!=null){ conn.close(); }
} catch (SQLException e){ e.printStackTrace(); }
} } }
JDBC操作数据的核心
1.JDBC操作数据的核心
a)Connection
应用程序与数据库之间的桥梁
数据库驱动程序是构建桥梁的基石和材料
DriverManager类是基石和材料的管理员
b)Statement
桥梁上的汽车,在应用程序和数据库之间运送SQL语句和执行结果
c)ResultSet
执行查询得到的数据集,由若干行和列组成的数据表,是数据库中数据表的子集,有游标
2.应用JDBC的总结
a)注册驱动
Class.forName(“com.mysql.jdbc.Driver”);
b)建立到数据库的连接
Connection con =DriverManager.getConnection(
"jdbc:mysql://localhost:3306/test?user=root&password=root");
c)创建statement
Statement stmt = con.createStatement();
d)执行SQL语句
int count= stmt.executeUpdate(“update studentset age=25 whereid=1”);
ResultSet rs= stmt.executeQuery(“select *from student”);
e)处理results
while(rs.next()){
rs.getString(2);
}
f)关闭JDBC对象
try {
if(rs!=null){ rs.close();}
if(stmt!=null){ stmt.close();}
if(conn!=null){ conn.close();}
} catch (SQLException e) {
e.printStackTrace();
}
g)某些步骤的实现方式有多种,比如:注册驱动……
3.驱动注册的其他方式
a)注册驱动的方式有多种
b)使用类装载器(Class.forName(“类名”))
Class.forName(“com.mysql.jdbc.Driver”);
c)使用new关键字实例化驱动类
d)在属性文件中配置jdbc.drivers属性
e)省略驱动程序注册步骤
使用JDBC4.0以上版本
4.可以使用new关键字对驱动进行显式的实例化
语法
Driver drv = newDriverConstructor();
DriverManager.registerDriver(drv);
示例
Driver drv = newcom.mysql.jdbc.Driver();
DriverManager.registerDriver(drv);
5.在配置文件中指定驱动类名
a)语法
jdbc.drivers =driverName
b)示例
//创建一个test.properties配置文件,在属性文件中写入属性并赋值
//然后在程序中读取配置文件
jdbc.drivers=com.mysql.jdbc.Driver
适合于数据库可能会变化的情况
6.获得连接的其他方法
a)通过DriverManager类获得连接对象
b)方法
getConnection(Stringurl)
getConnection(Stringurl, String user, String passwd)
getConnection(Stringurl, java.util.properties info)
c)示例
DriverManager.getConnection(“jdbc:mysql://localhost:3306/test”,“root”,”root”);
Properties pro = newProperties();
pro.setProperty(“user”,”root”); //键是user,不是username
pro.setProperty(“password”,”root”);
Connection con =DriverManager.getConnection(
“jdbc:mysql://localhost:3306/test”, pro);
d)通过指定的驱动对象直接调用connect()方法
e)语法
Connection con =Driver.connect(urlString, properties)
f)示例
Driver drv = newcom.mysql.jdbc.Driver();
Connection con = null;
Properties pro = new Properties();
pro.setProperty(“user”,”root”); //键是user,不是username
pro.setProperty(“password”,”root”);
try {
con =drv.connect(“jdbc:mysql://localhost:3306/test”, pro);
}catch(SQLException e){ e.printStackTrace(); }
Statement相关接口
1.Statement相关接口
Statement:执行SQL语句,对数据库进行操作
executeQuery():查询数据
executeUpdate():添加数据,删除数据,修改数据
PreparedStatement:扩展Statement接口,对预编译的SQL语句进行处理,提高效率
CallableStatement:扩展PreparedStatement接口,执行数据库存储过程口
2.PreparedStatement对象
a)对SQL语句的编译结果在缓存中保留,提高多次执行的效率
statement每次执行sql语句,相关数据库都要先将sql语句进行编译,然后执行。而preparedstatement则将sql语句编译的结果保留,可以多次执行。
b)语法
PreparedStatementpstm = connection.prepareStatement(sqlString);
c)示例
String sql = “select* from studentwhere id=?”;
pstm = connection.prepareStatement(sql);
pstm.setInt(1,1); //setString(),setFloat()
rs =pstm.executeQuery();//executeUpdate()
……
pstm.setInt(1,2);
rs =pstm.executeQuery();
3.CallableStatement对象
a)执行数据库存储过程(数据库中定义的函数)
b)语法
CallableStatement cstm = connection.prepareCall(sqlString);
c)示例
CallabeStatement cstm = null;
try{
cstm = connection.prepareCall(“{callproc_insert_test(?,?)}”);
cstm.setString(1, “sunqi”);
cstm.setInt(2, 33);
cstm.executeUpdate();
}catch(SQLExceptione){}
4.CallableStatement对象
存储过程返回值
5.应用JDBC的基本步骤
a)注册驱动
使用类装载器(Class.forName(“类名”))
使用new关键字实例化驱动类
在属性文件中配置jdbc.drivers属性
b)建立到数据库的连接
DriverManager.getConnection(url)
DriverManager.getConnection(url,name,pass)
DriverManager.getConnection(url,properties)
驱动类connect()
c)创建statement
statement
PreparedStatement
CallableStatement
d)执行SQL语句
e)处理results
f)关闭JDBC对象
分享到:
相关推荐
JDBC——连接oracle数据库
Oracle12C 12.2.0.1 JDBC 驱动 Oracle Database 12c Release 2 (12.2.0.1) drivers
JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。
Oracle工作总结——日志文件切换频率的调整 Oracle工作总结——日志文件切换频率的调整
ORACLE的JDBC JAR包ORACLE的JDBC JAR包ORACLE的JDBC JAR包ORACLE的JDBC JAR包
Oracle JDBC ojdbc6.jar ojdbc7.jar ojdbc8.jar ojdbc10.jar ojdbc11.jar
Flink JDBC Connector 支持Oracle , Flink 1.13.6 支持Oracle 11.2.0.4
Oracle Database 19c(19.3)JDBC驱动程序 通过JDK10认证; Oracle JDBC驱动程序
可用于连接oracle19c的jdbc驱动。 提取自19.3.0的安装程序,java版本需高于jdk8,64位。
非常完整的Oracle12c 驱动包 JDBC,包含:ojdbc8_g.jar等五个jar文件
oracle数据库JDBC驱动oracle 10g方便连接oracle10g数据库使用
因为Oracle的JDBC驱动 ojdbc12,ojdbc14 很古老了,是针对JDK1.2以及JDK1.4平台的。很多时候会有各种问题,所以从官网下载了最新的驱动,包括支持JDK1.5的ojdbc5.jar, 以及 支持JDK1.6的ojdbc6.jar驱动包,以及官方demo...
oracle12 jdbc驱动包
很好的oracle 10培训资料——管理第二部分:管理实例
oracle-jdbc6oracle-jdbc6oracle-jdbc6oracle-jdbc6oracle-jdbc6oracle-jdbc6oracle-jdbc6
Oracle经典教程6——Oracle应用于.NET平台
oracle11g的驱动包,包括classes12.jar,ojdbc5.jar,ojdbc6.jar;
Oracle JDBC驱动包
格式 PPT 讲义 第1章 数据库的概念 第2章 实体联系模型 第3章 关系模型及ORACLE对象关系数据库 第4章 ORACLE SQL和PL/SQL 第5章 关系数据库设计理论 ...第12章 ORACLE程序实例——图书管理信息系统
Oracle连接数据库JDBC驱动包,对于老版本的oracle,连接驱动比较难找比较难找,甲骨文官网下载难以查找旧版JDBC驱动。 压缩包搜集了几个版本的JDBC驱动,适用于Oracle9i 10,11等。