public static Connection acquireConnection(String host,String port,String dbName,String user,String pwd) throws ClassNotFoundException,SQLException{Connection connection = null;try{Class.forName("com.mysql.jdbc.Driver");String url = "jdbc:mysql://" + host + ":" + port;connection = DriverManager.getConnection(url,user,pwd);connection.setCatalog(dbName);}catch(ClassNotFoundException e){e.printStackTrace();throw e;}catch(SQLException e){e.printStackTrace();throw e;}return connection;}Connection con = null;con = SqlUtil.acquireConnection("localhost", "3306", "ware", "root", "root");錯誤提示:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown database 'ware'at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)at java.lang.reflect.Constructor.newInstance(Unknown Source)at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)at com.mysql.jdbc.Util.getInstance(Util.java:386)at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1052)at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3597)at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3529)com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown database 'ware'at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1990)at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2151)at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2619)at com.mysql.jdbc.ConnectionImpl.setCatalog(ConnectionImpl.java:5083)at ware.SqlUtil.acquireConnection(SqlUtil.java:30)at ware.MainWare.main(MainWare.java:79)
2 回答

楊魅力
TA貢獻1811條經驗 獲得超6個贊
對于這個程序,首先acquireConnection()函數沒有必要傳遞參數,或者最多只用傳遞用戶名和密碼,因為函數體內的Class.forName("com.mysql.jdbc.Driver");已經決定了數據庫連接的URL,另外,DriverManager.getConnection(url,user,pwd),url參數需要指定你所用的數據庫的名字,而你的String url = "jdbc:mysql://" + host + ":" + port;并沒有,改為String url = "jdbc:mysql://" + host + ":" + port+"/"+dbName;dbName是指你傳遞的變量。
對于你提到的數據庫文件的存放位置,數據表是建在數據庫中的,這樣就可以了,沒有必要關心
數據庫文件的存放位置,因為在進行數據庫連接時,根據你指定的數據庫就能找到相應的數據表。在使用數據庫連接時,只需要導入數據庫驅動包就可以了。
添加回答
舉報
0/150
提交
取消