数据库三(JDBC)封装

JDBC:Java   DataBase   Connectivity
它不是单独为了连接mysql这个产品的。
它是Sun提供的一套操作数据库的标准规范。
Sun提供了Interface,各个数据库厂商开始提供Sun接口的实现。
Mysql就实现了sun定义的接口。
mysql-connector-java-5.0.8-bin.jar


JDBC规范(掌握四个核心对象):
DriverManager:用于注册数据库连接的驱动
Connection:表示与数据库的连接
Statement:表示操作数据库,执行sql语句的对象
ResultSet:表示操作数据库的结果集。

JDBC
1、注册驱动
2、连接数据库
3、创建statement(用于运行sql语句)
4、获取resultSet
5、遍历结果集
6、关闭资源

ResourceBundle读文件里的键值对
有一个dbconfig.properties文件,我们把
driverClass
url
User
Psw

1.数据库连接文件

 在src目录下文件名为:dbconfig.properties文件

2.编写DBUtils工具类

public class DButils {

	private static String driverClass ;
	private static String url;
	private static String user;
	private static String psw;
	//静态代码块,加载数据库驱动
	static{
		ResourceBundle bundle = ResourceBundle.getBundle("dbconfig");
		//driverClass = bundle.getString("driverClass");
		driverClass = bundle.getString("driverClass");
		url = bundle.getString("url");
		user = bundle.getString("user");
		psw = bundle.getString("psw");
		try {
			Class.forName(driverClass);
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}
	//获取连接
	public static Connection getConnection(){
		try {
			return DriverManager.getConnection(url,user,psw);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return null;
	}
	//关流
	public static void closeAll(ResultSet rs,Statement st,Connection conn) {
		if(rs!=null) {
			try {
				rs.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		if(st!=null) {
			try {
				st.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		if(conn!=null) {
			try {
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
	}
}

3.编写测试类。

public class Test {

	public static void main(String[] args) throws SQLException, ClassNotFoundException {
		
		//Class.forName("com.cdu.dj.DButils");
		//获取连接
		Connection conn = DButils.getConnection();
		//创建查询对象
		Statement st = conn.createStatement();
		//执行查询语句并使用结果集接受
		ResultSet rs = st.executeQuery("select * from student");
		//循环遍历
		for(;rs.next();){
			int sid  =rs.getInt(1);
			String sname =rs.getString(2);
			int sage =rs.getInt(3);
			String ssex =rs.getString(4);
			System.out.println(sid+"--"+sname+"--"+sage+"--"+ssex);
		}
		//关流
		DButils.closeAll(rs, st, conn);
	}

}

猜你喜欢

转载自blog.csdn.net/qq_41813207/article/details/80195671