JAVA資料庫程式設計:一(連線)
阿新 • • 發佈:2018-11-10
資料庫程式設計是程式設計技術中很重要的一個模組。本文將以MYSQL資料庫為例,基於JAVA程式語言講解資料庫程式設計的連線。在進行程式設計前需要匯入mysql資料庫的驅動包:https://pan.baidu.com/s/1xpVjPNTQLv8vrBENuqYe0A
一:通過標準java庫連線
對應的資料庫名,使用者名稱,密碼改為自己的
package jdbc; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class JdbcTest1 { public static void main(String[] args) throws ClassNotFoundException, SQLException { Connection conn=null; String url="jdbc:mysql://localhost:3306/lwk"; String username="root"; String password="root"; try { Class.forName("com.mysql.jdbc.Driver"); conn=DriverManager.getConnection(url, username,password); System.out.println(conn); } finally { conn.close(); } } }
二:資料庫連線池
需要匯入對應得第三方jar包
https://pan.baidu.com/s/1kP8RdL4vLIyi2qnO8Cs-wg
1:dbcp資料來源
(1):BasicDataSource類直接建立資料來源物件(連線)
package dbcp; import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.SQLException; import javax.sql.DataSource; import org.apache.commons.dbcp2.BasicDataSource; public class DbcpTest1 { public static DataSource ds=null; static { BasicDataSource bds=new BasicDataSource(); bds.setDriverClassName("com.mysql.jdbc.Driver"); bds.setUrl("jdbc:mysql://localhost:3306/lwk"); bds.setUsername("root"); bds.setPassword("root"); bds.setInitialSize(5); bds.setMaxIdle(5); ds=bds; } public static void main(String[] args) throws SQLException { // TODO Auto-generated method stub Connection conn=ds.getConnection(); DatabaseMetaData md=conn.getMetaData(); System.out.println(md.getURL()); } }
(2):通過BasicDataSourceFactory工廠類讀取配置檔案,之後建立資料來源物件(連線)
1):配置檔案放在src目錄下,如命名為conn.properties
2):配置資訊參考如下,具體自己做對應更改。
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/lwk
username=root
password=root
initialSize=5
maxActive=10
maxIdle=10
package dbcp; import java.io.IOException; import java.io.InputStream; import java.sql.Connection; import java.sql.DatabaseMetaData; import java.sql.SQLException; import java.util.Properties; import javax.sql.DataSource; import org.apache.commons.dbcp2.BasicDataSourceFactory; public class DbcpTest2 { public static DataSource ds=null; static { try { Properties prop=new Properties(); InputStream in=new DbcpTest2().getClass().getClassLoader().getResourceAsStream("conn.properties"); prop.load(in); ds=BasicDataSourceFactory.createDataSource(prop); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static void main(String[] args) throws SQLException { // TODO Auto-generated method stub Connection conn=ds.getConnection(); DatabaseMetaData md=conn.getMetaData(); System.out.println(md.getUserName()); } }
2:c3p0資料來源
(1)通過ComboPooledDataSource()建立資料來源物件(連線)
package c3p0;
import java.sql.SQLException;
import javax.sql.DataSource;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class C3p0Test1 {
public static DataSource ds=null;
static {
ComboPooledDataSource cpds=new ComboPooledDataSource();
try {
cpds.setDriverClass("com.mysql.jdbc.Driver");
cpds.setJdbcUrl("jdbc:mysql://localhost:3306/lwk");
cpds.setUser("root");
cpds.setPassword("root");
cpds.setInitialPoolSize(5);
cpds.setMaxPoolSize(15);
ds=cpds;
}catch(Exception e)
{
throw new ExceptionInInitializerError(e);
}
}
public static void main(String[] args) throws SQLException {
// TODO Auto-generated method stub
System.out.println(ds.getConnection());
}
}
(2)通過讀取配置檔案建立資料來源物件
1):配置檔案在src目錄下,字尾為xml,如命名為itcast.xml
2):配置資訊參考如下,具體自己做物件更改。
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<default-config>
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/lwk</property>
<property name="user">root</property>
<property name="password">root</property>
<property name="initialPoolSize">5</property>
<property name="maxPoolSize">15</property>
</default-config>
<named-config name="itcast">
<property name="driverClass">com.mysql.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/lwk</property>
<property name="user">root</property>
<property name="password">root</property>
<property name="initialPoolSize">5</property>
<property name="maxPoolSize">15</property>
</named-config>
</c3p0-config>
package c3p0;
import java.sql.SQLException;
import javax.sql.DataSource;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class C3p0Test2 {
public static DataSource ds;
static{
ComboPooledDataSource cpds=new ComboPooledDataSource("itcast");
ds=cpds;
}
public static void main(String[] args) throws SQLException {
// TODO Auto-generated method stub
System.out.println(ds.getConnection());
}
}