在测试中,我们常常需要连接Oracle数据库来进行查询对比。下面,我们就来看看,如何使用java代码来连接数据库,并且取出我们想要的数值。
首先,java中如果要连接Oracle数据库,需要jdbc的jar包。下载地址:https://mvnrepository.com/artifact/ojdbc/ojdbc
根据使用Oracle的方式,连接所使用的的Url为以下两种:
Oracle URL:
jdbc:oracle:thin:@HostName(or IP address):1521:SID
jdbc:oracle:thin:@//HostName(or IP address):1521:SERVICENAME
这里的参数thin表示小型驱动,HostName(or IP address):1521这个是指代Oracle数据库的具体网络位置。SID/ServiceName这个是指具体链接的数据库SID或者数据库的服务。
在真正连接数据库之前,我们需要先注册一个驱动。
try {
Class.forName("oracle.jdbc.driver.OracleDriver"); }catch (ClassNotFoundException e) { System.out.println("找不到驱动程序类,驱动加载失败!");
这种方式是使用类加载的方式来注册驱动。
当然,我们还可以使用新建OracleDriver对象的方式来注册驱动。
Driver driver = new OracleDriver(); DriverManager.deregisterDriver(driver);
两种方式均可以,可以根据实际情况进行选择。
接下来,我们就要获取Oracle数据库的链接。
connect = DriverManager.getConnection("jdbc:oracle:thin:@OracleDataBaseHost:1521:XE", "连接oracle数据库用户名", "用户名密码");
如果使用的是driver对象注册的。可以使用下面的代码
Properties properties = new Properties(); properties.put("user", "oracle数据库用户名"); properties.put("password", "用户名密码"); connect = driver.connect("jdbc:oracle:thin:@localhost:1521:XE", properties);
有了链接之后,我们就可以使用这个链接,来获取执行sql语句的对象。
statement = connect.createStatement();
如果是driver对象的方式
PreparedStatement preState = connect.prepareStatement("select * from tb1 where name = ?");
再接下来,就是具体的执行sql的语句
resultSet = statement.executeQuery("select * from tb1");
如果是PrepareStatement的对象,也是一样的。
ResultSet rs = preState.executeQuery();
然后,根据得到的ReslutSet来对结果进行处理。
while (rs.next()){ int id = rs.getInt("id"); String name = rs.getString("name"); String wbsCode = rs.getString("wbscode"); System.out.println(id+" "+name+" "+ wbsCode); //打印输出结果集 }
最后,逐一关闭链接的资源。不关闭的话会影响性能、并且占用资源。注意关闭的顺序,最后使用的最先关闭 !
try { if (rs!=null) rs.close(); if (statement!=null) statement.close(); if (connect!=null) connect.close(); } catch (SQLException e) { e.printStackTrace(); }
这样,整体就完成了从Oracle数据库连接并读取数据的操作。
自らに運を定めるべし!