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依然的底层规范,它是地基,没有地基就没有上层建筑。

posted on 2018-04-28 17:31  不想下火车的人  阅读(847)  评论(0编辑  收藏  举报

导航