class12.jar文件。
由于thin驱动都是纯Java代码,并且使用TCP/IP技术通过java的Socket连接上Oracle数据库,所以thin驱动是与平台无关的,无需安装Oracle客户端,只需要下载一个thin驱动的jar包,并且将环境变量中的CLASS_PATH变量中加入thin驱动的路径就可以了。
Thin驱动虽然与平台无关,也无需安装Oracle客户端,但是有一个致命的缺陷就是性能一般,达不到如OCI方式的企业级的要求。另外,如果一个oracle数据库对应一台主机,可以使用thin连接;如果一个oracle数据库对应四五台主机(集群服务器)。
使用thin时,需要把tnsnames.ora文件中的相关数据库的整个连接字符串都拷贝下来,如此才能连接上oracle集群数据库。
使用OCI连接数据库是企业级的做法,适应于单个数据库和集群数据库,性能优越,尤其是连接池功能大大提高了应用程序的性能和并发量。唯一的缺点是,若想使用OCI必须要安装Oracle客户端。
java连接Oracle11G:1,找到驱动包,在oracle安装目录下我的是D:\Oracle\product\11.1.0\db_1\jdbc\lib;此目录下有ojdbc5.jar,ojdbc6.jar,如果jdk5就用5,6就用6;
2,配置驱动包的变量(我把驱动包拷出来,放在d:\java\util里面),配置后上面MYSQL的类似。
3,测试代码:
import java.sql.Connection
import java.sql.DriverManager
import java.sql.SQLException
import java.sql.PreparedStatement
public class JDBCOracle{
// 定义数据库驱动程序
public static final String DBDRIVER = "oracle.jdbc.driver.OracleDriver"
// 定义数据库的连接地址
public static final String DBURL = "jdbc:oracle:thin:@localhost:端口号:数据库标识符"
//端口号后标识符可以通过在doc下运行lsnrctl status查看 default:1521
// 数据库的连接用户名
public static final String DBUSER = "scott"
// 数据库的连接密码
public static final String DBPASS = "tiger"
public static void main(String args[]) throws Exception{// 所有异常抛出
Connection conn = null// 数据库连接
Class.forName(DBDRIVER) // 加载驱动程序
conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS)
PreparedStatement pstmt = null
String sql = "INSERT INTO person(id,name,age,birthday) VALUES (myseq.nextVal,?,?,?)"
pstmt = conn.prepareStatement(sql)
pstmt.setString(1,"tomcat")
pstmt.setInt(2,30)
pstmt.setDate(3,new java.sql.Date(new java.util.Date().getTime()))
pstmt.executeUpdate() // 执行更新操作
pstmt.close()
conn.close() // 数据库关闭
}
}
1)首先你要有java连接oracle数据库的驱动类,下载好后导入到工程里2)代码:
import java.sql.*
public class JDBCTest {
/**
* @param args
* @throws ClassNotFoundException
*/
public static void main(String[] args)
throws ClassNotFoundException, SQLException{
//1.准备参数
String ip = "192.168.0.26"
String sid = "tarena"
String port = "1521"
String dbUser = "openlab"
String dbPassword = "open123"
String driver
= "oracle.jdbc.driver.OracleDriver"
//2.构造驱动实例
Class.forName(driver)
//3.创建连接
//连接字符串是固定的形式,oracle的形式:
String url
= "jdbc:oracle:thin:@"
+ ip + ":" + port + ":" + sid
Connection conn
= DriverManager.getConnection
(url, dbUser, dbPassword)
//4.执行SQL语句
String sql = "select id, password, name from user_sd1104 " +
"where id = 1001 and password = '1234'"
Statement stmt = conn.createStatement()
ResultSet rs
= stmt.executeQuery(sql)//执行sql语句
while(rs.next()){
int id = rs.getInt(1)
String pwd = rs.getString(2)
String name = rs.getString(3)
System.out.println("welcome," + name)
}
rs.close()
stmt.close()
conn.close()
}
}