一、通过Driver接口直接连接
/** * 通过Driver获取Connection * @return */ public Connection getConnectionByDriver() throws Exception{ String driverClass = "com.mysql.jdbc.Driver"; String url = "jdbc:mysql:///hdz"; String user = "root"; String password = "123456"; Driver driver = new com.mysql.jdbc.Driver(); Properties info = new Properties(); info.setProperty("driverClass", driverClass); info.setProperty("user", user); info.setProperty("password", password); Connection connection = driver.connect(url, info); return connection; }
二、通过DriverManager直接连接
/** * 通过DriverManager获取Connection * @return * @throws Exception */ public Connection getConnectionByDriverManager() throws Exception{ String url = "jdbc:mysql:///hdz"; String user = "root"; String password = "123456"; Class.forName("com.mysql.jdbc.Driver"); Connection connection = DriverManager.getConnection(url, user, password); return connection; }
/** * 通过把参数写在配置文件的方式获取Connection * @return * @throws Exception */ public Connection getConectionByProperties() throws Exception{ InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("jdbc.properties"); Properties info = new Properties(); info.load(inputStream); String url = info.getProperty("url"); Class.forName("com.mysql.jdbc.Driver"); Connection connection = DriverManager.getConnection(url, info); return connection; } url=jdbc:mysql:///hdz user=root password=123456
三、通过DBCP数据源连接
@Test public void testDbcp() throws Exception { final BasicDataSource basicDataSource = new BasicDataSource(); basicDataSource.setDriverClassName("com.mysql.jdbc.Driver"); basicDataSource.setUrl("jdbc:mysql:///hdz"); basicDataSource.setUsername("root"); basicDataSource.setPassword("123456"); basicDataSource.setInitialSize(2); basicDataSource.setMaxActive(2); basicDataSource.setMinIdle(2); basicDataSource.setMaxWait(2000); Connection connection1 = basicDataSource.getConnection(); System.out.println(connection1); Connection connection2 = basicDataSource.getConnection(); System.out.println(connection2); new Thread(){ @Override public void run() { Connection connection3; try { connection3 = basicDataSource.getConnection(); System.out.println(connection3); } catch (SQLException e) { e.printStackTrace(); } } }.start(); Thread.sleep(3000); connection2.close(); }
或者通过配置文件,BasicDatasourceFactory工厂方式
private DbcpDataSource() { Properties info = new Properties(); InputStream inputStream = this.getClass().getClassLoader().getResourceAsStream("dbcp.properties"); try { info.load(inputStream); dataSource = BasicDataSourceFactory.createDataSource(info); } catch (IOException e) { e.printStackTrace(); } catch (Exception e) { e.printStackTrace(); } } dbcp.properties driverClassName=com.mysql.jdbc.Driver url=jdbc:mysql:///hdz username=root password=123456 initialSize=5 maxActive=10 minIdle=5 maxWait=5000
四、通过C3P0数据源连接
public class C3p0DataSourceUtils { private DataSource dataSource = null; private static C3p0DataSourceUtils instance = new C3p0DataSourceUtils(); private C3p0DataSourceUtils(){ dataSource = new ComboPooledDataSource("intergalactoApp"); } public static C3p0DataSourceUtils newInstance(){ return instance; } public Connection getConnection() { try { return dataSource.getConnection(); } catch (SQLException e) { e.printStackTrace(); } return null; } }
c3p0-config.xml <?xml version="1.0" encoding="UTF-8"?> <c3p0-config> <!-- This app is massive! --> <named-config name="intergalactoApp"> <property name="acquireIncrement">1</property> <property name="initialPoolSize">1</property> <property name="minPoolSize">1</property> <property name="maxPoolSize">1</property> <property name="maxIdleTimeExcessConnections">1000</property> <!-- intergalactoApp adopts a different approach to configuring statement caching --> <property name="maxStatements">10</property> <property name="maxStatementsPerConnection">5</property> <property name="driverClass">com.mysql.jdbc.Driver</property> <property name="jdbcUrl">jdbc:mysql:///hdz</property> <property name="user">root</property> <property name="password">123456</property> </named-config> </c3p0-config>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。