java连接数据库的五种方法。最好的效率最高的是第五种
package com.webtest.connection;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
import org.junit.Test;
public class connectionTest {
//方式一
@Test
public void testConnetcion1() throws SQLException {
Driver driver = new com.mysql.jdbc.Driver();
String url = "jdbc:mysql://127.0.0.1:3306/test";
/*
* jdbc:mysql 主协议
*
* //127.0.0.1:3306 ip地址 :mysql端口号
* /test test 数据库名
*/
Properties info=new Properties();
info.setProperty("user", "root");
info.setProperty("password", "root");
Connection conn = driver.connect(url, info);
System.out.println(conn);
}
//方式二,对方式一的迭代 (如下程序中没出现第三方的API,使得程序有更好的移植性)
@Test
public void testConnetcion2() throws SQLException, ClassNotFoundException, InstantiationException, IllegalAccessException {
//1.获取Driver实现类对象,使用反射
Class cla = Class.forName("com.mysql.jdbc.Driver");
Driver driver =(Driver) cla.newInstance();
//2.提供要连接的数据库
String url = "jdbc:mysql://127.0.0.1:3306/test";
//3.提供连接需要的用户名和密码
Properties info=new Properties();
info.setProperty("user", "root");
info.setProperty("password", "root");
//4.获取连接
Connection conn = driver.connect(url, info);
System.out.println(conn);
}
//方式三; 使用DriverManager替换Driver
@Test
public void testConnetciton3() throws SQLException, ClassNotFoundException, InstantiationException, IllegalAccessException{
//1.获取Driver的实现类的对象
Class cla = Class.forName("com.mysql.jdbc.Driver");
Driver driver =(Driver) cla.newInstance();
//2.提供另外三个连接的基本信息
String url ="jdbc:mysql://127.0.0.1:3306/test";
String user="root";
String password = "root";
//注册驱动
DriverManager.registerDriver(driver);
//获取连接
Connection conn = DriverManager.getConnection(url,user,password);
System.out.println(conn);
}
//方式四; 使用DriverManager替换Driver 优化
@Test
public void testConnetciton4() throws Exception{
//1.提供另外三个连接的基本信息
String url ="jdbc:mysql://127.0.0.1:3306/test";
String user="root";
String password = "root";
Class.forName("com.mysql.jdbc.Driver");
//获取连接
Connection conn = DriverManager.getConnection(url,user,password);
System.out.println(conn);
}
//方式五:将数据库需要的4个基本信息放到配置文件中,通过配置文件的方式获取连接
//优点,所有的链接数据都在统一的文件内方便修改数据源。实现数据和代码的 解耦
// 2.如果需要修改配置文件信息,可避免程序重新打包
@Test
public void getConnection5() throws Exception {
InputStream is=Connection.class.getClassLoader().getSystemResourceAsStream("jdbc.properties");
Properties pros = new Properties();
pros.load(is);
String user=pros.getProperty("user");
String pssword=pros.getProperty("pssword");
String url=pros.getProperty("url");
String driverclass=pros.getProperty("driverclass");
//2.加载驱动
Class.forName(driverclass);
//3.获取连接
Connection conn = DriverManager.getConnection(url,user,pssword);
System.out.println(conn);
}
}
第五种需要加一个配置文件用来传入固定的user/password/url/driver,代码如下
user=root
pssword=root
url=jdbc:mysql://127.0.0.1:3306/test
driverclass=com.mysql.jdbc.Driver