手写Java DB工具类(1)

package com.Demo.utils;

import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ResourceBundle;
import com.mysql.jdbc.Connection;
import com.mysql.jdbc.PreparedStatement;
import com.mysql.jdbc.Statement;

/**本类用于连接数据库 连接,使用本类只要输入对应的参数就可以方便使用数据库,简化繁杂的代码
* 初始化链接数据库所需的变量值
* 读取dbinfo.properties文档中的参数
* driverclass=com.mysql.jdbc.Driver
* url=jdbc:mysql://localhost:3306/day06
* username=root password=root
*/
public class DBUtil {
/**
* 设定driverclass变量(数据库厂商提供的类)
*/
private static String driverclass; // 设定driverclass变量
/**
* 设定url变量(数据库的路径和库名)
*/
private static String url; // 设定url变量
/**
* 设定username变量(数据库的登录账号)
*/
private static String username; // 设定username变量
/**
* 设定password变量(数据库的登录账号的密码)
*/
private static String password; // 设定password变量
/**
* 设定stmt变量
*/
private static PreparedStatement stmt; // 设定读取stmt变量
/**
* 设定conn变量
*/
private static Connection conn; // 设定读取conn变量
/**
* 设定rs变量
*/
private static ResultSet rs; // 设定读取rs变量

static {

    ResourceBundle rb = ResourceBundle.getBundle("dbinfo");
    driverclass = rb.getString("driverclass");
    url = rb.getString("url");
    username = rb.getString("username");
    password = rb.getString("password");

    try {
        /**
         * 创建数据库连接
         */
        // 创建数据库连接
        Class.forName(driverclass);
        conn = (Connection) DriverManager.getConnection(url, username,
                password);


    } catch (Exception e) {
        e.printStackTrace();
    }
}
/**
 * 如果在您创建类中创建了以下参数,提供您设置参数的方法
 * @param conns 设置Connection类型值
 * @param stmts 设置PreparedStatement类型值
 * @param rss   设置ResultSet类型值
 */

public static void setCSR(Connection conns,PreparedStatement stmts,ResultSet...rss){
    conn=conns;
    stmt=stmts;
    ResultSet[] arr=rss;
    for(int i=0;i<arr.length;i++)
    {
        rs=arr[i];
    }

}
/**
 * 提供接受SQL语句,以及设置对应SQL语句中的"?"参数的值,请务必添加与SQL语句中?
 * 的数量一致的参数。目的为了过滤用户输入,确保防止SQL注入问题。
 * @param sql 输入的SQL语句,次语句中的值用?替代
 * @param args 此为可变参数,输入SQL语句中?的替代参数,参数数量与?数量必须相同。
 * @throws SQLException 处理此方法的异常
 */
private static void Sql(String sql, String...args) throws SQLException {
    stmt = (PreparedStatement) conn.prepareStatement(sql);

    String[] arr=args;
    for(int i=0;i<arr.length;i++)
    {
        stmt.setString(i+1,arr[i]);
    }
}
/**
 * 创建Query连接,使用数据库中的executeQuery方法。
 * @param sql 输入的SQL语句,次语句中的值用?替代
 * @param args 此为可变参数,输入SQL语句中?的替代参数,参数数量与?数量必须相同。
 * @return  返回ResultSet值
 * @throws Exception 处理此方法的异常
 */
// 创建Query连接,使用数据库中的executeQuery方法
public ResultSet Query(String sql,String...args) throws Exception {

    Sql(sql, args);

    rs = stmt.executeQuery();

    return rs;
}

/**
* 创建execute连接,使用数据库中的execute方法
* @param sql 输入的SQL语句,次语句中的值用?替代
* @param args 此为可变参数,输入SQL语句中?的替代参数,参数数量与?数量必须相同。
* @return 返回boolean类型值
* @throws Exception 处理此方法的异常
*/
// 创建execute连接
public boolean execute(String sql,String…args) throws Exception {

    Sql(sql, args);

    boolean i = stmt.execute();

    return i;
}

/**
* 创建Update连接,使用数据库中的executeUpdate方法
* @param sql 输入的SQL语句,次语句中的值用?替代
* @param args 此为可变参数,输入SQL语句中?的替代参数,参数数量与?数量必须相同。
* @return 返回int数值类型
* @throws Exception 处理此方法的异常
*/
// 创建Update连接
public int Update(String sql,String…args) throws Exception {
Sql(sql, args);

    int i = stmt.executeUpdate();

    return i;
}

/**
* 提供关闭您创建class所在中的相关参数的值,RS为可变参数,当使用Update时无需关闭此变量。
* @param stmt 此类中的PreparedStatement对象
* @param conn 此类中的Connection对象
* @param rs 此类中的ResultSet对象 ,此参数为可变参数
*/
// 提供关闭您创建class所在中资源连接
public static void closeAlls(Statement stmt, Connection conn,
ResultSet…rs) {

    if (rs != null) {
        try {
            for (int i = 0; i < rs.length; i++)
                rs[i].close();
        } catch (SQLException e) {

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

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

            e.printStackTrace();
        }
        conn = null;
    }

}

/**
* 提供关闭本类中资源,RS为可变参数,当使用Update时无需关闭此变量。
* stmt 本类中的PreparedStatement对象
* conn 本类中的Connection对象
* rs 本类中的ResultSet对象 ,此参数为可变参数
*/
// 提供关闭本类中资源连接
public static void closeAll() {

    if (rs != null) {
        try {
            rs.close();
        } catch (SQLException e) {

            e.printStackTrace();
        } finally {
            rs = null;
        }
    }

    if (stmt != null) {
        try {
            stmt.close();
        } catch (SQLException e) {

            e.printStackTrace();
        } finally {
            stmt = null;
        }
    }

    if (conn != null) {
        try {
            conn.close();
        } catch (SQLException e) {

            e.printStackTrace();
        } finally {
            conn = null;
        }
    }
}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
原文:https://github.com/yangchenjava/com.yangc.utils cache EhCacheUtils - 基于ehcache的工具类 LruCacheUtils - 基于LinkedHashMap实现LRU缓存的工具类 MemcachedUtils - 基于memcached的工具类 RedisUtils - 基于redis的工具类,与redis的集群配置无缝结合 db JdbcUtils - 操作jdbc的工具类 MongodbUtils - 操作mongodb工具类 email EmailUtils - 邮件工具类,支持发送带附件的邮件 encryption AesUtils - 实现AES加密解密 Base64Utils - 实现Base64加密解密 Md5Utils - 获取字符串或文件的md5 excel ReadExcel2003 - 以model方式读2003版Excel(大数据) ReadExcel2007 - 以sax方式读2007版Excel(大数据) WriteExcel - Excel image CaptchaUtils - 生成验证码 ImageUtils - 图片压缩、截图 QRCodeUtils - 生成二维码、解析二维码 io SerializeUtils - 序列化、反序列化对象 ZipUtils - 压缩、解压文件 json JsonUtils - json格式转换 lang CharsetDetectorUtils - 获取文本文件编码格式 ChineseCalendar - 农历日历 ConvertUtils - 高低字节转换 DateUtils - 日期工具类 HtmlFilterUtils - 过滤html标签 JsoupUtils - 基于jsoup过滤html标签 MoneyUtils - 获取大金额 NumberUtils - 数字工具类 PinyinUtils - 汉字转拼音 media MediaUtils - 基于ffmpeg,qtfaststart,yamdi的多媒体工具类 net AttachmentUtils - HTTP文件下载防止中文乱码 FastDFSUtils - 操作FastDFS的工具类 FtpUtils - 操作FTP的工具类(基于sun自家的包,jdk7以后不建议使用) FtpUtilsApache - 基于apache操作FTP的工具类 HttpUtils - 发送HTTP请求 IpUtils - 获取IP SFtpUtils - 操作SFTP的工具类 prop PropertiesUtils - 操作properties配置文件
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值