JDBC连接SQL server报错

dddzizi 2008-01-27 05:16:36
弄了几天,也没找出原因。报错如下:
[Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]无法打开登录 'spring-hibernate' 中请求的数据库。登录失败。
hibernate配置文件:
<session-factory>
<property name="connection.username"> sa </property>
<property name="connection.url">
jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=spring-hibernate
</property>
<property name="dialect">
org.hibernate.dialect.SQLServerDialect
</property>
<property name="myeclipse.connection.profile">
com.microsoft.jdbc.sqlserver.SQLServerDriver
</property>
<property name="connection.password"> sa </property>
<property name="connection.driver_class">
com.microsoft.jdbc.sqlserver.SQLServerDriver
</property>
<mapping resource="com/raising/usermgr/model/User.hbm.xml" />
<mapping resource="com/raising/usermgr/model/Log.hbm.xml" />

</session-factory>

User配置文件:
<hibernate-mapping>
<class name="com.raising.usermgr.model.User" table="t_user">
<id name="id" type="java.lang.Integer">
<column name="ID" />
<generator class="native" />
</id>
<property name="name" type="java.lang.String">
<column name="NAME" length="50" not-null="true" />
</property>
<property name="sex" type="java.lang.String">
<column name="sex" length="4" not-null="true" />
</property>
<property name="phone" type="java.lang.String">
<column name="phone" length="50" not-null="true" />
</property>

</class>
</hibernate-mapping>
Log配置文件:

<hibernate-mapping>
<class name="com.raising.usermgr.model.Log" table="t_log">
<id name="id" type="java.lang.Integer">
<column name="id" />
<generator class="native" />
</id>
<property name="type" type="java.lang.String">
<column name="type" length="50" not-null="true" />
</property>

<property name="desc" type="java.lang.String">
<column name="desc" length="50" not-null="true" />
</property>

<property name="time" type="java.util.Date">
<column name="time" length="50" not-null="true" />
</property>
</class>
</hibernate-mapping>

创建表的方法:
public static void main(String[] args) {

Configuration cfg = new Configuration().configure();

SchemaExport export = new SchemaExport(cfg);

export.create(true, true);
}

使用自定义连接数据库方法可以访问数据库。不知道问题出在哪?哪位大哥知道麻烦说下。
下面方法可以访问数据库:
public class DatabaseConn {

private Connection conn;
private static Statement stmt;
private String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=spring_hibernate";
private String classforname = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
private String uid = "sa";
private String pwd = "sa";

public DatabaseConn() {
}
public Connection getConnection() {
try {
Class.forName(classforname);
if (conn == null ¦ ¦ conn.isClosed())
conn = DriverManager.getConnection(url, uid, pwd);
} catch (ClassNotFoundException ex) {
ex.printStackTrace();
} catch (SQLException ex) {
ex.printStackTrace();
}
return conn;
}

public static void main(String[] args) throws SQLException {

DatabaseConn conn = new DatabaseConn();
Connection con = conn.getConnection();
stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select * from test");
if(rs.next()){
while (rs.next()) {
System.out.println(rs.getString(1));
System.out.println(rs.getString(2));
}
}else{
System.out.println("无法获取数据");
}
}
...全文
174 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
huoyin 2008-01-29
  • 打赏
  • 举报
回复
我没有测试过,感觉desc是sql语句的关键字,不能用作字段名

<property name="descdescription" type="java.lang.String">
<column name="descdescription" length="50" not-null="true" />
</property>
guoqiangone 2008-01-29
  • 打赏
  • 举报
回复
把sql语句和错误上下文贴出来
limon758 2008-01-29
  • 打赏
  • 举报
回复
就是没打开数据库么``
看看到那出的错
看一下错误信息就知道了
stefli 2008-01-27
  • 打赏
  • 举报
回复
是你的sql操作有问题。
desc是排序用的关键字。如果你拿来做表名或者字段名时需要用[]。
你最好把最后一次报错时的sql发出来看看。
dddzizi 2008-01-27
  • 打赏
  • 举报
回复
是spring_hibernate,
改了后报
[Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]在关键字 'desc' 附近有语法错误。
huoyin 2008-01-27
  • 打赏
  • 举报
回复
你的这两个数据库名都不一样:

<property name="connection.url">
jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=spring-hibernate
</property>


private String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=spring_hibernate";


先将spring-hibernate换为spring_hibernate再试一下



老紫竹 2008-01-27
  • 打赏
  • 举报
回复
登录失败

1 sa的密码错误
2 spring-hibernate 有这个数据库吗?我很少简单带减号的数据库名!一般都是下划线

67,514

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