作为Java与数据库交互最古老的、最基础的规范,JDBC规范提供了访问底层数据库的接口,其他ORM框架都是在JDBC这块基石上构建的。下面我们看一个基本的JDBC查询例子:
首先在pom.xml中加入oracle驱动包:
com.oracle
ojdbc14
10.2.0.2.0
这个ojdbc14的包从中央仓库不一定能下得下来,可以去网上找,然后扔到对应的本地仓库中,最后去IDEA中把依赖的包更新一下:File -> Project Structure -> Libraries -> 找到ojdbc14(如果maven仓库没有包,会标红提示),先删后增,替换新包:
接下来就可以用jdbc来调用oracle数据库了:
importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;/*** JDBC实例
*
*@authorwulf
*@versionC10 4月28日
*@sinceSDP V300R003C10*/
public classJDBCDeom
{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 voidmain(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依然的底层规范,它是地基,没有地基就没有上层建筑。