關於JDBC-MySql
阿新 • • 發佈:2020-12-07
JDBC連線Mysql
手動獲取連線資料庫的方式
//方式一、通過反射的方式進行建立(註冊驅動),面向介面程式設計 Class clazz = Class.forName("com.mysql.jdbc.Driver"); Driver driver = (Driver)clazz.newInstance(); DriverManager.registerDriver(driver); //方式二、載入驅動類 Class.forName("com.mysql.jdbc.Driver"); //將mysql下的Driver驅動載入到方法區 //為什麼直接通過方式二載入驅動類就也可以獲取連線。通過檢視Mysql下Driver的原始碼: //在方式二下Driver的類中,有關於註冊驅動的靜態程式碼塊, static { try { DriverManager.registerDriver(new Driver()); //在Driver中的原始碼 } catch (SQLException var1) { throw new RuntimeException("Can't register driver!"); } }
/** * Description:通過JDBC手動連線Mysql的幾種方式 */ public class TestOne { @Test public void TestOne() throws Exception { //註冊驅動的三種方式 //方式一,通過建立物件的方式 // Driver driver = new com.mysql.jdbc.Driver(); // DriverManager.registerDriver(driver); //方式二、通過反射的方式進行建立,面向介面程式設計 /** * Class clazz = Class.forName("com.mysql.jdbc.Driver") * Driver driver = (Driver)clazz.newInstance(); */ // Driver driver = (Driver)Class.forName("com.mysql.jdbc.Driver").newInstance(); // DriverManager.registerDriver(driver); //方式三、 // Class.forName("com.mysql.jdbc.Driver"); //獲取資料連線的兩種方式 //方式一獲取資料連線,缺點:如果修改連線資訊需要通過修改程式碼來實現,可以通過通過修改配置資訊實現, // DriverManager.getConnection("jdbc:mysql://localhost:3306/test","root","123456"); /*方式二:通過修改配置資訊,配置檔案:***.properties * 1、實現了程式碼與資料的分離 * 2、如果後期需要修改資訊,不需要修改程式碼,直接修改程式碼資訊 * 3、後期需要將程式碼的編譯檔案放到伺服器上,如果要修改配置資訊,需要再重新編譯, * * */ Properties pro = new Properties(); //識別的當前路徑為module // FileInputStream fis = new FileInputStream(new File("src/jdbcMysql.properties")); //也可以 //識別當前的路徑為src InputStream fis = ClassLoader.getSystemResourceAsStream("jdbcMysql.properties"); pro.load(fis); Class.forName(pro.getProperty("driverClassName")); Connection connection = DriverManager.getConnection(pro.getProperty("url"), pro.getProperty("username"), pro.getProperty("password")); System.out.println(connection); } }
通過資料庫連線池連線資料庫
使用阿里開發的Druid(德魯伊)資料庫連線池的方式
public class TestTwo { @Test public void Test() throws Exception { //方式一 //建立資料庫池 /* DruidDataSource dataSource = new DruidDataSource(); dataSource.setUsername("root"); dataSource.setPassword("123456"); dataSource.setUrl("jdbc:mysql://localhost:3306/test"); //管理 dataSource.setInitialSize(5); //設定初始化資料連線池的大小 dataSource.setMaxActive(10); dataSource.getConnection();*/ /** * 通過配置檔案的方式進行配置 *注意: *工廠模式,DruidFactory接收一個properties, * getResourceAsStream是在src目錄下找 * 注意配置檔案中的key值要和Druid中的一致,(去掉Set之後,第一個字母小寫就是key值) */ Properties pro = new Properties(); //獲取配置檔案,在src路徑下找配置檔案 InputStream is = TestTwo.class.getClassLoader().getResourceAsStream("jdbcMysql.properties"); pro.load(is); DataSource dataSource1 = DruidDataSourceFactory.createDataSource(pro); Connection connection = dataSource1.getConnection(); } }
配置檔案(jdbcMysql.properties)
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test
username=root
password=123456
initialSize=10
maxActive=20
maxWait=10000
應用中,應將這些連線做成一個工具類的方法
BeanHandler:查詢表中的一個記錄,作為java的物件返回