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. Oracle数据库安装图文操作步骤

    一.Oracle 下载 注意Oracle分成两个文件,下载完后,将两个文件解压到同一目录下即可. 路径名称中,最好不要出现中文,也不要出现空格等不规则字符.   官方下地址: http://www.o ...

  2. Oracle Linux(64位)安装64位Oracle10g遇到ins_ctx.mk问题

    在Oracle Linux Server Release 5.7上安装64位Oracle 10g 时,遇到如下问题: Error in invoking target 'install' of mak ...

  3. css div中内容绝对居中(多行内容)

    div中的内容绝对居中(不适合IE6哦,IE6我已经不考虑了),直接看代码吧. <!DOCTYPE HTML> <html> <head> <title> ...

  4. ELF Format 笔记(十)—— 重定位(relocation)

    ilocker:关注 Android 安全(新手) QQ: 2597294287 重定位就是把符号引用与符号定义链接起来的过程,这也是 android linker 的主要工作之一. 当程序中调用一个 ...

  5. JustWeTools - 自定义控件集

    JustWeTools - Some useful tools 项目地址 JustWe 现在有哪些模块? View自定义控件 PaintView画图工具(包含重构压感新版) CodeView代码编辑 ...

  6. 【2016-11-15】【坚持学习】【Day26】【通用的SQLHelper】

    今天看DevDemo源码时候看到一个写得很好的SQLHelper 代码 public class SqlHelper<T, Command> where T : DbConnection ...

  7. PYTHON解析XML的多种方式效率对比实测

    在最初学习PYTHON的时候,只知道有DOM和SAX两种解析方法,但是其效率都不够理想,由于需要处理的文件数量太大,这两种方式耗时太高无法接受. 在网络搜索后发现,目前应用比较广泛,且效率相对较高的E ...

  8. python高级之面向对象高级

    python高级之面向对象高级 本节内容 成员修饰符 特殊成员 类与对象 异常处理 反射/自省 单例模式 1.成员修饰符 python的类中只有私有成员和公有成员两种,不像c++中的类有公有成员(pu ...

  9. Qt——动态库的创建和使用

    一.动态库是什么 很多人写程序的人都见过.lib和.dll文件,对动态库也略有耳闻. 生成动态库后可以得到两个文件,后缀名分别是.lib以及.dll. 简而言之,.lib称为导入库,相当于头文件:.d ...

  10. swift上传头像

    很久没有写博客了,今天特地写了这个,也是一边仿照别人写的demo,注释部分都是需要的.需要的同学可以参考一下. @IBAction func headImageBtnPage(){  //上传头像 / ...