package dbex;

import java.io.Closeable;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties; import org.apache.commons.dbutils.DbUtils;
/**
*
* @ClassName: TestOraDB
* @Description: Oracle数据库测试 JDBC
* @author penny
* @date 2017年11月24日 上午11:40:01
*
*/
public class DBUtil {
/**
* 连接对象
*/
public static Connection conn = null;
/**
* 预处理SQL语句
*/
public static PreparedStatement prst=null;
/**
* 返回结果集
*/
public static ResultSet rs = null;
public static Properties pro=null; static{
try {
InputStream in = DBUtil.class.getResourceAsStream("../database.properties");
pro = new Properties();
pro.load(in);
Class.forName(pro.getProperty("driver"));
} catch (Exception e) {
System.out.println("加载驱动失败:"+e.getMessage());
}
}
/**
*
* @Title: getConnection
* @Description: 获取连接
* @param @return
* @param @throws SQLException 设定文件
* @return Connection 返回类型
* @throws
*/
public static Connection getConnection() throws SQLException{
// System.out.println(pro.getProperty("url"));
// System.out.println(pro.getProperty("user"));
// System.out.println(pro.getProperty("password"));
conn=DriverManager.getConnection(pro.getProperty("url"), pro.getProperty("user"), pro.getProperty("password"));
if(conn==null){
return null;
}else{
return conn;
}
}
/**
*
* @Title: executeQuery
* @Description: 执行查询
* @param @param sql
* @param @throws SQLException
* @throws
*/
public static void executeQuery(String sql) throws SQLException{
prst = (PreparedStatement) conn.prepareStatement(sql);
rs=prst.executeQuery();
while (rs.next()) {
System.out.println(rs.getString(1)+"\t"+rs.getString(2));
}
} public static void closeAll
(Connection a, PreparedStatement b, ResultSet c) throws IOException{
DbUtils.closeQuietly(a, b, c);
} public static void main(String[] args) throws Exception {
DBUtil db =new DBUtil();
db.getConnection();
db.executeQuery("select * from ex_clob");
db.closeAll(conn, prst, rs);
}
} 下面是连接配置文件database.properties ### Oracle
url=jdbc:oracle:thin:@localhost:1521:orcl
user=scott
password=tiger
driver=oracle.jdbc.driver.OracleDriver
### MySql
#url=jdbc:mysql://localhost:3306/libweb
#driver=com.mysql.jdbc.Driver
#user=root
#password=

  

JDBC 复习1 DBUtil的更多相关文章

  1. JDBC复习

    -----------------------------------------JDBC复习----------------------------------------- 1.JDBC (Jav ...

  2. JDBC复习2

    前面复习了一些基础知识以及如何抽取一些常用的代码,接下来就结合junit4做一个增删改查的小demo 重点是这么几个步骤:1.创建连接 2.编写sql语句 3.编写sql语句的载体 4.如果是Prep ...

  3. JDBC 复习4 批量执行SQL

    1使用jdbc进行批量执行SQL在实际的项目开发中,有时候需要向数据库发送一批SQL语句执行,这时应避免向数据库一条条的发送执行,而应采用JDBC的批处理机制,以提升执行效率. package dbe ...

  4. JDBC 复习3 存取Oracle大数据 clob blob

    1 目录结构记得导包咯 mysql oracle 2 代码,DBUtil工具类见前面的随笔博文 package dbex.mysql; import java.io.BufferedReader; i ...

  5. JDBC 复习2 存取mysql 大数据

    大数据也称之为LOB(Large Objects),LOB又分为:clob和blob,clob用于存储大文本,blob用于存储二进制数据 mysql的大数据分为2种 blob 和 text ,没有cl ...

  6. JDBC复习1

    1.什么是JDBC JDBC是java数据库连接技术的简称(Java DataBase Connectivity) jdbc是接口,jdbc驱动才是接口的实现,负责连接各种不同的数据库.jdbc的AP ...

  7. JDBC 复习

    概念 Java DataBase Connectivity java数据库连接 定义了操作所有关系型数据库的规则(接口),不同的数据库厂商编写类实现这些接口,这些类就叫数据库驱动,使得用户只需要使用统 ...

  8. JDBC 复习5 mysql 的自增长主键 auto_increment

    MySQL 自增长主键 (1)如果把一个NULL插入到一个AUTO_INCREMENT数据列里去,MySQL将自动生成下一个序列编号.编号从1开始,并1为基数递增. (2)把0插入AUTO_INCRE ...

  9. 封装jdbc、DBUtil

    package com.cmos.util; import java.io.IOException; import java.io.InputStream; import java.sql.Conne ...

随机推荐

  1. javascript已存在的对象构造器中是不能添加新的属性的:

    <!DOCTYPE html><html><head><meta charset="utf-8"><title>菜鸟教程 ...

  2. 机器学习 - 算法 - 聚类算法 K-MEANS / DBSCAN算法

    聚类算法 概述 无监督问题 手中无标签 聚类 将相似的东西分到一组 难点 如何 评估, 如何 调参 基本概念 要得到的簇的个数  - 需要指定 K 值 质心 - 均值, 即向量各维度取平均 距离的度量 ...

  3. osg HUD 背景图片设置

    #ifdef _WIN32 #include <Windows.h> #endif // _WIN32 #include<iostream> #include <osgV ...

  4. sed替换 - 含斜杠(\)和Shell变量

    gen_image.bat中的内容如下:   FOTARomPacker.exe -i .\_ini\FOTARomPacker.ini -o .\_Output\a.bin @IF %ERRORLE ...

  5. QML使用MouseArea

    1.普通使用 MouseArea { anchors.fill: parent hoverEnabled: true//为true才会触发进入信号 onClicked: { } onEntered: ...

  6. videojs改变音量大小

    <audio id=example-video preload="auto" class="video-js vjs-default-skin" type ...

  7. using 关键字有两个主要用途

    转自:https://www.jianshu.com/p/5357dc4efcf8 using 关键字有两个主要用途: (一).作为指令,用于为命名空间创建别名或导入其他命名空间中定义的类型. (二) ...

  8. Spring mvc +ajax 发送邮件

    1.前端页面--form表单提交,通过发送按钮的id=“send”定位DOM,触发ajax请求 <form class="form-horizontal" id=" ...

  9. Angular 8 - 更小的包

    Angular 8 - 更小的包 Angular 8 发布 原文地址:https://blog.angular.io/version-8-of-angular-smaller-bundles-cli- ...

  10. 分布式消息通信之RabbitMQ_Note

    目录 1. RabbitMQ 安装 2. RabbitMQ 应用场景,特性 3. 官网入门指引 4. RabbitMQ 工作模型 5. RabbitMQ 主要的几种交换机类型 6. Java API的 ...