
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()
}
}
文件用:ojdbc6.jar
/*** 一个非常标准的连接Oracle数据库的示例代码
*/
public void testOracle()
{
Connection con = null// 创建一个数据库连接
PreparedStatement pre = null// 创建预编译语句对象,一般都是用这个而不用Statement
ResultSet result = null// 创建一个结果集对象
try
{
Class.forName("oracle.jdbc.driver.OracleDriver")// 加载Oracle驱动程序
System.out.println("开始尝试连接数据库!")
String url = "jdbc:oracle:thin:@127.0.0.1:1521:XE"// 127.0.0.1是本机地址,XE是精简版Oracle的默认数据库的SID
// 如果是服务名,则用String url = "jdbc:oracle:thin:@127.0.0.1:1521/ORCL
String user = "system"// 用户名,系统默认的账户名
String password = "147"// 你安装时选设置的密码
con = DriverManager.getConnection(url, user, password)// 获取连接
System.out.println("连接成功!")
String sql = "select * from student where name=?"// 预编译语句,“?”代表参数
pre = con.prepareStatement(sql)// 实例化预编译语句
pre.setString(1, "刘显安")// 设置参数,前面的1表示参数的索引,而不是表中列名的索引
result = pre.executeQuery()// 执行查询,注意括号中不需要再加参数
while (result.next())
// 当结果集不为空时
System.out.println("学号:" + result.getInt("id") + "姓名:"
+ result.getString("name"))
}
catch (Exception e)
{
e.printStackTrace()
}
finally
{
try
{
// 逐一将上面的几个对象关闭,因为不关闭的话会影响性能、并且占用资源
// 注意关闭的顺序,最后使用的最先关闭
if (result != null)
result.close()
if (pre != null)
pre.close()
if (con != null)
con.close()
System.out.println("数据库连接已关闭!")
}
catch (Exception e)
{
e.printStackTrace()
}
}
}
Exception in thread "main" java.lang.NoClassDefFoundError: oracle/dms/console/DMSConsole主要看这一行,NoClassDefFoundError
NoClassDefFoundError 这个错误出现时一般是这两种情况:
1. Windows 不区分文件名大小写,你把文件名搞错了,它和 public class 名字有着大小写的不同。
2. 一个类在 static { } 这个初始化代码块或 static Clz instance= new Clz()时 new Clz() 抛出了异常。这样一个 class 在第一次加载后会自动执行 class 级别的初始化代码,比如静态变量和 static { } 中的代码,这个时候如果有一个异常未处理就导致 class 初始化失败,这个 class 确实存在,加载成功了,但加载后 define 这个 class 时出错了。所以错误的名字叫 NoClassDefFoundError 而不是 ClassNotFound,它确实 found 了,但 define 失败。
从你的案例来看,肯定不是第1种情况。
因此你需要做的事情时,从日志中找出来到底什么原因导致 Hibernate 初始化的时候出错了。你的代码有没有可能把某个 Hibernate 初始化的代码直接 try { ... } catch (Exception e) { /* 新手经常在此处什么也不做,连日志都不打印一个 */} ,如果有新手写出这样的代码你是没办法猜出原因的,你唯一的办法只有人工检查代码,一行一行地看。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)