package comjdbctest;
import javasqlConnection;
import javasqlDriverManager;
import javasqlResultSet;
import javasqlStatement;
public class JDBCTest {
public static void main(String[] args) throws Exception {
//1加载驱动
//ClassforName("commicrosoftsqlserverjdbcSQLServerDriver");
//ClassforName("commysqljdbcDriver");
ClassforName("oraclejdbcdriverOracleDriver");
//2创建数据库连接对象
//Connection conn = DriverManagergetConnection("jdbc:sqlserver://localhost:1433;databaseName=db","sa","sqlpass");
//Connection conn = DriverManagergetConnection("jdbc:mysql://localhost:3306/dbuseUnicode=true&characterEncoding=UTF-8","root","123456");
Connection conn = DriverManagergetConnection("jdbc:oracle:thin:@localhost:1521:orcl","scott","Oracle123");
//3创建数据库命令执行对象
Statement stmt = conncreateStatement();
// PreparedStatement ps = connprepareStatement("select from t_user");
//4执行数据库命令
ResultSet rs = stmtexecuteQuery("select from t_user");
// ResultSet rs = psexecuteQuery();
//5处理执行结果
while (rsnext()) {
int id = rsgetInt("id");
String username = rsgetString("username");
String password = rsgetString("password");
Systemoutprintln(id + "\t" + username + "\t" + password);
}
//6释放数据库资源
if (rs != null) {
rsclose();
}
// if (ps != null) {
// psclose();
// }
if (stmt != null) {
stmtclose();
}
if (conn != null) {
connclose();
}
}
}
这是以前写的3中数据库的链接已经测试过了。
连接Oracle数据库的步骤:
1、加载纯Java驱动程序
ClassicforName(“oraclejdbcdriverOralceDriver”);
2、与Oracle数据库建立连接
Connection con=DriverManagergetconnection(“jdbc:oracle:thin:@主机host:端口号”,”用户名”,”密码”);
环境变量CLASSPATH,
;G:\oracleexe\app\oracle\product\1120\server\jdbc\lib\ojdbc6_gjar;
在Ajava所在的目录编译、运行,就要前面有;,否则指向Ajava所在目录
PATH中添加G:\ProgramFiles\Java\jdk170_40\bin —— 记住:是添加
java与oracle的接口:
在数据库中运行JAVA可以说是ORACLE8i的最令人激动的新特性。在你创建的使用ORACLE8i 数据库的应用程序中,你可以使用与JAVA有关的新特征,轻松的将程序发布到INTERNET或INTRANET上。
Methods for Using Java in ORACLE
大家都知道JAVA在跨平台开发与INTERNET开发中已经比较流行,ORACLE8i及以后的版本中都包含了对在数据库中运行JAVA的扩展支持,这里有两种方法可以使用:
JDBC:与ODBC类似, JDBC 提供了一个驱动接口使你可以在JAVA程序中访问数据库。注:JDBC驱动内嵌在数据库中虚拟机中。
SQLJ:是一个JAVA预编译器,它可以将内嵌的SQL语句转化为JAVA语句SQLJ的使用与运行机理与其它ORACLE的与编译器(如ProC,ProCOBOL)类似。实际上,为了使我们形象的记住SQLJ提供的功能,我们也可以直接将SQLJ改名为ProJava。
将JAVA集成到数据库中是双向的。也就是说你可以在JAVA中调用SQL与PL/SQL,也可以在SQL与PL/SQL中调用JAVA。JAVA程序可以直接通过JDBC驱动调用SQL与PL/SQL,反过来,你也可以在SQL与PL/SQL中直接调用JAVA。在数据库中,JAVA命名空间直接映射到数据库模式的命名空间中,这样可以方便JAVA的存取与调用。数据库同时提供扩展的DDL语句,通过这些语句,你可以象创建一个存储过程一样在数据中创建内嵌的JAVA程序。
Features of ORACLE JDBC Drivers
在ORACLE8i中有三种类型的JDBC驱动,他们都使用相同的 syntax, APIs, and Oracle extensions,以使JAVA代码在robust clients、Web-based Java applets, and Java stored procedures之间保持轻便灵活:三种类型如下:
1.JDBC OCI: 此驱动类似于传统的ODBC 驱动。因为它需要Oracle Call Interface and Net8,所以它需要在运行使用此驱动的JAVA程序的机器上安装客户端软件
2.JDBC Thin: 这种驱动一般用在运行在WEB浏览器中的JAVA程序。它不是通过OCI or Net8,而是通过Java sockets进行通信 ,因此不需要在使用JDBC Thin的客户端机器上安装客户端软件。
3.JDBC KPRB: 这种驱动由直接存储在数据库中的JAVA程序使用,如Java Stored Procedures 、triggers、Database JSP's。It uses the default/ current database session and thus requires no additional database username, password or URL
如何配置使JAVA可以通过Oracle JDBC Drivers连接到数据库:1安装Sun JDK
2 修改PATH环境变量,使其指向JDK的bin目录
3 设置CLASSPATH环境变量,使其指向正确的JDK的lib及oracle的JDBC接口。
CLASSPATH = ";"
3 运行"java –version" ,验证java的版本。
如何在不同的 *** 作系统上根据接口类型设置客户端:
对JDBC THIN接口:
在windows与unix下的设置方法一样:
1.根据jdk的版本,只需要将classesxxzip拷贝到指定的目录,不需要安装Oracle Client。在装完数据库后,该文件会在$ORACLE_HOME/jdbc/lib目录下。2.设置CLASSPATH,使其包含上面的classesxxzip
3.根据需要,拷贝oracle的其它zip文件并设置CLASSPATH
对JDBC OCI接口:
Fow Windows:
1.安装Oracle Client
2.根据jdk的版本,设置CLASSPATH,使其包含正确的classesxxzip
3.根据需要设置CLASSPATH,使其指向Oracle的其它zip文件
4.设置PATH,使其包含$ORACLE_HOME/bin目录
import javasql;
public class getMetaData {
public static void main(String[] args) {
String driverClassName = "oraclejdbcOracleDriver";
String url = "jdbc:oracle:thin:@192101101101:1521:orcl";
String password = "test";
String user= "test";
try {
ClassforName(driverClassName);
} catch (ClassNotFoundException ex) {
Systemoutprintln("加载错误!");
}
Connection conn = null;
try {
conn = DriverManagergetConnection(url, user, password);
Systemoutprintln("连接成功");
String sql = "select id_ tid,name_ tname1 ,memo remark from tc";
PreparedStatement ps=connprepareStatement(sql,ResultSetTYPE_SCROLL_INSENSITIVE,ResultSetCONCUR_READ_ONLY);
ResultSet rs=psexecuteQuery();
ResultSetMetaData md = psgetMetaData(); //psgetMetaData();//
for (int i = 1; i <= mdgetColumnCount(); i++) {
Systemoutprintln("name:"+mdgetColumnName(i)+" label:"+mdgetColumnLabel(i));
}
sql = "select max(id_) tid,name_ tname1 ,memo remark from tc group by name_,memo";
ps=connprepareStatement(sql,ResultSetTYPE_SCROLL_INSENSITIVE,ResultSetCONCUR_READ_ONLY);
rs=psexecuteQuery();
md = rsgetMetaData(); //psgetMetaData();//
for (int i = 1; i <= mdgetColumnCount(); i++) {
Systemoutprintln("name:"+mdgetColumnName(i)+" label:"+mdgetColumnLabel(i));
}
} catch (SQLException ex1) {
Systemoutprintln(ex1);
Systemoutprintln("失败");
}
}
}
在用jdbc连接数据库时,应该是不能指定 as sysdba的方式的。
对于你的需求,你完全可以 给 scott 授权 dba;
用 system 登录:
grant dba to scott;
这样就可以了,不过一般不建议这么做,这样scott拥有的权限太大。
以上就是关于java 实现 jdbc连接oracle 数据库的java代码怎么写全部的内容,包括:java 实现 jdbc连接oracle 数据库的java代码怎么写、求解答:JAVA利用JDBC链接ORACLE数据库出现错误。主要提示“Class.forName("oracle.jdbc.driver..."错误、JDBC连接oracle数据库问题 ClassNotFoundException等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)