2013-05-03 204 views
0

我想配置Hibernate连接到MS SQL Server 2005 Management Studio Express,但我无法登录。我到处寻找解决方案,但找不到任何我能找到的帮助。java.sql.SQLException:用户登录失败

我知道密码和用户名是正确的,但他们似乎没有工作。如果任何人都可以提供帮助,我将不胜感激。

这是我的配置文件:

<?xml version="1.0" encoding="utf-8"?> 
<!DOCTYPE hibernate-configuration PUBLIC 
"-//Hibernate/Hibernate Configuration DTD 3.0//EN" 
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> 
<hibernate-configuration> 
<session-factory> 
    <!-- Database connection settings --> 
    <property name="connection.driver_class">net.sourceforge.jtds.jdbc.Driver</property> 
    <property name="connection.url">jdbc:jtds:sqlserver://***********/**********; databaseName=Scores</property> 
    <property name="connection.username">*****</property> 
    <property name="connection.password">******</property> 

    <!-- JDBC connection pool (use the built-in) --> 
    <property name="connection.pool_size">1</property> 

    <!-- SQL dialect --> 
    <property name="dialect">org.hibernate.dialect.SQLServerDialect</property> 

    <!-- Enable Hibernate's automatic session context management --> 
    <property name="current_session_context_class">thread</property> 

    <!-- Disable the second-level cache --> 
    <property name="cache.provider_class">org.hibernate.cache.NoCacheProvider</property> 

    <!-- Echo all executed SQL to stdout --> 
    <property name="show_sql">true</property> 

    <!-- Drop and re-create the database schema on startup --> 
    <property name="hbm2ddl.auto">update</property> 

    <!-- Mapping files --> 
    <mapping resource="player.hbm.xml"/> 

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

这是输出(它很长,所以我已经包括的一小部分)

50 [http-bio-8080-exec-10] INFO org.hibernate.cfg.Environment - Hibernate 3.3.2.GA 
54 [http-bio-8080-exec-10] INFO org.hibernate.cfg.Environment - hibernate.properties not found 
59 [http-bio-8080-exec-10] INFO org.hibernate.cfg.Environment - Bytecode provider name : javassist 
83 [http-bio-8080-exec-10] INFO org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling 
278 [http-bio-8080-exec-10] INFO org.hibernate.cfg.Configuration - configuring from resource: /hibernate.cfg.xml 
278 [http-bio-8080-exec-10] INFO org.hibernate.cfg.Configuration - Configuration resource: /hibernate.cfg.xml 
1373 [http-bio-8080-exec-10] INFO org.hibernate.cfg.Configuration - Reading mappings from resource : player.hbm.xml 
1480 [http-bio-8080-exec-10] INFO org.hibernate.cfg.HbmBinder - Mapping class: database.Player -> users 
1525 [http-bio-8080-exec-10] INFO org.hibernate.cfg.Configuration - Configured SessionFactory: null 
1697 [http-bio-8080-exec-10] INFO org.hibernate.connection.DriverManagerConnectionProvider - Using Hibernate built-in connection pool (not for production use!) 
1697 [http-bio-8080-exec-10] INFO org.hibernate.connection.DriverManagerConnectionProvider - Hibernate connection pool size: 1 
1697 [http-bio-8080-exec-10] INFO org.hibernate.connection.DriverManagerConnectionProvider - autocommit mode: false 
1700 [http-bio-8080-exec-10] INFO org.hibernate.connection.DriverManagerConnectionProvider - using driver: net.sourceforge.jtds.jdbc.Driver at URL: jdbc:jtds:sqlserver:// 50 [http-bio-8080-exec-10] INFO org.hibernate.cfg.Environment - Hibernate 3.3.2.GA 
54 [http-bio-8080-exec-10] INFO org.hibernate.cfg.Environment - hibernate.properties not found 
59 [http-bio-8080-exec-10] INFO org.hibernate.cfg.Environment - Bytecode provider name : javassist 
83 [http-bio-8080-exec-10] INFO org.hibernate.cfg.Environment - using JDK 1.4 java.sql.Timestamp handling 
278 [http-bio-8080-exec-10] INFO org.hibernate.cfg.Configuration - configuring from resource: /hibernate.cfg.xml 
278 [http-bio-8080-exec-10] INFO org.hibernate.cfg.Configuration - Configuration resource: /hibernate.cfg.xml 
1373 [http-bio-8080-exec-10] INFO org.hibernate.cfg.Configuration - Reading mappings from resource : player.hbm.xml 
1480 [http-bio-8080-exec-10] INFO org.hibernate.cfg.HbmBinder - Mapping class: database.Player -> users 
1525 [http-bio-8080-exec-10] INFO org.hibernate.cfg.Configuration - Configured SessionFactory: null 
1697 [http-bio-8080-exec-10] INFO org.hibernate.connection.DriverManagerConnectionProvider - Using Hibernate built-in connection pool (not for production use!) 
1697 [http-bio-8080-exec-10] INFO org.hibernate.connection.DriverManagerConnectionProvider - Hibernate connection pool size: 1 
1697 [http-bio-8080-exec-10] INFO org.hibernate.connection.DriverManagerConnectionProvider - autocommit mode: false 
1700 [http-bio-8080-exec-10] INFO org.hibernate.connection.DriverManagerConnectionProvider - using driver: net.sourceforge.jtds.jdbc.Driver at URL: jdbc:jtds:sqlserver://********-PC/*********; databaseName=Scores 
1700 [http-bio-8080-exec-10] INFO org.hibernate.connection.DriverManagerConnectionProvider - connection properties: {user=****, password=****} 
2169 [http-bio-8080-exec-10] WARN org.hibernate.cfg.SettingsFactory - Could not obtain connection to query metadata 
java.sql.SQLException: Login failed for user '****'. 
    at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:372) 
    at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2893) 
    at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2335) 
    at net.sourceforge.jtds.jdbc.TdsCore.login(TdsCore.java:609) 
    at net.sourceforge.jtds.jdbc.JtdsConnection.<init>(JtdsConnection.java:369) 
    at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:183) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at java.sql.DriverManager.getConnection(Unknown Source); databaseName=Scores 
