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:@10.211.95.152:1521:testdba";
    
    private static final String USER = "wlf";
    
    private static final String PASSWORD = "wlf";
    
    public static void main(String[] args)
    {
        String sql = "select TITLE from t_ues_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
TITLE: 组件test1
TITLE: 内容展示
TITLE: 内容链接
TITLE: 内容按钮
TITLE: 评论列表
TITLE: 图书目录
TITLE: 图书评论列表
TITLE: 内容描述
TITLE: 包含本书的书单
TITLE: 纵向内容列表_听书
TITLE: 发现首页
TITLE: 排行榜Tab列表
TITLE: 名家分类node
TITLE: 听书_图书目录
TITLE: 书单简介
TITLE: 会员中心顶部信息
TITLE: 内容按钮
TITLE: 个人中心页面-个人集团信息
TITLE: 富文本test
TITLE: 图书纵向列表
TITLE: 会员首页-权益说明
TITLE: 会员首页顶部状态
TITLE: 偷书主页
TITLE: 听书_内容展示
TITLE: 专区列表
TITLE: 个人中心页面-个人书评
TITLE: 访客列表
TITLE: 听书_专题推荐
TITLE: 悦读咖_banner轮播
TITLE: 活动页小标题
TITLE: 图文混排列表
TITLE: 图书名分类
TITLE: 同类推荐
TITLE: 咪咕猜正式
TITLE: 免费首页--投票信息
TITLE: 免费漫画瀑布流
TITLE: 横向内容列表
TITLE: 多图展示_听书
TITLE: 推荐三封面横向列表
TITLE: 单推荐书单带头像
TITLE: 书评列表_V7
TITLE: 书评列表_V7
TITLE: 赠书页
TITLE: 创建的书单
TITLE: 抽奖卡福利
TITLE: 鍐呭璇勮
TITLE: 收藏的书单
TITLE: 单本书单列表(图书详情页)
TITLE: 抽奖池
TITLE: 书单图书列表
TITLE: 用户风格调整
TITLE: 书单排行
TITLE: 编辑推荐书单
TITLE: 个人中心页面-个人书单
TITLE: 排行榜
TITLE: 排行榜列表
TITLE: 打赏记录
TITLE: 我的任务
TITLE: 内容媒体轮播
TITLE: 做任务赚成长
TITLE: 书单简介_V7
TITLE: 会员权益悬浮窗
TITLE: 赠书回流页
TITLE: 热门笔记列表
TITLE: 热门笔记入口
TITLE: 偷书书架
TITLE: 内容链接_听书
TITLE: 点播折扣福利
TITLE: 个人书评列表_V7
TITLE: 领取赠书结果页
TITLE: 个人笔记
TITLE: 会员首页图书精选
TITLE: 悦读咖作者投票
TITLE: 我的粉丝列表_V7
TITLE: 新用户登录新礼
TITLE: 我的关注列表_V7
TITLE: 促销券领取(第三方)
TITLE: 专题推荐_听书
TITLE: 滑动焦点
TITLE: 偷书福利
TITLE: 听书详情页-内容按钮
TITLE: 个人中心页面-个人信息
TITLE: 图片链接
TITLE: 个人中心页面-个人入口
TITLE: 个人中心页面-最近阅读

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

猜你喜欢

转载自www.cnblogs.com/wuxun1997/p/8968961.html