(相关资料整合)
一、整体来说,这是一个连接oracle数据库的一个连接字符串,指明连接数据库的URL,可理解为三部分-〉协议(jdbc):子协议(oracle:thin):数据源标识(@localhost:1521:orcl)
二、jdbc:Java Database Connectivity,即Java数据库连接,实质是一个Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC可做3件事情:1、连接数据库 2、发送SQL语句 3、(从数据库)接收处理结果。从连接字符串角度讲,指出连接数据库用的是JDBC的方式。
二、oracle:thin
指出连接的是oracle数据库,同时连接方式为thin方式,即瘦方式,不需要客户端的方式。与之对的另一种连接方式为胖方式:cli,这种方式需要安装客户端。
三、@localhost:1521:orcl
localhost 数据库的地址,非本地时可按为数据库的IP地址;
1521 orcal数据库默认的监听端口,可换为其他监听端口;
orcl orcal数据库默认的一个实例,可按为其他实例名。
四、扩展一下
java连接其他数据库的连接字符串
-----MySQL-----
driverString = com.mysql.jdbc.Driver
dataBaseUrl = jdbc:mysql://127.0.0.1:3306/scutcs
-----ms sql 2000-----
driverString = com.microsoft.jdbc.sqlserver.SQLServerDriver
dataBaseUrl = jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=Demo
-----ms sql 2005-----
driverString = com.microsoft.sqlserver.jdbc.SQLServerDriver
dataBaseUrl = jdbc:sqlserver://localhost:1433;DatabaseName=Demo
-----ms sql 第三方统一方式-----
driverString= net.sourceforge.jtds.jdbc.Driver
dataBaseUrl = jdbc:jtds:sqlserver://localhost:1433;DatabaseName=Demo
这种方式需要第三方包:jtds-1.2.jar;
-----DB2-----
driverString = com.ibm.db2.jcc.DB2Driver
dataBaseUrl = jdbc:db2://localhost:50000/toolsdb
五、连接数据库的七个步骤
1、加载驱动
Class.forName(driverString);
2、建立连接
Connection conn = DriverManager.getConnection(dataBaseUrl , username , password );
3、创建声明
a.执行静态SQL语句,一般通过Statement实例实现,eg: Statement stmt = conn.createStatement() ;
b.执行动态SQL语句,一般通过PreparedStatement实例实现,eg: PreparedStatement pstmt = conn.prepareStatement(sql);
c.执行存储过程,一般通过CallableStatement实例实现,eg: CallableStatement cstmt = conn.prepareCall("{CALL demoSp(? , ?)}") ;
4、执行SQL
Statement接口提供了三种执行SQL语句的方法:executeQuery 、executeUpdate 和execute
a. ResultSet executeQuery(String sqlString):执行查询数据库的SQL语句,返回一个结果集(ResultSet)对象。
具体语句为:ResultSet rs = stmt.executeQuery("SELECT * FROM ...");
b. int executeUpdate(String sqlString):用于执行INSERT、UPDATE或DELETE语句以及SQL DDL语句,如:CREATE TABLE和DROP TABLE等
具体语句为:int rows = stmt.executeUpdate("INSERT INTO ...") ;
c. execute(String sql):用于执行返回多个结果集、多个更新计数或二者组合的语句。
具体实现的代码:boolean flag = stmt.execute(sqlString)
5、处理结果
结果一:执行查询返回的是ResultSet对象(记录集)
结果二:执行更新返回的是本次操作影响的记录数。
访问结果的方法:
while(rs.next()){
String name = rs.getString("name") ;
String pwds = rs.getString(1) ; //本方法高效
}
6、关闭资源
反序关闭,先内后外。记录集-声明-连接
if(rs != null){
try{
rs.close();
}catch(SQLException e) {
e.printStackTrace() ; e.printStackTrace();
}
} ...