Java 数据库连接、关闭、增删改查方法的封装(一)之JDBCUtil工具类

1.新建一个Java Project 工程,并创建 四个package 包,分别为 dao(存放接口)、daoImp(存放接口实现类)、entry(存放实体类)、util(数据库工具包)

如图所示创建一个名为JDBC的工程,结构如图所示:

Java 数据库连接、关闭、增删改查方法的封装(一)之JDBCUtil工具类_第1张图片

2.导包,连接数据库我们需要把mysql-connector-java-5.1.7-bin.jar导入到Java项目中。如图新建一个lib用来存放外jar的包。

Java 数据库连接、关闭、增删改查方法的封装(一)之JDBCUtil工具类_第2张图片

选中加入的jar包,单击右键选择Build Path 中的 Add to Build Path。

3.编辑util包,创建一个class其中编辑数据库的连接、关闭

public class JDBCUtil {
	private static final String driver="com.mysql.jdbc.Driver";
	private static final String url="jdbc:mysql://localhost:3306/students";
	private static final String user="root";
	private static final String password="root";
	static{
		try {
			Class.forName(driver);
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	public static Connection getConnection(){
		
		try {
			return DriverManager.getConnection(url,user,password);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return null;
		
	}
      public static void close(ResultSet rs,PreparedStatement ps,Connection con){
		if(rs!=null){
			try {
				rs.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}finally{
				if(ps!=null){
					try {
						ps.close();
					} catch (SQLException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}finally{
						if(con!=null){
							try {
								con.close();
							} catch (SQLException e) {
								// TODO Auto-generated catch block
								e.printStackTrace();
							}
						}
					}
				}
			}
		}
	}

 

数据库的增删改方法,大部分写法相差无几,因此我们给他们封装一个方法,三个类型方法皆可调用。

/***
	 * DML操作(增删改)
	 * 1.获取连接数据库对象
	 * 2.预处理
	 * 3.执行更新操作
	 * @param sql
	 * @param obj
	 */
	//调用者只需传入一个sql语句,和一个Object数组。该数组存储的是SQL语句中的占位符
	public static void executeUpdate(String sql,Object...obj){
		Connection con = getConnection();//调用getConnection()方法连接数据库
		PreparedStatement ps=null;
		try {
			 ps = con.prepareStatement(sql);//预处理
			for(int i=0;i

 

2.查询方法

/***
	 * DQL查询
	 * Result获取数据集
	 * 
	 * @param sql
	 * @param obj
	 * @return
	 */
	public static List> executeQuery(String sql,Object...obj){
		Connection con = getConnection();
		ResultSet rs=null;
		PreparedStatement ps=null;
		try {
			ps = con.prepareStatement(sql);
			for(int i=0;i> list=new ArrayList<>();
			//获取结果集的列数
			int count = rs.getMetaData().getColumnCount();
			//对结果集遍历每一条数据是一个Map集合,列是k,值是v
			while(rs.next()){
				//一个空的map集合,用来存放每一行数据
				Map map=new HashMap();
				for(int i=0;i

你可能感兴趣的:(Java 数据库连接、关闭、增删改查方法的封装(一)之JDBCUtil工具类)