package com.icexxx.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.SQLException; import java.sql.Statement; import java.util.Date; /** * 数据库操作相关工具类 * @author IceWater * @date 2017-03-03 * @version 1.0 */ public class IceDbUtil { /** * 获取数据库连接 * @param driver 数据库驱动名称 * @param url 数据库url * @param username 用户名 * @param password 密码 * @return */ public static Connection getConnection(String driver, String url, String username, String password) { try { Class.forName(driver); } catch (ClassNotFoundException e) { throw new RuntimeException("数据库驱动jar包无法加载"); } Connection connection = null; try { connection = DriverManager.getConnection(driver, username, password); } catch (SQLException e) { String errorMessage = e.getMessage(); if (errorMessage.indexOf("No suitable driver found for com.mysql.jdbc.Driver") != -1) { if (url.indexOf("?") != -1) { url = url.substring(0, url.indexOf("?")); } url = url + "?user=" + username + "&password=" + password + "&useUnicode=true&characterEncoding=utf-8"; try { connection = DriverManager.getConnection(url); } catch (SQLException e1) { e1.printStackTrace(); } } } return connection; } /** * 执行sql语句 * * @param connection * 数据库连接 * @param sql * 需要执行的sql语句 * @return 成功执行的sql条数 */ public static int exeSql(Connection connection, String sql) { Statement createStatement = null; int executeUpdate = 0; try { sql = sql.replace("<", "<"); sql = sql.replace(">", ">"); sql = sql.replace("&", "&"); sql = sql.replace(""", "\""); sql = sql.replace("'", "'"); createStatement = connection.createStatement(); executeUpdate = createStatement.executeUpdate(sql); } catch (SQLException e) { e.printStackTrace(); } finally { if (createStatement != null) { try { createStatement.close(); } catch (SQLException e) { e.printStackTrace(); } } if (connection != null) { try { connection.close(); } catch (SQLException e) { e.printStackTrace(); } } } return executeUpdate; } /** * 执行sql语句 * * @param connection * 数据库连接 * @param sql * 需要执行的sql * @param params * sql中的参数 * @return 执行成功的条数 */ public static int exeSql(Connection connection, String sql, Object[] params) { PreparedStatement prepareStatement = null; int executeUpdate = 0; try { sql = sql.replace("<", "<"); sql = sql.replace(">", ">"); sql = sql.replace("&", "&"); sql = sql.replace(""", "\""); sql = sql.replace("'", "'"); prepareStatement = connection.prepareStatement(sql); for (int i = 0; i < params.length; i++) { Object param = params[i]; if (param instanceof String) { prepareStatement.setString(i + 1, (String) param); } else if (param instanceof Integer) { prepareStatement.setInt(i + 1, (Integer) param); } else if (param instanceof Long) { prepareStatement.setLong(i + 1, (Long) param); } else if (param instanceof Boolean) { prepareStatement.setBoolean(i + 1, (Boolean) param); } else if (param instanceof java.sql.Date) { prepareStatement.setDate(i + 1, (java.sql.Date) param); } else if (param instanceof Date) { prepareStatement.setDate(i + 1, new java.sql.Date(((Date) param).getTime())); } else if (param instanceof Double) { prepareStatement.setDouble(i + 1, (Double) param); } else if (param instanceof Byte) { prepareStatement.setByte(i + 1, (Byte) param); } else if (param instanceof Short) { prepareStatement.setShort(i + 1, (Short) param); } } prepareStatement.execute(); } catch (SQLException e) { e.printStackTrace(); } finally { if (prepareStatement != null) { try { prepareStatement.close(); } catch (SQLException e) { e.printStackTrace(); } } if (connection != null) { try { connection.close(); } catch (SQLException e) { e.printStackTrace(); } } } return executeUpdate; } }


3334004690 LV10
2024年5月28日
1358849392 LV21
2022年11月11日
crosa_Don LV18
2022年3月31日
zuidaima_liuzg LV1
2021年5月13日
叽哩咕噜 LV2
2020年12月24日
dongzhan LV12
2020年12月9日
wkc LV21
2020年7月26日
Gyq灬ming LV11
2019年11月30日
小资李 LV13
2019年9月17日
497100512
2019年4月27日
暂无贡献等级