java是与Oracle数据连接(jdbc)


为了对学过的知识进行回顾和总结,今天写这篇文章。

      为了使用java从数据库去读数据,或者把数据写入到数据库中。我们需要了解一些数据库连接的相关知识。

首先要不一个与数据库连接的包导入到Eclipse中,这个包的名字是:ojdbc14_11g.jar

用java连接数据有一下几步:

               a.注册驱动

               b.通过驱动管理器连接数据库。

               c.获得语句对象。

               d.传递SQL语句对象,并放回查询结果。

               e.关闭资源。

下来是相应的代码实现数据库的连接:

    1由于我连接数据库时候,用的是Oracle数据库。所以注册数据库驱动的用如下方式(不同数据库,字符不一样):

                        Class.forName("oracle.jdbc.driver.OracleDriver");//构建一个指定字符串的实例

    2通过驱动管理器获得到数据库的连接

                       //格式:"jdbc:oracle:thin:@<IP>:<端口号,默认1521>:<sid>"
			String url = "jdbc:oracle:thin:@localhost:1521:orcl";
			String dbUsername = "system";
			String dbPassword = "openlab";
			conn = DriverManager.getConnection(url, dbUsername, dbPassword);
对于IP,如果所写的java程序与数据库在同一台计算机上,这时候可以写localhost,但是对不不在同一台计算机上这种情况,就需要写相应所在机子上的IP地址。对于Oracle数据库,使用端口号是1521。不同的数据有不同的端口号。sid指明了要连接的数据库的类型。dbUsername和dbPassword指的是按住数据库是所填写的用户名和密码。如果在安装Oracl没有填写用户名,默认是system。口令是必填的,口令就是这个地方的dbPassword。通过url,dbUsername,dbPassword这三个信息获得到数据库的一个连接的对象conn。而这个对象的类型是:Connection。

    3.通过获得的连接获得语句对象。获得这个对象是为了调用相应的方法执行SQL语句的。

                       stmt = conn.createStatement();
   4.执行SQL语句,并且遍历结果集

                        String sql = "select dname,location from dept_fen";
			rs = stmt.executeQuery(sql);
			while(rs.next()){
				String dname = rs.getString("dname");
				String loc = rs.getString("location");
				//String dept = rs.getString("deptno");
				System.out.println(dname + ","+ loc);
			}
需要说明的是:dept_fen是我数据库中的一个表。用语句对象,调用executeQuery()方法,来执行SQL语句。

   5关闭资源。

   获得连接,获得语句对象,获得查询的结果集,都需要耗费相当大的资源。如果资源不关闭的话,数据库资源用尽,将不能进行数据的操作。所以关闭连接比较重要,切勿忘记!为了确保在任何情况下都能关闭打开的资源,可以使用下面这种方式。

finally{
			//可以把关闭资源放在finally中,这样有个好处就是,不管发生什么情况,总会别执行到,所用建议使用这种
			//方式来关闭资源,这是比较好的一种方式
			try{
				rs.close();
			}catch(SQLException e){
				e.printStackTrace();
			}
			try{
				stmt.close();
			}catch(SQLException e){
				e.printStackTrace();
			}
			
			try{
				conn.close();
			}catch(SQLException e){
				e.printStackTrace();
			}
}
finally确保了在任何情况下,其内部的代码都会别执行到。


发布了76 篇原创文章 · 获赞 4 · 访问量 9万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章