-
源碼分析
(1)DruidDataSourceFactory源碼public final static String PROP_PASSWORD = "password"; public final static String PROP_URL = "url"; public final static String PROP_USERNAME = "username";
從上面的代碼中可以看出Druid獲取數據庫的字段是沒有前綴的
(2)Hibernate的源碼public static final String URL ="hibernate.connection.url"; /** * Names the connection user. This might mean one of 2 things in out-of-the-box Hibernate * {@link org.hibernate.service.jdbc.connections.spi.ConnectionProvider}: <ul> * <li>The username used to pass along to creating the JDBC connection</li> * <li>The username used to obtain a JDBC connection from a data source</li> * </ul> */ public static final String USER ="hibernate.connection.username"; /** * Names the connection password. See usage discussion on {@link #USER} */ public static final String PASS ="hibernate.connection.password";
Hibernate的數據庫配置信息是有hibernate.connection前綴的,所以當使用Druid是要注意property的轉換
-
修改Hibernate數據庫配置文件
<property name="connection.provider_class">posp.tools.DruidConnectionProvider</property>#Druid連接池的Hibernate輔助類 <property name="url"></property> <property name="username"></property> <property name="password"></property>
-
修改Druid輔助類的configure方法
配置文件 <property name="connection.provider_class">posp.tools.DruidConnectionProvider</property>#Druid連接池的Hibernate輔助類 <property name="hibernate.connection.url"></property> <property name="hibernate.connection.username"></property> <property name="hibernate.connection.password"></property> 輔助類 public void configure(Map props) { String userName = (String) props.get(Environment.USER); String password = (String) props.get(Environment.PASS); String url = (String) props.get(Environment.URL); try { //在這裏可以對數據庫連接信息解密 super.configure(props); } catch (Exception e) { e.printStackTrace(); } }
Hibernate使用Druid連接池
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.