Oracle数据库的JDBC查询实例
作为Java与数据库交互最古老的、最基础的规范,JDBC规范提供了访问底层数据库的接口,其他ORM框架都是在JDBC这块基石上构建的。下面我们看一个基本的JDBC查询例子:
首先在pom.xml中加入oracle驱动包:
<dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc14</artifactId> <version>10.2.0.2.0</version> </dependency>
这个ojdbc14的包从中央仓库不一定能下得下来,可以去网上找,然后扔到对应的本地仓库中,最后去IDEA中把依赖的包更新一下:File -> Project Structure -> Libraries -> 找到ojdbc14(如果maven仓库没有包,会标红提示),先删后增,替换新包:
接下来就可以用jdbc来调用oracle数据库了:
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; /** * JDBC实例 * * @author wulf * @version C10 2018年4月28日 * @since SDP V300R003C10 */ public class JDBCDeom { private static final String JDBC_DRIVER = "oracle.jdbc.driver.OracleDriver"; private static final String DB_URL = "jdbc:oracle:thin:@127.0.0.1:1521:orcl"; private static final String USER = "wlf"; private static final String PASSWORD = "wlf"; public static void main(String[] args) { String sql = "select TITLE from t_wlf_component_template"; Connection conn = null; Statement stmt = null; try { Class.forName(JDBC_DRIVER); conn = DriverManager.getConnection(DB_URL, USER, PASSWORD); stmt = conn.createStatement(); ResultSet rs = stmt.executeQuery(sql); while (rs.next()) { String paramName = rs.getString("TITLE"); System.out.println("TITLE: " + paramName); } rs.close(); } catch (SQLException se) { se.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } finally { try { if (stmt != null) { conn.close(); } } catch (SQLException se) { } try { if (conn != null) { conn.close(); } } catch (SQLException se) { se.printStackTrace(); } } } }
执行结果如下:
TITLE: 滑动广告组件 TITLE: 名家推荐 TITLE: 活动小标题 TITLE: 样式标题组件 TITLE: 轮循链接列表 TITLE: 分类推荐 TITLE: 广告区块 TITLE: 兑换卡福利 TITLE: 创建的书单 TITLE: 私人推荐 TITLE: 导航业务组件 TITLE: null
其实增删查改都是一样的套路,第一步先建立数据库连接,由DriverManager对象负责,第二步执行sql语句,由Statement对象负责,第三步处理查询结果,由ResultSet负责。DriverManager创建了Connection对象,而Connection对象创建了Statement对象,Statement对象由产生了ResultSet对象,环环相扣。
为什么我们需要对象关系映射(ORM)框架?因为JDBC套路太麻烦了,每次都需要这么一折腾,第一步浪费性能,第三步尤其麻烦,需要把查到的基本类型再转换为对象。执行数据库操作后抛出来的异常处理也是个麻烦事,大家为了减少这些重复套路,就搞出来了ORM框架来简化代码。但是JDBC依然的底层规范,它是地基,没有地基就没有上层建筑。