数据访问类BaseDao实现

Posted LiuYuZhan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据访问类BaseDao实现相关的知识,希望对你有一定的参考价值。

package dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;

public class BaseDao {
	private String driver = "com.mysql.jdbc.Driver";
	private String db_URL = "jdbc:mysql://localhost:3306/netorder";
	private String username = "root";
	private String password = "*******";
	
	private Connection conn = null;
	
	public void openConnection() {
		try {
			Class.forName(driver);
			conn = DriverManager.getConnection(db_URL,username,password);
		}
		catch(Exception e) {
			e.printStackTrace();
		}
	}
	public int executeUpdate(String sql,Object[] objs) {
		int res = -1;
		try {
			PreparedStatement pst = conn.prepareStatement(sql);
			if(objs != null) {
				for(int i = 0; i < objs.length; i++) {
					pst.setObject(i + 1, objs[i]);
				}
			}
			res = pst.executeUpdate();
		}
		catch(Exception e) {
			e.printStackTrace();
		}
		return res;
	}
	
	public ResultSet executeQuery(String sql,Object[] objs) {
		ResultSet rs = null;
		try {
			PreparedStatement pst = conn.prepareStatement(sql);
			if(objs != null) {
				for(int i = 0; i < objs.length; i++) {
					pst.setObject(i + 1, objs[i]);
				}
			}
			rs = pst.executeQuery();
		}
		catch(Exception e) {
			e.printStackTrace();
		}
		return rs;
	}
	public void close() {
		try {
			conn.close();
		}
		catch(Exception e) {
			e.printStackTrace();
		}
	}

}

使用方法:以user表为例

1.让UserDao继承BaseDao 

2.openConnection();//实例化数据库连接

3.执行executeQuery()实现查询或者执行excuteUpdate实现增删改

4.close();//关闭数据库连接

PS:支持预处理,可在sql字符串中加入?表示待定,使用例子如下:

public boolean checkUser(String username,String password) {
		openConnection();
		String sql = "select id from user where username = ? and password = ?";
		Object[] objs = new Object[]{username,password};
		ResultSet rs = executeQuery(sql, objs);
		close();
		if(rs != null) return true;
		else return false;
	}

  

 

以上是关于数据访问类BaseDao实现的主要内容,如果未能解决你的问题,请参考以下文章

实现 BaseDao 的多个 Daos 的存储库类委托 - 可能吗?

ItcastOA_设计BaseDao_设计DAO接口和实现类_写DAO实现类中的方法内容

java web项目DAO层通用接口BaseDao与实现类BaseDaoImpl

数据访问层

JDBC连接数据库BaseDao类

BaseDAO使用