JDBC动态SQL语句连接orcale数据库的工具类

import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException;

public class DbUtil {  private static final String JDBC_DRIVER = "oracle.jdbc.driver.OracleDriver";  private static String JDBC_URL = "jdbc:oracle:thin:@172.22.246.26:1521:orcl";  private static String USER = "java1";  private static String PASS = "java1";  private Connection conn = null;  private PreparedStatement stmt = null;  private ResultSet rs = null;  static {   try {    Class.forName(JDBC_DRIVER);   } catch (ClassNotFoundException e) {    System.out.println("请添加驱动包");   }  }

 public DbUtil() {  }

 public Connection getConn() {   try {    if (conn == null || conn.isClosed()) {     conn = DriverManager.getConnection(JDBC_URL, USER, PASS);    }

  } catch (SQLException e) {    e.printStackTrace();   }   return conn;  }

 public int executeUpdate(String sql, Object... params) {   int rlt = -1;   try {    getConn();    stmt = conn.prepareStatement(sql);    putParams(params, stmt);    rlt = stmt.executeUpdate();   } catch (SQLException e) {    e.printStackTrace();   }   return rlt;  }

 public ResultSet executeQuery(String sql, Object... params) {   try {    // 2.获取连接    getConn();    stmt = conn.prepareStatement(sql);    putParams(params, stmt);    // 3.执行事务    rs = stmt.executeQuery();   } catch (SQLException e) {    e.printStackTrace();   }   return rs;  }

 public void close() {   try {    if (rs != null) {     rs.close();    }    if (stmt != null) {     stmt.close();    }    if (conn != null) {     conn.close();    }   } catch (SQLException e) {    e.printStackTrace();   }  }

 private void putParams(Object[] params, PreparedStatement stmt)    throws SQLException {   if (params != null) {    for (int i = 1; i <= params.length; i++) {     stmt.setObject(i, params[i - 1]);    }   }  }

}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Android知识点总结

SpringBoot-14-MyBatis预热篇,MySQL小结

新建一个测试表:将sword_insert_test中test_name赋值为sword表中id大于5的name

1251
来自专栏电光石火

导出表结构(数据字典)

-- 数据字典 SELECT (case when a.colorder=1 then d.name else '' end)表名, a.co...

1766
来自专栏

Android SQLiteHelper

762
来自专栏Ryan Miao

sqlite - java 初学

进来准备使用一种embedded database,即嵌入式数据库,方便随项目本地存储。目前学习打算是sqlite和H2。 document:http://ww...

3069
来自专栏杨建荣的学习笔记

生产系统调优之_毫秒级的改进 (92天)

生产中有一个sql语句,做了union-all操作,对于时间的要求是极其严格的,目前已经从2秒的改进调整到了1秒以内,在此基础上还想做进一步的调整,因为极其频繁...

3348
来自专栏杨建荣的学习笔记

关于long类型的转换(r3笔记第84天)

在oracle中对于long类型的处理时很纠结的。最开始引入这个数据类型的时候是对原有数据类型的补充,但是后面发现还是碰到了一些问题,使用Lob类型代替了。但是...

28410
来自专栏数据库新发现

关于Oracle降序索引的定意及回溯

降序索引本质上是FBI,其具体定义可以通过 user_ind_expressions 或dba_ind_expressions 查询。 那么同样的,降序索引只有...

804
来自专栏Spring相关

mysql 查询当天、本周,本月,上一个月的数据

DATE_ADD(createTime,INTERVAL 1 DAY) 得到指定日期后一天的日期/把1改为任意数字就可以得到后N天的日期

1113
来自专栏杨建荣的学习笔记

关于sql_profile中的绑定变量(r4笔记第57天)

使用sql_profile来调优一些紧急的性能sql可以起到立竿见影的效果,如果sql语句本身结构就很清晰,简单,略作修改就能得到调优后的sql语句。 但是如果...

3436
来自专栏用户画像

SQL Server 数据库连接类

694

扫码关注云+社区