gpt4 book ai didi

java - 数据库连接MySQL;提供数据库名称和用户名/密码就足够了吗?

转载 作者:行者123 更新时间:2023-11-29 15:05:33 26 4
gpt4 key购买 nike

在J2EE应用程序中设置JDBC连接时,除了数据库名称之外,是否还需要指定模式名称?

我已经关注了这个tutorial并设置了数据库和用户名/密码,但是当我启动应用程序时遇到此错误。在 Hibernate 启动并创建模式之前,DBUnit 是否可能尝试插入数据?

Caused by: org.dbunit.dataset.NoSuchTableException: Did not find table 'CLIENT' in schema 'null'

我的连接详细信息如下:

 <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/salestracker"/>
<property name="username" value="salestracker"/>
<property name="password" value="salestracker"/>
</bean>

我已经创建了数据库:

[james@nevada sales-tracker]$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 16
Server version: 5.1.42 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show DATABASES;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| salestracker |
| test |
+--------------------+
4 rows in set (0.00 sec)

我是否需要在 hibernate persistence.xml 中指定“使用”特定数据库的内容?我假设这会隐含在 JDBC URL 中

最佳答案

以 root 身份连接到数据库并运行“desc client”以查看该表是否存在(或“显示表”)。如果没有找到它,那么 Hibernate 不会自动创建它。如果确实找到了它,请尝试作为 salestracker 进行连接并执行相同的操作以查看该用户是否没有正确的权限。如果该表确实存在,下一步将是编写一个简单的 Java 程序来连接和查询该表,即从等式中删除 Hibernate。像这样的东西:

Class.forName("com.mysql.jdbc.Driver"); 
Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/salestracker", "salestracker", "salestracker");
PreparedStatement s = conn.prepareStatement("select count(*) from client");
ResultSet rs = s.executeQuery();
rs.next();
System.out.println(rs.getString(1));

关于java - 数据库连接MySQL;提供数据库名称和用户名/密码就足够了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2195067/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com