JDBC手动获取连接和数据库连接池获取连接(mysql)

手动获取连接

几个重要参数:

String driverClassName = "com.mysql.jdbc.Driver";//Driver类的路径
String url = jdbc:mysql://localhost:3306/test?serverTimezone=UTC&useSSL=false;//test为数据库名
String user = root;//用户名,默认root
String password = ******;//密码

方式一(直接获取参数)

public static Connection getConnection() throws Exception {
		
		String driverClassName = "com.mysql.jdbc.Driver";//Driver类的路径
		String url = "jdbc:mysql://localhost:3306/test?rewriteBatchedStatements=true";
		String user = "root";
		String password = "123456";
		
		//加载驱动
		Class.forName("com.mysql.jdbc.Driver");
		//建立连接
		Connection conn = DriverManager.getConnection(url, user, password);
		
		return conn;
	}

方式二(通过配置文件获取参数)

将数据库连接的4个基本信息声明在配置文件中,通过读取配置文件的方式,获取连接

文件:jdbc.properties

driverClass=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test?rewriteBatchedStatements=true
user=root
password=123456
public static Connection getConnection222() throws Exception {
		
		Properties pros = new Properties();
		//读取四个基本信息
		InputStream is = ClassLoader.getSystemClassLoader().getResourceAsStream("jdbc.properties");
		pros.load(is);
		
		String driverClass = (String)pros.get("driverClass");
		String url = (String)pros.get("url");
		String user = (String)pros.get("user");
		String password = (String)pros.get("password");
		
		//加载驱动
		Class.forName(driverClass);
		//建立连接
		Connection conn = DriverManager.getConnection(url, user, password);
		
		return conn;
	}

通过数据库连接池获取连接

Druid首先是一个数据库连接池。Druid在功能、性能、扩展性方面,都超过其他数据库连接池,包括DBCP、C3P0、BoneCP、Proxool、JBoss DataSource。Druid已经在阿里巴巴部署了超过600个应用,经过一年多生产环境大规模部署的严苛考验。
【这里只对Druid进行展示】

通过Druid获取数据库连接

文件:Druid.properties

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test?serverTimezone=UTC&useSSL=false
username=root
password=123456
public static Connection getConnectionByDruid() throws Exception {
		
		Properties pros = new Properties();
		
		InputStream is = ClassLoader.getSystemClassLoader().getResourceAsStream("Druid.properties");
		
		pros.load(is);
		
		//druid-1.1.10.jar的DruidDataSource类
		DataSource source = DruidDataSourceFactory.createDataSource(pros);
		
		return source.getConnection();
		
	}

通过Druid获取数据库连接(改进)

public class DruidTest {

	private static DataSource  source;
	
	static {
		try {
			Properties pros = new Properties();
			
			InputStream is = ClassLoader.getSystemClassLoader().getResourceAsStream("Druid.properties");
			
			pros.load(is);
			
			source = DruidDataSourceFactory.createDataSource(pros);
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
	
	
	@Test
	public static Connection getConnectionByDruid() throws Exception {
			
		return source.getConnection();
		
	}
	
}

优点:静态代码块,用于给类初始化,类加载时就会被加载执行,只加载一次。所以创建数据库连接池时,避免了多次创建DataSource (和上面的一种比较)。

Druid的API
在这里插入图片描述

补充知识点

通过类加载器获取文件的信息

Properties pros = new Properties();
		
InputStream is = ClassLoader.getSystemClassLoader().getResourceAsStream("Druid.properties");
		
pros.load(is);
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值