您当前的位置: 首页 > 

大前端之旅

暂无认证

  • 2浏览

    0关注

    403博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

JDBC工具类(DButil)

大前端之旅 发布时间:2020-06-21 18:55:20 ,浏览量:2

package lesson11;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class DBUtil {
	private Connection conn = null;
	private Statement st = null;
	private PreparedStatement ps = null;
	private ResultSet rs = null;
	private String url = "jdbc:mysql://localhost:3306/filmcenter_db";
	private String username = "root";
	private String psw = "root";
	
//1.加载驱动
static{
	try {
		Class.forName("com.mysql.jdbc.Driver");
	} catch (ClassNotFoundException e) {
		System.out.println("加载驱动失败!!");
		e.printStackTrace();
	}
}
//2.获取连接
public Connection getConn(){
	try {
		conn = DriverManager.getConnection(url,username,psw);
	} catch (SQLException e) {
		System.out.println("获取连接失败!!");
		e.printStackTrace();
	}
	return conn;
}
//3.提供更新方法
public int update(String sql, Object[] objs){
	conn = getConn();
	try {
		ps = conn.prepareStatement(sql);
		for(int i = 0 ; i < objs.length ; i ++){
			ps.setObject(i + 1, objs[i]);
		}
		return ps.executeUpdate();
	} catch (SQLException e) {
		System.out.println("更新失败!!");
		e.printStackTrace();
		return -1;
	}finally{
		release();
	}
}
//4.提供查询方法
public List query(String sql, Object[] objs){
	List list = new ArrayList();
	try {
		ps = getConn().prepareStatement(sql);
		for(int i = 0 ; i < objs.length ; i ++){
			ps.setObject(i + 1, objs[i]);
		}
		rs = ps.executeQuery();
		ResultSetMetaData rsmd = rs.getMetaData();
		while(rs.next()){
			Map map = new HashMap();
			for(int i = 0 ; i < rsmd.getColumnCount() ; i ++){
				String key = rsmd.getColumnName(i + 1);
				Object value = rs.getObject(key);
				map.put(key, value);
			}
			list.add(map);
		}
		return list;
	} catch (SQLException e) {
		System.out.println("查询操作失败!");
		e.printStackTrace();
		return list;
	}finally{
		release();
	}
}
//5.批量更新
public void batch(String[] sqls){
	try {
		conn = getConn();
		conn.setAutoCommit(false);
		st = conn.createStatement();
		for(int i = 0; i < sqls.length ; i ++){
			st.addBatch(sqls[i]);
		}
		st.executeBatch();
	} catch (SQLException e) {
		e.printStackTrace();
		try {
			conn.rollback();
		} catch (SQLException e1) {
			e1.printStackTrace();
		}
	}finally{
		try {
			conn.commit();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		release();
	}
}
//释放资源
public void release(){
	if(rs != null){
		try {
			rs.close();
		} catch (SQLException e) {
			System.out.println("关闭结果集对象出现异常!");
			e.printStackTrace();
		}
	}
	if(ps != null){
		try {
			ps.close();
		} catch (SQLException e) {
			System.out.println("关闭预处理语句对象出现异常!");
			e.printStackTrace();
		}
	}
	if(st != null){
		try {
			st.close();
		} catch (SQLException e) {
			System.out.println("关闭语句对象出现异常!");
			e.printStackTrace();
		}
	}
	if(conn != null){
		try {
			conn.close();
		} catch (SQLException e) {
			System.out.println("关闭连接对象出现异常!");
			e.printStackTrace();
		}
	}
}

}

关注
打赏
1660524863
查看更多评论
立即登录/注册

微信扫码登录

0.0432s