import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement; //自定义jdbc工具类。
//目的是简化jdbc开发。
public class JDBCUtil {
public static String driver="oracle.jdbc.driver.OracleDriver";
public static String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
public static String user = "system";
public static String password = "orcl";
//获取1条数据库的连接
public static Connection getConnection()
{
Connection con = null; //返回的连接
try {
//1 加载驱动
Class.forName(driver);
con = DriverManager.getConnection(url, user, password);
//2 获取连接
} catch (Exception e)
{
e.printStackTrace();
}
return con;
}
//查询:简单查询,不含?的sql语句
public static ResultSet doQuery(String sql)
{
return doQuery(sql,null);
} //查询:复杂查询,含有多个?的sql语句
public static ResultSet doQuery(String sql,String... ps)
{
//1 获取连接
Connection con = getConnection(); //调用上面的方法,获取1个连接
if(con==null)
{
System.out.println("获取连接失败!");
return null; //提前终止本方法代码
} ResultSet rs = null;
try {
//2执行查询
PreparedStatement psm = con.prepareStatement(sql);
//通过for循环,访问参数数组,给psm逐个设置可变参数!!
if(ps!=null) //只有可变参数不为空,才进行?赋值
{
for(int i=0;i<ps.length;i++)
{
psm.setString(i+1, ps[i]);//将第i个可变参数,设置到第i+1个问号
}
}
rs = psm.executeQuery();
} catch (Exception e)
{
e.printStackTrace();
}
//3 返回结果.注意,不能关闭,否则结果用不了
return rs;
} //修改(包含添加,删除,修改,删表,建表):返回sql影响的行数.不含?的sql语句
public static int doUpdate(String sql)
{
return doUpdate(sql,null);
} //修改(包含添加,删除,修改,删表,建表):返回sql影响的行数.含?有的sql语句
public static int doUpdate(String sql,String... ps)
{
//1 获取连接
Connection con = getConnection(); //调用上面的方法,获取1个连接
if(con==null)
{
System.out.println("获取连接失败!");
return 0; //提前终止本方法代码
} int result = 0;
PreparedStatement psm = null;
try {
//2执行查询
psm = con.prepareStatement(sql);
//通过for循环,访问参数数组,给psm逐个设置可变参数!!
if(ps!=null)
{
for(int i=0;i<ps.length;i++)
{
psm.setString(i+1, ps[i]);//将第i个可变参数,设置到第i+1个问号
}
}
result = psm.executeUpdate();
} catch (Exception e)
{
e.printStackTrace();
}
finally
{
close(null,psm,con); //修改完毕,记得关闭资源
}
//3 返回结果.注意,不能关闭,否则结果用不了
return result; } //关闭资源。三个参数的版本
public static void close(ResultSet rs,Statement sm,Connection con)
{
try {
if (rs != null)
rs.close();
if (sm != null)
sm.close();
if (con != null)
con.close();
} catch (Exception e)
{
e.printStackTrace();
}
}
//关闭资源。一个参数的版本
public static void close(ResultSet rs)
{
Statement sm = null;
Connection con = null;
try {
if (rs != null)
{
sm = rs.getStatement();
rs.close();
} if (sm != null)
{
con = sm.getConnection();
sm.close();
}
if (con != null)
con.close();
} catch (Exception e)
{
e.printStackTrace();
}
}
}

  

