這是項目架構(gòu),就是一個簡單的控制臺測試連接mysql數(shù)據(jù)庫
這是配置文件
jdbcUrl = jdbc:mysql://localhost:3306/test?serverTimezone=GMT%2B8
user = root
password = 123456
dataSource.cachePrepStmts = true
dataSource.prepStmtCacheSize = 250
dataSource.prepStmtCacheSqlLimit = 2048
dataSource.useServerPrepStmts = true
dataSource.useLocalSessionState = true
dataSource.useLocalTransactionState=true
dataSource.rewriteBatchedStatements = true
dataSource.cacheResultSetMetadata = true
dataSource.cacheServerConfiguration = true
dataSource.elideSetAutoCommits = true
dataSource.maintainTimeStats = false
這是測試連接的代碼
import java.sql.Connection;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
public class HikariPoolManager {
static Logger logger = LogManager.getLogger();
static HikariConfig config = new HikariConfig("/hurik.properties");
static HikariDataSource ds = new HikariDataSource(config);
/**
* 取得數(shù)據(jù)庫連接
*
* @return
* @throws Exception
*/
public static Connection getConnection() throws Exception {
Connection connection = null;
try {
connection = ds.getConnection();
} catch (Exception e) {
logger.error("取得數(shù)據(jù)庫連接時發(fā)生異常!" + e);
throw e;
}
return connection;
}
/**
* 釋放數(shù)據(jù)庫連接
*
* @param connection
* @throws Exception
*/
public static void freeConnection(Connection connection) throws Exception {
if (connection != null) {
try {
connection.close();
} catch (Exception e) {
logger.error("釋放數(shù)據(jù)庫連接時發(fā)生異常!" + e.getMessage());
}
}
}
public static void main(String[] args) throws Exception {
System.out.println(ds.getConnection());
}
}
運行時出的錯誤:
ERROR StatusLogger No Log4j 2 configuration file found. Using default configuration (logging only errors to the console), or user programmatically provided configurations. Set system property 'log4j2.debug' to show Log4j 2 internal initialization logging. See https://logging.apache.org/lo... for instructions on how to configure Log4j 2
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.ht... for further details.
Exception in thread "main" java.lang.ExceptionInInitializerError
Caused by: java.lang.RuntimeException: Property user does not exist on target class com.zaxxer.hikari.HikariConfig
at com.zaxxer.hikari.util.PropertyElf.setProperty(PropertyElf.java:131)
at com.zaxxer.hikari.util.PropertyElf.lambda$setTargetFromProperties$0(PropertyElf.java:57)
at java.util.Hashtable.forEach(Unknown Source)
at com.zaxxer.hikari.util.PropertyElf.setTargetFromProperties(PropertyElf.java:52)
at com.zaxxer.hikari.HikariConfig.loadProperties(HikariConfig.java:1067)
at com.zaxxer.hikari.HikariConfig.<init>(HikariConfig.java:148)
at HikariPoolManager.<clinit>(HikariPoolManager.java:11)
沒有從網(wǎng)上找到有用的解決方案,希望能得到各位的幫助,或者能發(fā)一份簡單完整又測試成功的demo案例也行
最近幾天又做了幾次嘗試后還是解決了,是使用的maven做的,添加了一些依賴,看樣子手動添加jar包還是容易出錯
<!--jdbc依賴 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.11</version>
</dependency>
<!-- log4j依賴 -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.14</version>
</dependency>
<!-- json格式依賴 -->
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
<version>2.17</version>
</dependency>
<!--Hikari依賴 -->
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>3.1.0</version>
</dependency>
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
public class HikarTest {
private static Connection conn = null;
private static Statement statement = null;
private static ResultSet rs = null;
private static HikariDataSource ds;
static {
initDBSource();
}
public static void initDBSource() {
// TODO Auto-generated method stub
HikariConfig hikariConfig = new HikariConfig();
hikariConfig.setJdbcUrl("jdbc:mysql://localhost:3306/test?serverTimezone=GMT%2B8");
hikariConfig.setUsername("root");
hikariConfig.setPassword("123456");
hikariConfig.addDataSourceProperty("cachePrepStmts", "true");
hikariConfig.addDataSourceProperty("prepStmtCacheSize", "250");
hikariConfig.addDataSourceProperty("prepStmtCacheSqlLimit", "2048");
ds = new HikariDataSource(hikariConfig);
}
/**
* 取得數(shù)據(jù)庫連接
*
* @return
* @throws Exception
*/
public static Connection getConnection() throws Exception {
Connection conn = null;
try {
conn = ds.getConnection();
} catch (Exception e) {
throw e;
}
return conn;
}
/**
* 釋放數(shù)據(jù)庫連接
*
* @param connection
* @throws Exception
*/
public static void freeConnection(Connection conn) throws Exception {
if (conn != null) {
try {
conn.close();
} catch (Exception e) {
e.getMessage();
}
}
}
public static void main(String[] args) {
try {
conn = ds.getConnection();
statement = conn.createStatement();
rs = statement.executeQuery("select * from dept");
while (rs.next()) {
System.out.println(rs.getString("dname"));
System.out.println(rs.getString("loc"));
System.out.println(rs.getInt("deptno"));
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
最終結(jié)果
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.ht... for further details.
ACCOUNTING
NEW YORK
10
RESEARCH
DALLAS
20
SALES
CHICAGO
30
OPERATIONS
BOSTON
40
這是maven自動為我導(dǎo)入的jar包
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國制造2025”,實現(xiàn)中華民族偉大復(fù)興的升級產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。