JDBC查询实例

  作为Java与数据库交互最古老的、最基础的规范,JDBC提供了访问底层数据库的接口,其他ORM框架都是在JDBC这块基石上构建的。下面我们看一个基本的JDBC查询例子:

package com.inspur.chinanet.point.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * JDBC实例
 *
 * @author wulinfeng
 * @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:wlfdba";
    
    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

  其实增删查改都是一样的套路,第一步先建立数据库连接,第二步执行sql语句,第三步处理查询结果。为什么我们需要对象关系映射(ORM)框架?因为JDBC套路太麻烦了,每次都需要这么一折腾,第三步尤其麻烦,需要把查到的基本类型再转换为对象。执行数据库操作后抛出来的异常处理也是个麻烦事,大家为了减少这些重复套路,就搞出来了ORM框架来简化代码。但是JDBC依然的底层规范,我们还是需要了解的。