1700 [http-bio-8080-exec-10] INFO org.hibernate.connection.DriverManagerConnectionProvider - connection properties: {user=****, password=****} 
2169 [http-bio-8080-exec-10] WARN org.hibernate.cfg.SettingsFactory - Could not obtain connection to query metadata 
java.sql.SQLException: Login failed for user '****'. 
    at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:372) 
    at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2893) 
    at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2335) 
    at net.sourceforge.jtds.jdbc.TdsCore.login(TdsCore.java:609) 
    at net.sourceforge.jtds.jdbc.JtdsConnection.<init>(JtdsConnection.java:369) 
    at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:183) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at java.sql.DriverManager.getConnection(Unknown Source) 

3293 [http-bio-8080-exec-10] ERROR org.hibernate.tool.hbm2ddl.SchemaUpdate - could not complete schema update 
java.sql.SQLException: Login failed for user '*****'. 
    at net.sourceforge.jtds.jdbc.SQLDiagnostic.addDiagnostic(SQLDiagnostic.java:372) 
    at net.sourceforge.jtds.jdbc.TdsCore.tdsErrorToken(TdsCore.java:2893) 
    at net.sourceforge.jtds.jdbc.TdsCore.nextToken(TdsCore.java:2335) 
    at net.sourceforge.jtds.jdbc.TdsCore.login(TdsCore.java:609) 
    at net.sourceforge.jtds.jdbc.JtdsConnection.<init>(JtdsConnection.java:369) 
    at net.sourceforge.jtds.jdbc.Driver.connect(Driver.java:183) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at java.sql.DriverManager.getConnection(Unknown Source) 

3447 [http-bio-8080-exec-10] WARN org.hibernate.util.JDBCExceptionReporter - SQL Error: 18456, SQLState: 28000 
3447 [http-bio-8080-exec-10] ERROR org.hibernate.util.JDBCExceptionReporter - Login failed for user '*****'. 
org.hibernate.exception.GenericJDBCException: Cannot open connection 
    at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:126) 
    at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:114) 
    at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66) 
    at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:52) 
    at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:449) 
    at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:167) 
    at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:142) 
    at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:85) 
    at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1354) 
    at database.ScoreDB.addPlayerScore(ScoreDB.java:17) 
+0

你配置说databaseName =名称,但你的错误说databaseName =分数,你是否选择正确的配置? – DaveRlz 2013-05-03 10:04:31

+0

多数民众赞成在改变,配置文件现在读取databaseName =分数。 – jchoran 2013-05-03 10:54:43

回答

0

尝试另一个驱动程序,并检查它是否有效,也许。我用这个和它的作品:

com.microsoft.sqlserver.jdbc.SQLServerDriver 

要进行连接:

jdbc:sqlserver://SERVER[\\INSTANCE];DatabaseName=dbname 

如果仍然没有工作,请检查您是否错过了任何配置或东西是不好的拼写,但目前看来,它应该工作。

+0

感谢您的回复。只有一个问题,实例名是必要的吗?星号中的名称只是一个名称,没有指定实例名称。 – jchoran 2013-05-03 09:56:37

+0

说实话,我不知道是否需要,但我认为是。如果使用SQL Management Studio连接到数据库,并使用类似于/ LOCALHOST \ INSTANCENAME \的内容,并且一切正常,请尝试使用它,如果您从未这样做过。 – DaGLiMiOuX 2013-05-03 09:58:52

+0

http://msdn.microsoft.com/en-gb/library/ms378428(v=sql.90).aspx 它表示它是可选的,但它将使用默认的实例名称。正如我所说的,如果您使用实例通过SQL Management Studio进行连接并且它可以工作,我建议您尝试使用相同的实例名称。 – DaGLiMiOuX 2013-05-03 10:00:33