大家帮我看看这个问题。java连接oracle。

sinat_28368871 2015-08-21 02:22:58
import java.sql.*;
public class TestJDBC {


public static void main(String[] args) throws Exception{
Class.forName("oracle.jdbc.driver.OracleDriver");
//new oracle.jdbc.driver.OracleDriver();
Connection conn= DriverManager.getConnection ("jdbc:oracle:thin:@127.0.0.1:1521:orcl","c##scott","tiger");
Statement stmt = conn.createStatement();//首先创建statement。
ResultSet rs = stmt.executeQuery("select * from dept");
while (rs.next()){
System.out.println(rs.getString("deptno"));
System.out.println(rs.getInt("deptno"));
}
rs.close();
stmt.close();
conn.close();
}

}
我run as上面这块代码,myeclipse一直在连接oracle,连接不上,红色的按钮一直是红的。。也不报错。什么原因?
...全文
82 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
PreLuyazhou 2015-08-21
  • 打赏
  • 举报
回复
学习了
Simba_cheng 2015-08-21
  • 打赏
  • 举报
回复

public class JDBCDemo1 {
	public static void main(String[] args) {
		try {
			/*
			 * 连接数据库流程:
			 * 1:加载驱动
			 * 2:建立连接
			 * 3:执行SQL
			 * 4:处理结果集
			 */
			//1
			/*
			 * 不同的数据库,中间的字符串内容不同
			 * oracle.jdbc.driver.OracleDriver
			 * com.mysql.jdbc.Driver
			 * 出现下列异常:
			 * java.lang.ClassNotFoundException: 
			 * oracle.jdbc.driver.OracleDriver
			 * 
			 * 说明项目中没有导入oracle的驱动jar包。
			 */
			Class.forName("oracle.jdbc.driver.OracleDriver");
			
			//2
			/*
			 * 建立连接时,不同的数据库,连接地址的格式不完全
			 * 一样
			 * DriverManager的静态方法getConnection用来连接
			 * 数据库,需要三个参数:
			 * 1:数据库的url
			 * 2:数据库用户名(openlab)
			 * 3:数据库密码(open123)
			 * 
			 * oracle的url格式
			 *                   地址:端口:数据库实例名
			 * jdbc:oracle:thin:@host:port:sid
			 */
			//java.sql.Connection
			Connection conn = 
			  DriverManager.getConnection(
					"jdbc:oracle:thin:@192.168.176.238:1521:orcl",
					"openlab",
					"open123");
			
			//3 java.sql.Statement
			Statement state = conn.createStatement();
			/*
			 * Statement用来执行SQL语句
			 * Statement提供了3个比较常用的方法:
			 * 1:
			 * ResultSet executeQuery(String sql)
			 * 该方法专门用来执行DQL语句(SELECT).并将查询结果
			 * 集返回。
			 * 
			 * 2:
			 * int executeUpdate(String sql)
			 * 该方法专门用来执行DML语句(增删改)。返回值为执行
			 * 该语句后影响了数据库的记录数。
			 * 
			 * 3:
			 * boolean execute(String sql)
			 * 该方法可以执行任何SQL语句。通常使用该方法来执行
			 * DDL操作。返回值:若执行语句后有查询结果集返回true
			 * 若执行SQL失败(例如表已经存在,SQL语句写错了等),
			 * 该方法会抛出SQLException
			 */
			//查询emp表中每个员工的名字,工资,部门,职位
			/*
			 * SELECT ename,sal,deptno,job
			 * FROM emp
			 */
			String sql = "SELECT ename,sal,deptno,job " +
			             "FROM emp";
			//打桩
			System.out.println(sql);
			
			//java.sql.ResultSet
			/*
			 * ResultSet表示查询的结果集
			 * 常用方法:
			 * 1:boolean next()
			 *   该方法会让ResultSet移动到下一条数据。若结果集
			 *   中有下一条数据那么返回true,并移动。若没有则返回
			 *   false.
			 * 2:提供了若干get方法
			 *   String getString(String fieldName)
			 *   int getInt(String fieldName)
			 *   ...
			 *   根据给定的字段名,调用相应类型的get方法,来获取
			 *   该字段的值
			 *   
			 * 3:还提供了get方法
			 *   String getString(int index)
			 *   int getInt(int index)
			 *   ...  
			 *   根据给定的字段的索引值,调用相应类型的get方法,
			 *   来获取该字段的值
			 *   第一个字段的索引值是1
			 */
			ResultSet rs = state.executeQuery(sql);
			while(rs.next()){
				String ename = rs.getString(1);
				int salary = rs.getInt(2);
				int deptno = rs.getInt(3);
				String job = rs.getString(4);
				System.out.println(
						ename+","+salary+","+deptno+","+job
				);
			}
			rs.close();
			state.close();
			conn.close();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}
很标准的...还有一个...你有没有添加jar包....
乱世丶桃花 2015-08-21
  • 打赏
  • 举报
回复
看看你的数据库是否连接正常 //Class.forName("oracle.jdbc.driver.OracleDriver"); new oracle.jdbc.driver.OracleDriver(); 用上面的
sinat_28368871 2015-08-21
  • 打赏
  • 举报
回复
import java.sql.*; public class TestJDBC { public static void main(String[] args) throws Exception{ //Class.forName("oracle.jdbc.driver.OracleDriver"); new oracle.jdbc.driver.OracleDriver(); Connection conn = DriverManager.getConnection("jdbc:oracle:thin:@127.0.0.1:1521:orcl","scott","tiger"); System.out.println("ok"); } } Ok打印不出来,程序也不报错,红色按钮不变灰色,什么情况?

50,336

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