连接mysql数据库的基本方法和框架(二)

封装JDBC工具类,即对JDBC进行简单封装后使用,比上一篇的方法略进阶

导入相应jar包,具体过程参见 连接mysql数据库的基本方法和框架(一)

可选择使用硬编码或软编码编写JDBC工具类,如下

package com.fan.jdbcutil.util;

import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;

public class JDBCUtil {
	//硬编码1
//	private static String url = "jdbc:mysql://localhost:3306/school";
//	private static String user = "root";
//	private static String password = "123456";
//	private static String driver = "com.mysql.cj.jdbc.Driver";
	
	//软编码1
	private static String url;
	private static String user; 
	private static String password; 
	private static String driver; 
	
	static {
		try {
			Properties pro = null;
			pro = new Properties();
			//硬编码2
//			ClassLoader classLoader = JDBCUtil.class.getClassLoader();
//			URL resource = classLoader.getResource("sources/mysql.properties");
//			String path = resource.getPath();
//			pro.load(new FileReader(path));
			
			//软编码2
			InputStream in = null;
			//绝对路径
//			in = new FileInputStream("D:/My WorkSpace/JDBCUtilTest/sources/mysql.properties"); 
			//相对路径以工程文件根目录为基准
			in = new FileInputStream("sources/mysql.properties");
			pro.load(in);
			
			System.out.println(pro.getProperty("jdbc.url"));
			url = pro.getProperty("jdbc.url");
			user = pro.getProperty("jdbc.username");
			password = pro.getProperty("jdbc.password");
			driver = pro.getProperty("jdbc.driver");
		} catch (IOException e) {
			e.printStackTrace();
		}
		
	}
	
	public static Connection getConnection() {
		Connection conn = null;
		try {
			Class.forName(driver);
			conn = DriverManager.getConnection(url, user, password);
		} catch (Exception e) {
			e.printStackTrace();		
		}
		return conn;
	}
	
	public static void close(Connection conn, PreparedStatement pstmt, ResultSet rs) {
		if(conn != null)
		{
			try {
				conn.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		
		if(pstmt != null)
		{
			try {
				pstmt.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		
		if(rs != null)
		{
			try {
				rs.close();
			} catch (SQLException e) {
				e.printStackTrace();
			}
		}
		
	}
	
}

注释掉的代码即为硬编码,如使用软编码,还需编写对应数据库文档mysql.properties

jdbc.driver=com.mysql.jdbc.Driver
jdbc.username=root
jdbc.password=123456
jdbc.url=jdbc:mysql://localhost:3306/school

 简单应用JDBCUtil

package com.fan.jdbcutil.test;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

import com.fan.jdbcutil.util.JDBCUtil;

public class excute {

	public static void main(String[] args) {
		try {
			Connection conn = JDBCUtil.getConnection();
			String sql = "SELECT * FROM USER";
			Statement stmt = conn.createStatement();
			ResultSet rs = stmt.executeQuery(sql);
			while(rs.next()) {
				int id = rs.getInt("uid");
				System.out.println(id);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		} catch(Exception e) {
			e.printStackTrace();
		} 
	}

}

项目结构如下

其中read.java为读取mysql.properties的预先测试类,请忽略 

对应数据库文件详见 连接mysql数据库的基本方法和框架(一)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值