Jdbc-数据库使用工具类
来源:互联网 发布:成都软件开发工资水平 编辑:程序博客网 时间:2024/05/19 09:12
properties文件:(mysql.properties)
dbUserName=root dbPassword=root dbDriver=com.mysql.jdbc.Driver dbUrl=jdbc\:mysql\://127.0.0.1\:3306/struts?useUnicode\=true&characterEncoding\=utf8
SqlHelper.java文件:
/* *@Author swxctx *@time 2016年9月1日 */package com.sw.utils;import java.io.IOException;import java.io.InputStream;import java.sql.CallableStatement;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.util.Properties;public class SqlHelper { //定义变量 private static Connection ct = null; //大多数情况下用preparedstatement替代statement private static PreparedStatement ps = null; private static ResultSet rs = null; //连接数据库的参数 private static String url = ""; private static String username = ""; private static String driver = ""; private static String passwd = ""; private static CallableStatement cs = null; public static CallableStatement getCs() { return cs; } private static Properties pp = null; private static InputStream fis = null; //加载驱动,只需要一次,用静态代码块 static { try { //从dbinfo.properties pp = new Properties(); fis=SqlHelper.class.getClassLoader().getResourceAsStream("mysql.properties"); //fis = new FileInputStream(); pp.load(fis); url = pp.getProperty("url"); username = pp.getProperty("username"); driver = pp.getProperty("driver"); passwd = pp.getProperty("passwd"); Class.forName(driver); } catch (Exception e) { e.printStackTrace(); } finally { try { fis.close();} catch(IOException e) {e.printStackTrace();} fis = null;//垃圾回收站上收拾 } } //得到连接 public static Connection getConnection() { try {ct = DriverManager.getConnection(url,username,passwd);} catch(Exception e) {e.printStackTrace();} return ct; } //*************callPro1存储过程函数1************* public static CallableStatement callPro1(String sql,String[] parameters) { try{ ct = getConnection(); cs = ct.prepareCall(sql); if(parameters!=null){ for(int i=0;i<parameters.length;i++){ cs.setObject(i+1,parameters[i]); } } cs.execute(); } catch(Exception e) { e.printStackTrace(); throw new RuntimeException(e.getMessage());} finally { close(rs,cs,ct);} return cs; } //*******************callpro2存储过程2************************public static CallableStatement callPro2(String sql,String[] inparameters,Integer[] outparameters){ try { ct = getConnection(); cs = ct.prepareCall(sql); if(inparameters!=null) { for(int i=0;i<inparameters.length;i++) { cs.setObject(i+1,inparameters[i]); } } //cs.registerOutparameter(2,oracle.jdbc.OracleTypes.CURSOR); if(outparameters!=null) { for(int i=0;i<outparameters.length;i++) { cs.registerOutParameter(inparameters.length+1+i,outparameters[i]); } } cs.execute(); } catch(Exception e) { e.printStackTrace(); throw new RuntimeException(e.getMessage()); } finally { } return cs;} public static ResultSet executeQuery(String sql,String[] parameters) { try { ct=getConnection(); ps=ct.prepareStatement(sql); if(parameters!=null) { for(int i=0;i<parameters.length;i++) { ps.setString(i+1,parameters[i]); } } rs = ps.executeQuery(); } catch(Exception e) { e.printStackTrace(); throw new RuntimeException(e.getMessage()); } finally { } return rs; } public static Connection getCt() { return ct; } public static PreparedStatement getPs() { return ps; } public static ResultSet getRs() { return rs; } public static void executeUpdate2(String[] sql,String[][] parameters) { try { ct = getConnection(); ct.setAutoCommit(false); for(int i=0;i<sql.length;i++) { if(null!=parameters[i]) { ps = ct.prepareStatement(sql[i]); for(int j=0;j<parameters[i].length;j++) { ps.setString(j+1,parameters[i][j]); } ps.executeUpdate(); } } ct.commit(); }catch (Exception e) { e.printStackTrace(); try { ct.rollback(); } catch (SQLException e1) { e1.printStackTrace(); } throw new RuntimeException(e.getMessage()); }finally { close(rs,ps,ct); } } //先写一个update、delete、insert //sql格式:update 表名 set 字段名 =?where 字段=? //parameter神应该是(”abc“,23) public static void executeUpdate(String sql,String[] parameters) { try { ct=getConnection(); ps = ct.prepareStatement(sql); if(parameters!=null) { for(int i=0;i<parameters.length;i++) { ps.setString(i+1,parameters[i]); } } ps.executeUpdate(); } catch(Exception e) { e.printStackTrace();//开发阶段 //抛出异常 //可以处理,也可以不处理 throw new RuntimeException(e.getMessage()); } finally { close(rs,ps,ct); } } public static void close(ResultSet rs,Statement ps,Connection ct) { //关闭资源(先开后关) if(rs!=null) { try { rs.close(); } catch(SQLException e) { e.printStackTrace(); } rs=null; } if(ps!=null) { try { ps.close(); } catch(SQLException e) { e.printStackTrace(); } ps=null; } if(null!=ct) { try { ct.close(); } catch(SQLException e) { e.printStackTrace(); } ct=null; } }}
0 0
- Jdbc-数据库使用工具类
- 使用JDBC链接数据库之连接数据库通用工具类
- JDBC第一篇--【介绍JDBC、使用JDBC连接数据库、简单的工具类】
- JDBC工具类和JDBC连接数据库
- Java使用JDBC连接数据库完整的工具类实例
- 使用JDBC连接MySQL数据库的工具类
- jdbc连接数据库工具类
- jdbc 链接数据库工具类
- JDBC连接数据库工具类
- jdbc连接数据库工具类
- 连接数据库Jdbc工具类
- JDBC连接数据库工具类
- JDBC工具类连接数据库
- java使用jdbc连接数据库工具类和jdbc连接mysql数据示例
- JDBC : 使用DBUtils 工具类
- 使用工具类完成JDBC
- jdbc连接MySQL数据库的工具类
- jdbc数据库操作工具类--DBUtil
- leetcode:greedy:Patching Array(330)
- 博客记录
- C结构小结
- android性能优化之布局优化
- (Mac版)Android Studio 设置提示不区分大小写
- Jdbc-数据库使用工具类
- HDU 4388 Stone Game II(博弈)
- 页面验证和业务字典
- android mark
- GMS基础知识
- android NDK开发之NDK与JNI
- Android中Intent对象与Intent Filter过滤匹配过程详解
- MPChart饼图自定义图例
- 把json转为实体对象