本菜鸟纯属小白一个,野生的学渣一枚,经厉过痛苦艰辛的过程,终于把MyEclipse与Oracle之间的各种初级连接搞定,下面记录一下我遇到的各种问题,留个纪念。
jsp测试数据库连接的代码。
<span style="font-size:14px;"><%@ page language="java" import="java.util.*" pageEncoding="gb2312"%>
<%@ page import="java.io.*,java.sql.*,javax.sql.* ,javax.naming.*" %>
<%@ page contentType="text/html; charset=UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'MyJsp.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
</head>
<body>
This is my JSP page. <br>
<%
Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
String url="jdbc:oracle:thin:@localhost:1521:orcl";
String user="scott";
String password="newpwd";
Connection conn= DriverManager.getConnection(url,user,password);
Statement stmt= conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql= "SELECT * FROM aaaaaa";
ResultSet rs= stmt.executeQuery(sql);
while(rs.next()){
%>
first=<%=rs.getString(1) %><br>
second=<%=rs.getString(2) %><br>
<%} %>
<%out.print("数据库操作成功"); %>
<% rs.close();
stmt.close();
conn.close();
%>
</body>
</html>
</span>
起初遇到的问题在
<span style="font-size:14px;"> Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();</span>
无法加载数据库,后来发现是classes12.zip驱动包没有加载到项目里。
接下来
<span style="font-size:14px;"> Connection conn= DriverManager.getConnection(url,user,password);</span>
怎么都连不上,报错是数据库内部的问题,后来发现第一个问题是数据库是锁着的,解锁之后,又发现登录口令过期了。。。。哭死(;´༎ຶД༎ຶ`)
解决办法是:
查看用户状态:
SQL>select
username,account_status
from
dba_users;
解锁数据库:
SQL>alter user username account unlock;
在以SYSDBA身份登陆时修改其他用户的密码,比如:
SQL> alter user username identified by newpwd;
再登陆就ok啦。但是奇怪的这期间我发现用tiger/scott这个口令登陆pl/sql还是没问题的,求大神解答。。。
继续,还没完呢~
我用的是jsp测试Oracle,结果发现编译什么的都可以通过,网页也可以显示,但就是不出结果,咋改都不出。我崩溃了一天之后决定先用Java测试一下Oracle。。。无果。。。百度大神说我取不到结果是insert之后没有commit,我的确commit了,但还是木有。期间我发现过我的表拥有者是系统,也产生过疑问,但是没多想,还以为问题在sql语句那里。后来在一位大神的启发下,我用normal的身份建立一张表(以前都是用dba的身份),结果华丽丽的取出来了。O(∩_∩)O~~
经历过以上的种种,我的数据库连接终于可以正常读取数据了,期间有好多同学帮过我,感谢他们!but,我还是想说,虽然有各种培训班会给你指导,让你在编程的道路上一帆风顺,但我觉得还不如自己解决来得实在,起码我对Oracle的各种口令有了一个基本的了解,我还是要在我野生学渣的道路上继续下去,给自己加了个油,继续学习啦~