hibernate连接数据库报错

这是hibernate.cfg.xml配置文件,用户名和密码都用jdbc测试过可以连接上

 <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <property name="hibernate.connection.uesrname">root</property>
        <property name="hibernate.connection.password">liangqichan</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/cql1</property>
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>

        <property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
        <property name="hibernate.hbm2ddl.auto">update</property>
        <property name="hibernate.show_sql">true</property>
        <mapping resource="com/cql/crm/domain/SysUserGroup.hbm.xml"/>

    </session-factory>
</hibernate-configuration>

这是报错信息:
2016-6-30 11:56:43 org.hibernate.cfg.Environment
信息: Hibernate 3.5.6-Final
2016-6-30 11:56:43 org.hibernate.cfg.Environment
信息: hibernate.properties not found
2016-6-30 11:56:43 org.hibernate.cfg.Environment buildBytecodeProvider
信息: Bytecode provider name : javassist
2016-6-30 11:56:43 org.hibernate.cfg.Environment
信息: using JDK 1.4 java.sql.Timestamp handling
2016-6-30 11:56:43 org.hibernate.cfg.Configuration configure
信息: configuring from resource: /hibernate.cfg.xml
2016-6-30 11:56:43 org.hibernate.cfg.Configuration getConfigurationInputStream
信息: Configuration resource: /hibernate.cfg.xml
2016-6-30 11:56:43 org.hibernate.cfg.Configuration addResource
信息: Reading mappings from resource : com/cql/crm/domain/SysUserGroup.hbm.xml
2016-6-30 11:56:43 org.hibernate.cfg.HbmBinder bindRootPersistentClassCommonValues
信息: Mapping class: com.cql.crm.domain.SysUserGroup -> sys_user_group
2016-6-30 11:56:43 org.hibernate.cfg.Configuration doConfigure
信息: Configured SessionFactory: null
2016-6-30 11:56:43 org.hibernate.connection.DriverManagerConnectionProvider configure
信息: Using Hibernate built-in connection pool (not for production use!)
2016-6-30 11:56:43 org.hibernate.connection.DriverManagerConnectionProvider configure
信息: Hibernate connection pool size: 20
2016-6-30 11:56:43 org.hibernate.connection.DriverManagerConnectionProvider configure
信息: autocommit mode: false
2016-6-30 11:56:43 org.hibernate.connection.DriverManagerConnectionProvider configure
信息: using driver: com.mysql.jdbc.Driver at URL: jdbc:mysql://localhost:3306/cql1
2016-6-30 11:56:43 org.hibernate.connection.DriverManagerConnectionProvider configure
信息: connection properties: {uesrname=root, password=****}
2016-6-30 11:56:43 org.hibernate.cfg.SettingsFactory buildSettings
警告: Could not obtain connection to query metadata
java.sql.SQLException: Access denied for user ''@'localhost' (using password: YES

补充:
这是我测试hibernate时的代码
package junit;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import org.junit.Test;

import com.cql.crm.domain.SysUserGroup;

public class TestHibernate {

@Test
public void testHibernateConf(){
    Configuration config=new Configuration();
    //config.configure("hibernate.cfg.xml");
    config.configure();
    SessionFactory sf=config.buildSessionFactory();
    Session s=sf.openSession();
    Transaction tx=s.beginTransaction();
    SysUserGroup sysUserGroup=new SysUserGroup();
    sysUserGroup.getName();
    sysUserGroup.getPrincipal();
    sysUserGroup.getIncumbent();
    s.save(sysUserGroup);
    tx.commit();
    s.close();

}

}

这是我jdbc连接时的代码:
public class jdbc {
public static void main(String[] args) {
String url="jdbc:mysql://localhost:3306/cql";
String user="root";
String password="liangqichan";
String sql="Select * from sys_user_group";
Connection conn=null;
Statement st=null;
ResultSet rs=null;
try {
conn=(Connection) DriverManager.getConnection(url, user, password);
st=(Statement) conn.createStatement();
rs=st.executeQuery(sql);

        while(rs.next()){
            System.out.println(rs.getString("id"));
            System.out.println(rs.getString("name"));
            System.out.println(rs.getString("remark"));
        }

        rs.close();
        st.close();
        conn.close();
    } catch (SQLException e) {
        // TODO 自动生成的 catch 块
        e.printStackTrace();
    }


}

}

7个回答

还有就是你写的那个username明显错误,你写成uesrname了,改了以后应该就可以了

liangqichan
神笔马良2018 谢谢你。我太粗心了。当吸取教训。
3 年多之前 回复

有可能的连接字符串的问题,查看一下连接字符串是否写错了,希望给你带来帮助

liangqichan
神笔马良2018 连接字符串也是在jdbc连接测试上时用的那个啊
3 年多之前 回复

提示信息是密码不正确的

确定数据库版本, org.hibernate.dialect.MySQL5Dialect确定dialect是否能与当前使用数据库版本一致。
希望能帮到你。

liangqichan
神笔马良2018 你好,我是新手。请问怎么可以排查dialect与mysql版本的一致呢。我的mysql版本是mysql-5.6.24-winx64。
3 年多之前 回复

Could not obtain connection to query metadata。你连接数据库有问题。 检查用户名称与密码

要不要再配下poolsize

图片说明
希望对你有帮助。加油!!!

xushuanglu_csdn
xushuanglu_csdn 回复神笔马良2015: 加油
3 年多之前 回复
liangqichan
神笔马良2018 谢谢你的分析。问题在hibernate.cfg.xml文件里找到了。竟然是拼写错误。新手全当是教训。
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问