mySql数据库访问代码Jdbcutil.java和jdbc.properties
jdbc流程
1. 加载驱动Class.forName("com.mysql.jdbc.Driver");
2. 建立连接 (开门) ->Connection
3. 编写sql->???
4. 装载sql->preparedStatement
5. 设置sql参数
6. 执行sql:executeUpdate int受影响行数 :
7. 处理结果
8. 关闭资源(关门)
配置文件:
jdbc.properties
classforName = com.mysql.jdbc.Driver
url = jdbc:mysql://localhost:3306/qq_1701
user = root
password =
JdbcUtil.java
package com.huaxin.manager.dbutil;
import java.io.InputStream;
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;
import com.huaxin.manager.dbutil.handler.ResultSetHandler;
public class JdbcUtil {
static String url;
static String username;
static String pwd;
static {
try {
Properties properties = new Properties();
InputStream in = JdbcUtil.class.getClassLoader().getResourceAsStream("jdbc.properties");
properties.load(in);
/** 动态获取账密码 **/
url = properties.getProperty("url");
username = properties.getProperty("username");
pwd = properties.getProperty("pwd");
/** 注册驱动 **/
Class.forName(properties.getProperty("className"));
} catch (Exception e1) {
e1.printStackTrace();
}
}
public static Connection getConn() throws SQLException {
/** 获取连接 **/
Connection connection = DriverManager.getConnection(url, username, pwd);
return connection;
}
public static void closeConn(ResultSet resultSet, Statement stmt, Connection conn) {
if (resultSet != null)
try {
resultSet.close();
} catch (SQLException e) {
} finally {
resultSet = null;
}
if (stmt != null)
try {
stmt.close();
} catch (SQLException e) {
} finally {
stmt = null;
}
if (conn != null)
try {
conn.close();
} catch (SQLException e) {
} finally {
conn = null;
}
}
/**
* 增删改封装
*
* @param sql
* @param args
* @return
*/
public static int update(String sql, Object... args) {
PreparedStatement stmt = null;
ResultSet resultSet = null;
Connection conn = null;
try {
/** 第一步: 获取连接 **/
conn = getConn();
/** 第二步: sql **/
/** 第三步: 执行者 **/
stmt = conn.prepareStatement(sql);
for (int i = 0; args != null && i < args.length; i++) {
Object object = args[i];
stmt.setObject(i + 1, object);
}
/** 第四步: 结果 **/
return stmt.executeUpdate();
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
JdbcUtil.closeConn(resultSet, stmt, conn);
}
}
public static Object query(String sql, Object[] args, ResultSetHandler handler) {
PreparedStatement stmt = null;
ResultSet resultSet = null;
Connection conn = null;
try {
/** 第一步: 获取连接 **/
conn = JdbcUtil.getConn();
/** 第二步: sql **/
/** 第三步: 执行者 **/
stmt = conn.prepareStatement(sql);
for (int i = 0; i < args.length; i++) {
Object object = args[i];
stmt.setObject(i + 1, object);
}
resultSet = stmt.executeQuery();
Object handle = handler.handle(resultSet);
return handle;
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
JdbcUtil.closeConn(resultSet, stmt, conn);
}
}
public static Object query(String sql, ResultSetHandler handler, Object... args) {
PreparedStatement stmt = null;
ResultSet resultSet = null;
Connection conn = null;
try {
/** 第一步: 获取连接 **/
conn = JdbcUtil.getConn();
/** 第二步: sql **/
/** 第三步: 执行者 **/
stmt = conn.prepareStatement(sql);
for (int i = 0; args != null && i < args.length; i++) {
Object object = args[i];
stmt.setObject(i + 1, object);
}
resultSet = stmt.executeQuery();
Object handle = handler.handle(resultSet);
return handle;
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
JdbcUtil.closeConn(resultSet, stmt, conn);
}
}
}