JDBCUtil基于mysql-connector-java-8.0

自己写一个简单的JDBCUtil类,通过配置文件的方式完成:
首先配置文件放在项目路径下:
jdbc_mysql.properties:

#这是JDBC的加载驱动类路径
driverClassName=com.mysql.cj.jdbc.Driver
#这是url地址,要修改后面的数据库名字(/mydb)
url=jdbc:mysql://localhost:3306/mydb?serverTimezone=GMT%2b8&characterEncoding=utf8
#这是数据库用户名
username=root
#这是数据库密码
password=123

JDBCUtil.java

package cn.melo.util;

import java.io.FileInputStream;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.List;
import java.util.Properties;

public class JDBCUtil {
	//私有化构造方法,不让创建对象
	private JDBCUtil() {}
	
	//给出参数
	private static String driverClassName = null;
	private static String url = null;
	private static String username = null;
	private static String password = null;
	private static Connection conn = null;
	private static FileInputStream fis = null;
	private static Properties prop = null;
	
	static {
		try {
			try {
				//读取数据的流
				fis = new FileInputStream("jdbc_mysql.properties");
				//也可以这样获取流
				//JDBCUtil.class.getResourceAsStream("jdbc_mysql.properties");
				//创建Properties对象
				prop = new Properties();
				prop.load(fis);
				driverClassName = prop.getProperty("driverClassName");
				url = prop.getProperty("url");
				username = prop.getProperty("username");
				password = prop.getProperty("password");
			}catch(IOException e) {
				e.printStackTrace();
			}finally {
				fis.close();
			}
			//加载驱动
			Class.forName(driverClassName);
			//得到连接
			conn = DriverManager.getConnection(url,username,password);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	//获取连接的方法
	public static Connection getConnection() {
		return conn;
	}
	
	//释放资源的方法
	public static void close(Connection conn,PreparedStatement pre,
			ResultSet rs) {
		try {
			if(rs != null) {
				rs.close();
			}
			if(pre != null) {
				pre.close();
			}
			if(conn != null) {
				conn.close();
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	/**
	 * 实现增加,删除或者修改的方法操作的方法
	 * @param sql 表示传入一个sql语句
	 * @param list 表示传入sql语句中参数的List集合,如果没有参数,传一个null
	 */
	public static int update(String sql,List<Object> list) throws SQLException {
		//得到连接
		Connection conn = getConnection();
		//得到PreparedStatement对象
		PreparedStatement prep = conn.prepareStatement(sql);
		//为sql语句中的参数赋值
		if(list != null) {
			for (int i = 0; i < list.size(); i++) {
				Object obj = list.get(i);
				prep.setObject(i+1, obj);
			}
		}
		int row = prep.executeUpdate();
		
		close(conn, prep, null);
		return row;
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值