获取Connection
手动获取连接
几个重要参数:
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);