我正在尝试从java程序执行sql命令..我没有关于此代码的任何错误..但我面临来自数据库的连接拒绝..
import java.sql.*;
public class DBCreateTable
{
public static void main(String args[]) throws Exception
{
DriverManager.registerDriver (new Oracle.jdbc.driver.OracleDriver());
Connection con=DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521:xe","lms","abc");
Statement stmt=con.CreateStatement();
stmt.executeUpdate("create table emp(eno number(5),name varchar2(20))");
}
}
遇到的错误是:
Exception in thread "main" java.sql.SQLException: Io exception: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=185599488)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4))))
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:333)
at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:404)
at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.ja
va:468)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:314)
at java.sql.DriverManager.getConnection(DriverManager.java:579)
at java.sql.DriverManager.getConnection(DriverManager.java:221)
at DBCreateTable.main(DBCreateTable.java:7)
在我的sql命令中,我完成了以下操作..
SQL> connect system/tiger;
SQL> create user lms identified by abc;
SQL> grant connect,resource to lms;
并告诉我什么是斯科特老虎..我在那里弄得很多......那里的用户是什么......解锁怎么样?谢谢..
答案 0 :(得分:7)
将oracle驱动程序jar添加到项目构建路径中,它应该可以工作。 (例如http://mirrors.ibiblio.org/pub/mirrors/maven/mule/dependencies/maven1/oracle-jdbc/jars/ojdbc14.jar)
答案 1 :(得分:0)
您的包裹名称错误。
DriverManager.registerDriver (new **Oracle**.jdbc.driver.OracleDriver());
在java中,包名始终以uncapitalize letter开头。您的计划在compilation time
失败了。
答案 2 :(得分:0)
Oracle 11g以后不再支持或提供oracle.jdbc.driver。*类,theojdbc4.jar文件和OracleConnectionCacheImpl类。所以请改用oracle.jdbc.oracledriver。
答案 3 :(得分:-2)
karjala 你是否下载Oracle JDBC驱动程序首先下载它们,你可以从这里下载Oracle JDBC驱动程序 http://www.oracle.com/technetwork/database/enterprise-edition/jdbc-112010-090769.html 选择适合您的数据库版本的版本。
连接Oracle的Java程序: 以下Java程序使用Oracle JDBC驱动程序连接到正在运行的Oracle数据库实例。您可以在任何Oracle数据库上使用此程序,因为此示例使用Oracle的内置虚拟表DUAL来获取系统日期。 DUAL使我们能够使用普通的SQL查询获取系统日期等值。
1 //示例Java程序 - Oracle数据库连接 2 import java.sql.Connection; 3 import java.sql.Date; 4 import java.sql.DriverManager; 五 import java.sql.ResultSet; 6 import java.sql.SQLException; 7 import java.sql.Statement; 8
9 公共类OracleSample { 10
11 public static final String DBURL =“jdbc:oracle:thin:@localhost:1521:XE”; 12 public static final String DBUSER =“system”; 13 public static final String DBPASS =“manager”; 14
15 public static void main(String [] args)抛出SQLException { 16
17 //加载Oracle JDBC驱动程序 18 DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); 19
20 //连接到Oracle数据库 21 Connection con = DriverManager.getConnection(DBURL,DBUSER,DBPASS); 22
23 Statement statement = con.createStatement(); 24
25 //在Oracle Dummy DUAL表上执行SELECT查询。用于检索系统值 26 //使我们能够像从表中查询一样检索值 27 ResultSet rs = statement.executeQuery(“SELECT SYSDATE FROM DUAL”); 28
29
30 if(rs.next()){ 31 Date currentDate = rs.getDate(1); //返回第一列 32 System.out.println(“Oracle的当前日期是:”+ currentDate); 33 } 34 rs.close(); 35 将statement.close(); 36 con.close(); 37 } 38 }
我希望这能帮助你们.......: - )