在网上找了好多资料 也安装了sp4补丁 与数据库连接正常 就是hibernate连不上.
求解答
出错信息:
Exception in thread "main" org.hibernate.exception.JDBCConnectionException: Cannot open connection
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:97)
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 StudentsTest.main(StudentsTest.java:25)
Caused by: java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSConnection.<init>(Unknown Source)
at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source)
at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown Source)
at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)
at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:154)
at org.hibernate.connection.DriverManagerConnectionProvider.getConnection(DriverManagerConnectionProvider.java:133)
at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446)
... 5 morehibernate.cfg.xml配置信息:<?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>        <!-- Database connection settings -->
        <property name="connection.driver_class">com.microsoft.jdbc.sqlserver.SQLServerDriver</property>
        <property name="connection.url">jdbc:microsoft:sqlserver://127.0.0.1/hibernate</property>
        <property name="connection.username">sa</property>
        <property name="connection.password">wmusic</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 resource="com/bjsxt/hibernate/model/students.hbm.xml"/>


    </session-factory></hibernate-configuration>测试类:
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;import com.bjsxt.hibernate.model.students;
public class StudentsTest { public static void main(String[] args) {
students s=new students();

s.setId(1);
s.setName("s1");
s.setAge(1);

Configuration cfg=new Configuration(); cfg=cfg.configure();
SessionFactory sf=cfg.buildSessionFactory(); Session session=sf.openSession();

session.beginTransaction();

session.save(s);
session.getTransaction().commit();
session.close();
sf.close();
}}

解决方案 »

  1.   

    顺便说一句.出错出在 session.beginTransaction();
      

  2.   

    如果连接url没有问题的话,那么应该是你的sqlserver驱动jar包有问题,建议换最新的,
    另外说一句,如果数据库是sqlserver2005及以上版本,那么mssql2000的驱动有问题,需要使用第三方或最新的驱动。
      

  3.   

    你的url写的有问题吧:
    一般我都是这样写的:jdbc:sqlserver://192.168.0.48:1433;database=dbname
      

  4.   

    你用的是什么驱动包呢 sqljdbc.jar ?
      

  5.   

    谢谢 真的是驱动jar包的问题 问题解决了