我正在使用servlet和mysql的应用程序中工作。使用java类创建数据库
我想创建一个能够创建应用程序将使用的数据库的.jar文件。这只会做一次,为了创建数据库。
我前往访问数据库,做这样的事情已经没有问题:
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection conexion = (Connection)DriverManager.getConnection("jdbc:mysql://localhost/test","admin","admin");
if (!conexion.isClosed())
{
Statement st = (Statement) conexion.createStatement();
ResultSet rs = st.executeQuery("select * from table_name");
}
conexion.close();
这是确定的,但我需要做的就是创建一个新的数据库(及其表)从一个Java类,这可能吗?
感谢
我想这一点:
Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection conexion = (Connection)DriverManager.getConnection("jdbc:mysql://localhost/mysql","admin","admin");
Statement st = (Statement) conexion.createStatement();
st.executeUpdate("CREATE DATABASE hrapp");
,但我发现了以下错误:
异常线程 “main” com.mysql.jdbc.exceptions.jdbc4 .MySQLSyntaxErrorException:访问拒绝用户'admin'@'localhost'到数据库'hrapp' at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown S乌尔斯河) 在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(未知来源) 在java.lang.reflect.Constructor.newInstance(未知来源) 在com.mysql.jdbc.Util.handleNewInstance(Util.java:406) 在com.mysql.jdbc.Util.getInstance(Util.java:381) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1030) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java: 956) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423) at com.mysql.jdbc.MysqlIO.sendCommand( MysqlIO.java:1936) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060) at com.mysql.j dbc.ConnectionImpl.execSQL(ConnectionImpl.java:2536) 在com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1564) 在com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1485) 在BaseDatosSetup.BaseDatosSetup.main(BaseDatosSetup.java:18)
我通过授予创建行动给用户解决了这个问题。我不知道为什么,我是以管理员身份进行的。
如果你可以编程一个SELECT,为什么你不能编程CREATE TABLE/INSERT/LOAD? – gary 2010-01-20 23:05:29
我不知道,如果我连接到我的一个数据库,然后使用: ResultSet rs = st.executeQuery(“select * from audiolist2”); 工作。 – dedalo 2010-01-20 23:57:40