怎么用java创建数据库_使用java类创建数据库

我正在使用servlet和mysql的应用程序 .

我想创建一个能够创建应用程序将使用的数据库的.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:在sun.reflect的sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)中,用户'admin'@'localhost'拒绝访问数据库'hrapp'位于com.mysql.jdbc.Util.handleNewInstance(Util.java:406)的java.lang.reflect.Constructor.newInstance(未知来源)的sun.reflect.DelegatingConstructorAccessorImpl.newInstance(未知来源)的.NativeConstructorAccessorImpl.newInstance(未知来源) )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)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)com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060)at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2536)at com.mysql.jdbc.Stat ementImpl.executeUpdate(StatementImpl.java:1564)位于BaseDatosSetup.BaseDatosSetup.main(BaseDatosSetup.java:18)的com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1485)

我通过向用户授予创建操作来解决它 . 我不知道为什么,我是以管理员身份做的 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值