1. import java.sql.Connection;
  2. import java.sql.DriverManager;
  3. import java.sql.PreparedStatement;
  4. import java.sql.ResultSet;
  5. import java.sql.Statement;
  6.  
  7. //自定义jdbc工具类。
  8. //目的是简化jdbc开发。
  9. public class JDBCUtil {
  10. public static String driver="oracle.jdbc.driver.OracleDriver";
  11. public static String url = "jdbc:oracle:thin:@127.0.0.1:1521:orcl";
  12. public static String user = "system";
  13. public static String password = "orcl";
  14. //获取1条数据库的连接
  15. public static Connection getConnection()
  16. {
  17. Connection con = null; //返回的连接
  18. try {
  19. //1 加载驱动
  20. Class.forName(driver);
  21. con = DriverManager.getConnection(url, user, password);
  22. //2 获取连接
  23. } catch (Exception e)
  24. {
  25. e.printStackTrace();
  26. }
  27. return con;
  28. }
  29. //查询:简单查询,不含?的sql语句
  30. public static ResultSet doQuery(String sql)
  31. {
  32. return doQuery(sql,null);
  33. }
  34.  
  35. //查询:复杂查询,含有多个?的sql语句
  36. public static ResultSet doQuery(String sql,String... ps)
  37. {
  38. //1 获取连接
  39. Connection con = getConnection(); //调用上面的方法,获取1个连接
  40. if(con==null)
  41. {
  42. System.out.println("获取连接失败!");
  43. return null; //提前终止本方法代码
  44. }
  45.  
  46. ResultSet rs = null;
  47. try {
  48. //2执行查询
  49. PreparedStatement psm = con.prepareStatement(sql);
  50. //通过for循环,访问参数数组,给psm逐个设置可变参数!!
  51. if(ps!=null) //只有可变参数不为空,才进行?赋值
  52. {
  53. for(int i=0;i<ps.length;i++)
  54. {
  55. psm.setString(i+1, ps[i]);//将第i个可变参数,设置到第i+1个问号
  56. }
  57. }
  58. rs = psm.executeQuery();
  59. } catch (Exception e)
  60. {
  61. e.printStackTrace();
  62. }
  63. //3 返回结果.注意,不能关闭,否则结果用不了
  64. return rs;
  65. }
  66.  
  67. //修改(包含添加,删除,修改,删表,建表):返回sql影响的行数.不含?的sql语句
  68. public static int doUpdate(String sql)
  69. {
  70. return doUpdate(sql,null);
  71. }
  72.  
  73. //修改(包含添加,删除,修改,删表,建表):返回sql影响的行数.含?有的sql语句
  74. public static int doUpdate(String sql,String... ps)
  75. {
  76. //1 获取连接
  77. Connection con = getConnection(); //调用上面的方法,获取1个连接
  78. if(con==null)
  79. {
  80. System.out.println("获取连接失败!");
  81. return 0; //提前终止本方法代码
  82. }
  83.  
  84. int result = 0;
  85. PreparedStatement psm = null;
  86. try {
  87. //2执行查询
  88. psm = con.prepareStatement(sql);
  89. //通过for循环,访问参数数组,给psm逐个设置可变参数!!
  90. if(ps!=null)
  91. {
  92. for(int i=0;i<ps.length;i++)
  93. {
  94. psm.setString(i+1, ps[i]);//将第i个可变参数,设置到第i+1个问号
  95. }
  96. }
  97. result = psm.executeUpdate();
  98. } catch (Exception e)
  99. {
  100. e.printStackTrace();
  101. }
  102. finally
  103. {
  104. close(null,psm,con); //修改完毕,记得关闭资源
  105. }
  106. //3 返回结果.注意,不能关闭,否则结果用不了
  107. return result;
  108.  
  109. }
  110.  
  111. //关闭资源。三个参数的版本
  112. public static void close(ResultSet rs,Statement sm,Connection con)
  113. {
  114. try {
  115. if (rs != null)
  116. rs.close();
  117. if (sm != null)
  118. sm.close();
  119. if (con != null)
  120. con.close();
  121. } catch (Exception e)
  122. {
  123. e.printStackTrace();
  124. }
  125. }
  126. //关闭资源。一个参数的版本
  127. public static void close(ResultSet rs)
  128. {
  129. Statement sm = null;
  130. Connection con = null;
  131. try {
  132. if (rs != null)
  133. {
  134. sm = rs.getStatement();
  135. rs.close();
  136. }
  137.  
  138. if (sm != null)
  139. {
  140. con = sm.getConnection();
  141. sm.close();
  142. }
  143. if (con != null)
  144. con.close();
  145. } catch (Exception e)
  146. {
  147. e.printStackTrace();
  148. }
  149. }
  150. }

  

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. Dictionary摘抄

    Dictionary,字典,键值对集合. 下面的代码示例创建一个空的带有字符串键的字符串 Dictionary,并使用 Add 方法添加一些元素.该示例演示在尝试添加重复的键时 Add 方法引发Arg ...

  2. Linux命令学习总结:rm命令

    命令简介:   该命令用来删除Linux系统中的文件或目录.通常情况下rm不会删除目录,你必须通过指定参数-r或-R来删除目录.另外rm通常可以将该文件或目录恢复(注意,rm删除文件其实只是将指向数据 ...

  3. MS SQL 错误:The operation could not be performed because OLE DB provider "SQLNCLI10" for linked server "test" was unable to begin a distributed transaction.

       一同事在测试服务器(系统:Windows 2008 R2 Standard 数据库:SQL SERVER 2008 R2)通过链接服务器test使用分布式事务测试时出错,出错信息如下: set ...

  4. SQL Server解决孤立用户浅析

    孤立用户概念        所谓孤立用户即指在服务器实例上未定义或错误定义了其相应 SQL Server 登录名的数据库用户无法登录到实例. 这样的用户被称为此服务器实例上的数据库的"孤立用 ...

  5. 聊下 git remote prune origin

    在你经常使用的命令当中有一个git branch –a 用来查看所有的分支,包括本地和远程的.但是时间长了你会发现有些分支在远程其实早就被删除了,但是在你本地依然可以看见这些被删除的分支. 你可以通过 ...

  6. MySQL初始化的正确姿势

    1. 背景 mysql安装教程很多,但是有不少讲得过于简单,没有考虑到安全问题.比如说,一些教程里,只设置一个root用户,并且对外网公开,一来容易被破解密码(用户名固定,破解难度自然降了一大截,而且 ...

  7. sql server: sql script

    select ProductGUID,ProductName,ProjectGUID from dbo.Product /* F637A079-E22B-4E50-87E9-000147B1B1F4 ...

  8. Postgresql 导出表结构信息

    项目用了Postgresql 数据库,项目组要出表结构的文档,手写太麻烦,想用slq脚本导出一份.查了一番资料,似乎没有多好的方法.dump方式导出的脚本太乱,没法直接写在word文档里.只能自己写s ...

  9. 创建 Image - 每天5分钟玩转 OpenStack(21)

    本节演示如何通过 Web GUI 和 CLI 两种方法创建 Image. OpenStack 为终端用户提供了 Web UI(Horizon)和命令行 CLI 两种交换界面.两种方式我们都要会用. 可 ...

  10. WPFTookit Chart 入门

    如何使用WPFToolKit Chart private void button1_Click(object sender, EventArgs e) { var s = new Series(); ...