oracle---jdbc--laobai的更多相关文章

  1. Ignite 配置更新Oracle JDBC Drive

           如果使用Oracle 12C 作为Ignite 的Repository的话,在Repository Createion Wizard的配置过程中,会出现ORA-28040:No matc ...

  2. 高性能 Oracle JDBC 编程

    了解如何利用连接和语句池特性来提高 Oracle 驱动的 JDBC 程序的性能.作者:Yuli Vasiliev2009 年 4 月发布使用诸如连接池和语句池等池技术可以显著提高数据库密集型应用程序的 ...

  3. java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver 错误的解决办法

    java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver 错误的解决办法 (2011-05-05 16:08:05) 转载▼ ...

  4. mysql和oracle jdbc连接

    加载驱动. Class.forName("oracle.jdbc.driver.OracleDriver"); 1 创建连接. Connection con = DriverMan ...

  5. Eclipse中启用Oracle jdbc logging

    根据自己用的JRE版本, jre1.5选择ojdbc5_g.jar, jre6选择ojdbc6_g.jar, 只有带_g的dirver才输出debug信息. maven 的配置信息: <depe ...

  6. 在MAVEN仓库中添加ORACLE JDBC驱动

    本文转载自 http://www.cnblogs.com/leiOOlei/archive/2013/10/21/3380568.html 因为已经是第二次遇到,所以COPY过来,怕以后别人的BLOG ...

  7. 连接oracle jdbc

    我使用的是精简版的oracle. 1  导入oracle驱动包 oracle下路径 D:\oracle\app\oracle\product\11.2.0\server\jdbc\lib\ojdbc6 ...

  8. maven oracle jdbc jar

    1.problem describe: when your dependency jar about oracle use code like this: <!-- oracle-connect ...

  9. myeclipe eclipse 常遇问题:Some projects cannot be imported 、java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver、The file connot be validate

    1.Some projects cannot be imported because they already exist in the workspace 2.Some projects were ...

  10. Oracle Jdbc demo

    两种方式: thin是一种瘦客户端的连接方式,即采用这种连接方式不需要安装oracle客户端,只要求classpath中包含jdbc驱动的jar包就行.thin就是纯粹用Java写的ORACLE数据库 ...

随机推荐

  1. 如何查看Windows服务器运行了多长时间

    前言:有时候管理.维护Windows服务器需要定期重启服务器(为什么需要重启,你懂的),但是这个"定期"有时候会受很多因素影响,例如某台服务器忘了重启:某台服务器那个时间段业务繁忙 ...

  2. SQL SERVER 属性OWNER不可用于数据库xxx。该对象可能没有此属性,也可能是访问权限不足而无法检索。

    今天遇到一个案例:右键单击数据库的属性时出现下面错误提示: 属性Owner不可用于数据库xxx,该对象可能没有此属性,也可能是访问权限不足而无法检索. 使用脚本查看该数据库的Owner时发现Owner ...

  3. SLF4j:Log facade abstract

    内 容: 应用中使用slf4j的工作流程 简单示例 ILoggerFactory实例化过程 由ILoggerFactory创建Logger实例 slf4j 适配器实现 自定义适配器 slf4j 如何选 ...

  4. mac 安装mysql + 修改root用户密码 + 及报Access denied for user 'root'@'localhost' (using password:YES)解决办法

    1.下载MySQL 到mysql的官网http://dev.mysql.com/downloads/mysql/然后在页面中会看到“MySQL Community Server”下方有一个“downl ...

  5. 浅谈Linux中的信号处理机制(二)

    首先谢谢 @小尧弟 这位朋友对我昨天夜里写的一篇<浅谈Linux中的信号处理机制(一)>的指正,之前的题目我用的“浅析”一词,给人一种要剖析内核的感觉.本人自知功力不够,尚且不能对着Lin ...

  6. [转]Python 字符串操作实现代码(截取/替换/查找/分割)

    原文地址:http://www.jb51.net/article/38102.htm ps:好久没更新python代码了,这次用到了字符串,转来看看 Python 截取字符串使用 变量[头下标:尾下标 ...

  7. Merge k Sorted Lists

    1. Merge Two Sorted Lists 我们先来看这个 问题: Merge two sorted linked lists and return it as a new list. The ...

  8. Tomjson - 一个"短小精悍"的 json 解析库

    Tomjson,一个"短小精悍"的 json 解析库,tomjson使用Java语言编写,主要作用是把Java对象(JavaBean)序列化为json格式字符串,将json格式字符 ...

  9. 第38课 Qt中的事件处理(上)

    1. GUI程序原理回顾 (1)图形界面应用程序的消息处理模型 (2)思考:操作系统发送的消息如何转变为Qt信号 2. Qt中的事件处理 (1)Qt平台将系统产生的消息转换为Qt事件 ①Qt事件是一个 ...

  10. selenium自动化-java-封断言类2

    封装断言类 package streamax.com; import java.util.ArrayList; import java.util.List; import org.testng.Ass ...