myeclipse连接oracle
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了myeclipse连接oracle相关的知识,希望对你有一定的参考价值。
错误如下:
Exception in thread "main" java.sql.SQLException: ORA-01017: invalid username/password; logon denied
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:330)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:282)
at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:277)
at oracle.jdbc.driver.T4CTTIoauthenticate.receiveOauth(T4CTTIoauthenticate.java:784)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:361)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:413)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:164)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:34)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:752)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at com.jdbcOracle.Test.main(Test.java:9)
是oracle用户权限的问题吗?
这个就是代码上连接数据库错误,不是oracle权限问题,如果该用户在sqlplus下可以连接,就存在权限问题,是代码中配置问题。 参考技术B 出现invalid username/password; logon denied错误解决方案
1.Dos下输入命令:sqlplus sys/安装时设置的密码 as sysdba (回车)
2.然后输入命令:alter user scott account unlock;回车后,会出现“用户已更改”字样,接着看下一步。
3.输入命令: conn scott/tiger回车后,会出现一个错误提示(如下): ERROR: ORA-28001: the password has expired 更改 scott 的口令 新口令:
4.输入新口令;
5.重复输入新口令。
最后,搞定!追问
谢谢啊~弄好了,不过这是因为用户被锁定吗?
追答有可能,估计有别人正在使用或者更改了。我以前出这种错误就是别的项目组同时使用数据库,锁定了用户
本回答被提问者采纳 参考技术C 看看连接是不是有问题: tryClass.forName("oracle.jdbc.driver.OracleDriver"); //加载驱动
conn = DriverManager.getConnection("jdbc:oracle:thin:@192.168.1.10:1521:UsersDB","root2","1234567");
catch (ClassNotFoundException e)
e.printStackTrace();
catch (SQLException e)
e.printStackTrace();
参考技术D 一看就是用户名和密码输入有错误追问
没有错误的,我从plsql都能进去
知了堂学习笔记Eclipse,Myeclipse连接MySQL数据库和Oracle数据库
一.连接MySQL数据库
1.由于Eclipse,Myeclipse都没有连接MySQL数据的架包,我们需要自行下载MySQL连接架包 mysql-connector(官方链接:http://dev.mysql.com/downloads/connector/j/5.0.html),下载版本最好是最新版。
2.下载好后,复制到你的项目里任何位置,然后右键架包选择 Build path -> add to Build path,然后点击项目的Libraries里的Referenced Libraries 如果出现一个“奶瓶”后 mysql-connector。。。,表示导入成功,我们可以开始写连接数据库的方法了。
3.导入成功后,我们第一步就是 :加载及注册驱动程序. Class.forName("com.mysql.jdbc.Driver");
4.获取数据库链接:DriverManager.getConnection(url, user, pwd); url就是你mysql数据库的地址,本地数据库一般为:"jdbc:mysql://localhost:3306/数据库名",user,pwd就是你MySQL数据库的用户名和密码了。
具体代码:
public class JDBCUtils_MySQL { private static String user = "root"; //你的MySQL用戶名 private static String pwd = "123456"; //密碼 private static String url = "jdbc:mysql://localhost:3306/ofo";//你的数据库地址 ofo是数据库名字 /* * 加载数据库驱动 static 让数据库只加载一次 */ static { try { Class.forName("com.mysql.jdbc.Driver"); } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } } /* * 获得数据库链接 */ public static Connection getConnection() { try { Connection con = DriverManager.getConnection(url, user, pwd); return con; } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } }
连接数据库的方法类写好了,我们就来简单的用一下
public class mysqlTest { public static void main(String[] args) { // TODO Auto-generated method stub Connection conn = JDBCUtils_MySQL.getConnection(); //调用连接方法,获得一个数据库链接 String sql="select username from user where uid=\'1\'"; //要执行的SQL语句 try { PreparedStatement ps = conn.prepareStatement(sql); ResultSet rs = ps.executeQuery(); if(rs.next()) { System.out.println("用户名为:"+rs.getString(1)); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
我这里是: 查询user表中ID为1 的用户名,结果我就不贴图了。
二.链接Oracle数据库
1.Oracle数据库就不用专门去下载驱动包了,安装的Oracle目录里有驱动包(ojdbc5.jar),Oracle的驱动包在安装目录下:oracle\\product\\11.2.0\\dbhome_1\\jdbc\\lib下(我的Oracle版本是11g) ,包名为:ojdbc5.jar,我们直接去引入就行了。复制到你的项目中,操作和导入MySQL驱动包一样,
连接Oracle数据库的步骤和MySQL差不多,我直接贴代码:
public class JDBCUtils_Oracle { private static String user = "cjl"; // oracle 用户名 private static String pwd = "123456"; // 用户密码 private static String url = "jdbc:oracle:thin:@localhost:1521:orcl"; // localhost是因为数据库在本地,1521是端口号 /* * 加载数据库驱动 static让数据库只加载一次 */ static { try { Class.forName("oracle.jdbc.driver.OracleDriver"); } catch (ClassNotFoundException e) { e.printStackTrace(); } } /** 获得数据库连接 */ public static Connection getConnection() { try { Connection conn = DriverManager.getConnection(url, user, pwd); return conn; } catch (SQLException e) { e.printStackTrace(); } return null; } }
照样我们做个测试
public class oracleTest { public static void main(String[] args) { // TODO Auto-generated method stub Connection conn = JDBCUtils_Oracle.getConnection(); //方法和MySQL一样,只是用的方法类不同 String sql="select username from user where uid=\'1\'"; //要执行的SQL语句 try { PreparedStatement ps = conn.prepareStatement(sql); ResultSet rs = ps.executeQuery(); if(rs.next()) { System.out.println("用户名为:"+rs.getString(1)); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
欢迎大家进入知了堂社区——一个好玩有趣的学习社区:http://www.zhiliaotang.com
以上是关于myeclipse连接oracle的主要内容,如果未能解决你的问题,请参考以下文章