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

标签 java mysql hibernate spring jdbc

在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/

相关文章:

java - 两个 Hibernate 应用程序连接到同一个数据库

java - 寻找一种从 Java 中的给定 SQL 查询创建动态 SQL 的方法

Java 方法重写 - 访问父类中的方法 - 这可能吗?

c# - 多线程数据库插入

mysql - 在 MySQL Workbench 中运行 SQL 时,WHILE 在此位置无效输入

mysql - Cognos 10.2.1 使用 JDBC 连接到 MySQL

hibernate - 在Grails 3.0.1中使用 hibernate 注释进行映射

java - Android 客户端无法正确向服务器发送消息

Java 文件未编译

java - 防止每次更新 Play 框架网站时 MySQL 完全丢失