JFinal Druid 配置

/**
 * 數據庫密碼加密,執行以下命令,生成加密密碼
 * java -cp druid-1.1.14.jar com.alibaba.druid.filter.config.ConfigTools 密碼
 * 輸出:
 * privateKey:MIIBUwIBADANBgkqhkiG9w0BAQEFAASCAT0wggE5AgEAAkEApEUdEC4QUd7ifzQ2wLdm+E2AN4Kdlze17nDVvwBeFeWmxJDFxOhjALZeG9up22tnEeki8W1jffacDtXoLenKBQIDAQABAk1Bxdnd7nIWTNyM0/4iuFj/eVBGyxdo5/7X/KxrIYeWaszSOLjezQ+AVxaRRdpAEUUuk1Ep+FEJFLl9YCdXTvpOlAiEA9H3aL4I+o3XkDYSblJE997FURhYJPjhrUwVkHc5JcysCIQCsAJUtCNb165jfgZRrHxZ1KXcI4EMIGVUsDn/VXrDfjwIgd9dop3j0MzOKQYYKrNw0v8DQSjpq9XC6SsuNs352SlkCIESBPuje2m671Pk/7NL1YMZtK2G3oDr7i/auF6/ttNh1AiBEH/eyxc3CAeYk9GF+y2Z6SNosw8DSIA0kQMbgSIBZxg==
 * publicKey:MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKRFHRAuEFHe4n80NsC3ZvhNgDeCnZc3te5w1b8AXhXlpsSQxcTo1YwC2XhvbqdtrZxHpIvFtY332nA7V6C3pygUCAwEAAQ==
 * password:RV+gpoUP/tTDk9vytEKxfZfhPQenrG9aCJ5MNa1w1JR5d2Q9mJ5j4TyN9wQc1/7Y0/bsmZSl5BEX3vIxjMEDpxw==
 *
 * 配置以下
 */
String mysqlUrl = "jdbc:mysql://10.10.10.10:13306/test_db?useUnicode=true&useSSL=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull";
String mysqlUsername = "root";
String mysqlPassword = "RV+gpoUP/tTDk9vytEKxfZfhPQenrG9aCJ5MNaw1JR5d2Q9mJ15j4TyN9wQc1/7Y0/bsmZSl5BEX3vIxjMEDpxw==";
String mysqlPublicKey = "MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAKRFHRAuEFHe4n80NsC3ZvhNgDe1CnZc3te5w1b8AXhXlpsSQxcToYwC2XhvbqdtrZxHpIvFtY332nA7V6C3pygUCAwEAAQ==";
String mysqlDriver = "com.mysql.cj.jdbc.Driver";
String mysqlFilters = "config";
DruidPlugin druidMysqlPlugin = new DruidPlugin(mysqlUrl, mysqlUsername, mysqlPassword,mysqlDriver,mysqlFilters);
druidMysqlPlugin.setPublicKey(mysqlPublicKey);

//sql防注入
WallFilter wall = new WallFilter();
wall.setDbType("mysql");
druidMysqlPlugin.addFilter(wall);
//最大鏈接池數量,默認爲8 druidMysqlPlugin.setMaxActive(20); //最小鏈接池數量 druidMysqlPlugin.setMinIdle(1); //初始化時創建物理鏈接的個數,默認爲0 druidMysqlPlugin.setInitialSize(1); //獲取鏈接時最大等待時間,單位毫秒。配置了maxWait以後,缺省啓用公平鎖,併發效率會有所降低,若是須要能夠經過配置useUnfairLock屬性爲true使用非公平鎖。 druidMysqlPlugin.setMaxWait(60000); //若是鏈接空閒時間大於等於minEvictableIdleTimeMillis則關閉物理鏈接。 druidMysqlPlugin.setTimeBetweenEvictionRunsMillis(60000); //鏈接保持空閒而不被驅逐的最小時間 druidMysqlPlugin.setMinEvictableIdleTimeMillis(300000); //建議配置爲true,不影響性能,而且保證安全性。申請鏈接的時候檢測,若是空閒時間大於timeBetweenEvictionRunsMillis,執行validationQuery檢測鏈接是否有效。 druidMysqlPlugin.setTestWhileIdle(true); //申請鏈接時執行validationQuery檢測鏈接是否有效,作了這個配置會下降性能。默認爲true druidMysqlPlugin.setTestOnBorrow(false); //歸還鏈接時執行validationQuery檢測鏈接是否有效,作了這個配置會下降性能。默認爲true druidMysqlPlugin.setTestOnReturn(false); /* //配置removeAbandoned對性能會有一些影響,建議懷疑存在泄漏以後再打開 //當程序存在缺陷時,申請的鏈接忘記關閉,這時候就存在鏈接泄漏了。Druid提供了RemoveAbandanded相關配置,用來關閉長時間不使用的鏈接 druidMysqlPlugin.setRemoveAbandoned(true); //若是鏈接超過30分鐘未關閉,就會被強行回收 druidMysqlPlugin.setRemoveAbandonedTimeoutMillis(1800); //關閉abanded鏈接時輸出錯誤日誌 druidMysqlPlugin.setLogAbandoned(true); */ druidMysqlPlugin.start();
ActiveRecordPlugin mysqlArp
= new ActiveRecordPlugin("mysql", druidMysqlPlugin); //配置MySQL方言 mysqlArp.setDialect(new MysqlDialect()); //是否顯示執行的SQL //mysqlArp.setShowSql(true); mysqlArp.start();

 

DruidDataSource配置

https://github.com/alibaba/druid/wiki/DruidDataSource配置java

DruidDataSource配置屬性列表

https://github.com/alibaba/druid/wiki/DruidDataSource配置屬性列表mysql

相關文章
相關標籤/搜索