猿问

确定驱动已经载入工程,数据库文件应该放在哪个位置?

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)

千巷猫影
浏览 82回答 2
2回答

倚天杖

没有“ware”这个用户数据库,检查

杨魅力

对于这个程序,首先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是指你传递的变量。对于你提到的数据库文件的存放位置,数据表是建在数据库中的,这样就可以了,没有必要关心数据库文件的存放位置,因为在进行数据库连接时,根据你指定的数据库就能找到相应的数据表。在使用数据库连接时,只需要导入数据库驱动包就可以了。
随时随地看视频慕课网APP

相关分类

Java
我要回答