论坛首页 Java版 Hibernate

提问:关于读取MSSQLSERVER 数据库表中的image字段出错?

浏览 2242 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
最后更新时间:2004-03-20
[code:1]
package cn.com.plans.gui;


import HK.com.hit.cof.database.*;
import HK.com.hit.cof.gui.GuiBasicContext;
import HK.com.hit.cof.gui.GuiContext;
import HK.com.hit.cof.service.*;
import HK.com.hit.guider.desktop.GuiderDesktopContext;
import HK.com.hit.guider.model.data.*;
import HK.com.hit.guider.model.data.base.VesselModelDataBase;
import HK.com.hit.guider.model.vessel.*;
import HK.com.hit.guider.service.GuiderSession;
import java.beans.PropertyChangeListener;
import java.rmi.RemoteException;
import java.util.Date;
import java.sql.Blob;
import java.sql.Clob;


import java.io.Serializable;
import java.io.InputStream;
import java.io.ObjectInputStream;

public class testvsmod  implements Serializable {

  private Long id;
  private String name;
  private String[]  vs;
//定义一个简单链表 指向另外的一个Message

  public testvsmod() {
  }
  public testvsmod(Long id) {
    this.id = id;
  }

  public testvsmod(String text) {
    this.name = text;
  }

  public testvsmod(Long id, String text) {
    this.id = id;
    this.name = text;
  }

  public testvsmod(Long id, String text, String[] vs) {
    this.id = id;
    this.name = text;
    this.vs = vs;
  }


  public Long getId() {
    return id;
  }

  private void setId(Long id) {
  this.id = id;
  }

  public String getname()
  {
    return name;
  }

  public void setname(String name)
  {
    this.name = name;
  }

  public String[] getVS()
  {
    return this.vs;
  }

  public void setVS(String[] vs)
  {
    this.vs = vs;
  }

}[/code:1]

[code:1]<?xml version="1.0"?>

<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 2.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<hibernate-mapping>
<!--定义类和表的对应-->
<class
name="cn.com.plans.gui.testvsmod"
table="VESSEL_MODEL"
>
<!--定义ID字段和生成ID的策略 这里采用identity-->
<id name="id"
column="VESSEL_MODEL_ID"
>
<generator class="identity"/>
</id>
<!--定义里面的NAME字段-->
<property
name="name"
>
<!--定义text字段在数据库里面生成的方法-->
<column
name="VESSEL_MODEL_NAME"
length="100"
not-null="true"
/>
</property>
<!--定义里面的VS字段-->
<property
name="vs"
>
<!--定义text字段在数据库里面生成的方法-->
<column
name="VESSEL_STRUCTURE"
/>
</property>

</class>
</hibernate-mapping>[/code:1]

[code:1]package cn.com.plans;

import net.sf.hibernate.cfg.Configuration;
import net.sf.hibernate.SessionFactory;
import net.sf.hibernate.tool.hbm2ddl.SchemaExport;
import net.sf.hibernate.Session;
import net.sf.hibernate.Query;
import net.sf.hibernate.Hibernate;
import net.sf.hibernate.type.LongType;
import net.sf.hibernate.Transaction;
import cn.com.plans.gui.*;

import java.io.ByteArrayInputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.sql.Blob;
import java.sql.SQLException;

/**
* @author getdown
* @version 1.0
*/

public class test {
  public test() {
  }

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

    Configuration cfg = new Configuration().addClass(testvsmod.class);
    SessionFactory sessions = cfg.buildSessionFactory();
    Session session = sessions.openSession();
    testvsmod message = new testvsmod();
    Long id = new Long(173);
    message = (testvsmod) session.find(
        "from testvsmod as message where message.id=?", id,
        Hibernate.LONG).get(0);

    System.out.println(message.getname());
    session.flush();

  }

}[/code:1]

运行后提示如下错误:
[code:1]C:\JBuilderX\jdk1.4\bin\javaw -classpath "D:\Plans\classes;C:\JBuilderX\lib\jbcl.jar;C:\JBuilderX\lib\dx.jar;C:\JBuilderX\lib\beandt.jar;D:\Plans\lib\alloy.jar;D:\Plans\lib\borland-jbcl-3.0-layout.jar;D:\Plans\lib\cof-1.00.jar;D:\Plans\lib\guider.jar;D:\Plans\lib\ibm-ftp-protocol-1.06.jar;D:\Plans\lib\ibm-ftp-ui-1.06.jar;D:\Plans\lib\java-jndi-1.2.1.jar;D:\Plans\lib\java-jnlp-1.0.jar;D:\Plans\lib\java-jswdk-1.0.1-jspengine.jar;D:\Plans\lib\java-jswdk-1.0.1-servlet.jar;D:\Plans\lib\java-jswdk-1.0.1-webserver.jar;D:\Plans\lib\java-jswdk-1.0.1-xml.jar;D:\Plans\lib\java-ldap-1.2.2-ldap.jar;D:\Plans\lib\java-ldap-1.2.2-providerutil.jar;D:\Plans\lib\JDockFloatPro.jar;D:\Plans\lib\oracle-jdbc-8.1.7-1.2.jar;D:\Plans\lib\xplookandfeel.jar;D:\Plans\lib\jtds-0.7.1.jar;C:\JBuilderX\lib\dbswing.jar;C:\JBuilderX\MSSQL2000\msbase.jar;C:\JBuilderX\MSSQL2000\mssqlserver.jar;C:\JBuilderX\MSSQL2000\msutil.jar;C:\JBuilderX\hibernate-2.1\hibernate2.jar;C:\JBuilderX\hibernate-2.1\lib\ant-1.5.3.jar;C:\JBuilderX\hibernate-2.1\lib\ant-optional-1.5.3.jar;C:\JBuilderX\hibernate-2.1\lib\c3p0-0.8.3.jar;C:\JBuilderX\hibernate-2.1\lib\cglib-2.0-rc2.jar;C:\JBuilderX\hibernate-2.1\lib\commons-collections-2.1.jar;C:\JBuilderX\hibernate-2.1\lib\commons-dbcp-1.1.jar;C:\JBuilderX\hibernate-2.1\lib\commons-lang-1.0.1.jar;C:\JBuilderX\hibernate-2.1\lib\commons-logging-1.0.3.jar;C:\JBuilderX\hibernate-2.1\lib\commons-pool-1.1.jar;C:\JBuilderX\hibernate-2.1\lib\concurrent-1.3.2.jar;C:\JBuilderX\hibernate-2.1\lib\connector.jar;C:\JBuilderX\hibernate-2.1\lib\dom4j-1.4.jar;C:\JBuilderX\hibernate-2.1\lib\ehcache-0.6.jar;C:\JBuilderX\hibernate-2.1\lib\jaas.jar;C:\JBuilderX\hibernate-2.1\lib\jboss-cache.jar;C:\JBuilderX\hibernate-2.1\lib\jboss-common.jar;C:\JBuilderX\hibernate-2.1\lib\jboss-jmx.jar;C:\JBuilderX\hibernate-2.1\lib\jboss-system.jar;C:\JBuilderX\hibernate-2.1\lib\jcs-1.0-dev.jar;C:\JBuilderX\hibernate-2.1\lib\jdbc2_0-stdext.jar;C:\JBuilderX\hibernate-2.1\lib\jgroups-2.2.jar;C:\JBuilderX\hibernate-2.1\lib\jta.jar;C:\JBuilderX\hibernate-2.1\lib\junit-3.8.1.jar;C:\JBuilderX\hibernate-2.1\lib\log4j-1.2.8.jar;C:\JBuilderX\hibernate-2.1\lib\odmg-3.0.jar;C:\JBuilderX\hibernate-2.1\lib\oscache-2.0.jar;C:\JBuilderX\hibernate-2.1\lib\proxool-0.8.3.jar;C:\JBuilderX\hibernate-2.1\lib\swarmcache-1.0rc2.jar;C:\JBuilderX\hibernate-2.1\lib\xalan-2.4.0.jar;C:\JBuilderX\hibernate-2.1\lib\xerces-2.4.0.jar;C:\JBuilderX\hibernate-2.1\lib\xml-apis.jar;C:\JBuilderX\jdk1.4\demo\jfc\Java2D\Java2Demo.jar;C:\JBuilderX\jdk1.4\demo\plugin\jfc\Java2D\Java2Demo.jar;C:\JBuilderX\jdk1.4\jre\javaws\javaws.jar;C:\JBuilderX\jdk1.4\jre\lib\charsets.jar;C:\JBuilderX\jdk1.4\jre\lib\ext\dnsns.jar;C:\JBuilderX\jdk1.4\jre\lib\ext\ldapsec.jar;C:\JBuilderX\jdk1.4\jre\lib\ext\localedata.jar;C:\JBuilderX\jdk1.4\jre\lib\ext\sunjce_provider.jar;C:\JBuilderX\jdk1.4\jre\lib\im\indicim.jar;C:\JBuilderX\jdk1.4\jre\lib\im\thaiim.jar;C:\JBuilderX\jdk1.4\jre\lib\jce.jar;C:\JBuilderX\jdk1.4\jre\lib\jsse.jar;C:\JBuilderX\jdk1.4\jre\lib\plugin.jar;C:\JBuilderX\jdk1.4\jre\lib\rt.jar;C:\JBuilderX\jdk1.4\jre\lib\sunrsasign.jar;C:\JBuilderX\jdk1.4\lib\dt.jar;C:\JBuilderX\jdk1.4\lib\htmlconverter.jar;C:\JBuilderX\jdk1.4\lib\tools.jar"  cn.com.plans.test
log4j:WARN No appenders could be found for logger (net.sf.hibernate.cfg.Environment).

log4j:WARN Please initialize the log4j system properly.

net.sf.hibernate.PropertyNotFoundException: Could not find a getter for vs in class cn.com.plans.gui.testvsmod

at net.sf.hibernate.property.BasicPropertyAccessor.getGetter(BasicPropertyAccessor.java:182)

at net.sf.hibernate.mapping.Property.getGetter(Property.java:179)

at net.sf.hibernate.persister.AbstractEntityPersister.<init>(AbstractEntityPersister.java:734)

at net.sf.hibernate.persister.EntityPersister.<init>(EntityPersister.java:715)

at net.sf.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:41)

at net.sf.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:137)

at net.sf.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:750)

at cn.com.plans.test.main(test.java:38)

Exception in thread "main" [/code:1]


类testvsmod  里的vs对应的是mssqlserver表里的image类型的字段,该vs属性我试着用了好几种类型都出错如:Blob,byte等等。
   
最后更新时间:2004-03-20
是驱动的问题,你换JTDS就可以了
   
0 请登录后投票
最后更新时间:2004-03-21
我换了JTDS驱动了,可还是和原来的错误一样
[code:1]C:\JBuilderX\jdk1.4\bin\javaw -classpath "D:\Plans\classes;C:\JBuilderX\lib\jbcl.jar;C:\JBuilderX\lib\dx.jar;C:\JBuilderX\lib\beandt.jar;D:\Plans\lib\alloy.jar;D:\Plans\lib\borland-jbcl-3.0-layout.jar;D:\Plans\lib\cof-1.00.jar;D:\Plans\lib\guider.jar;D:\Plans\lib\ibm-ftp-protocol-1.06.jar;D:\Plans\lib\ibm-ftp-ui-1.06.jar;D:\Plans\lib\java-jndi-1.2.1.jar;D:\Plans\lib\java-jnlp-1.0.jar;D:\Plans\lib\java-jswdk-1.0.1-jspengine.jar;D:\Plans\lib\java-jswdk-1.0.1-servlet.jar;D:\Plans\lib\java-jswdk-1.0.1-webserver.jar;D:\Plans\lib\java-jswdk-1.0.1-xml.jar;D:\Plans\lib\java-ldap-1.2.2-ldap.jar;D:\Plans\lib\java-ldap-1.2.2-providerutil.jar;D:\Plans\lib\JDockFloatPro.jar;D:\Plans\lib\oracle-jdbc-8.1.7-1.2.jar;D:\Plans\lib\xplookandfeel.jar;D:\Plans\lib\jtds-0.7.1.jar;C:\JBuilderX\lib\dbswing.jar;C:\JBuilderX\jdbclib\MSSQL2000\jtds-0.7.1.jar;C:\JBuilderX\jdbclib\MSSQL2000\msbase.jar;C:\JBuilderX\jdbclib\MSSQL2000\mssqlserver.jar;C:\JBuilderX\jdbclib\MSSQL2000\msutil.jar;C:\JBuilderX\hibernate-2.1\hibernate2.jar;C:\JBuilderX\hibernate-2.1\lib\ant-1.5.3.jar;C:\JBuilderX\hibernate-2.1\lib\ant-optional-1.5.3.jar;C:\JBuilderX\hibernate-2.1\lib\c3p0-0.8.3.jar;C:\JBuilderX\hibernate-2.1\lib\cglib-2.0-rc2.jar;C:\JBuilderX\hibernate-2.1\lib\commons-collections-2.1.jar;C:\JBuilderX\hibernate-2.1\lib\commons-dbcp-1.1.jar;C:\JBuilderX\hibernate-2.1\lib\commons-lang-1.0.1.jar;C:\JBuilderX\hibernate-2.1\lib\commons-logging-1.0.3.jar;C:\JBuilderX\hibernate-2.1\lib\commons-pool-1.1.jar;C:\JBuilderX\hibernate-2.1\lib\concurrent-1.3.2.jar;C:\JBuilderX\hibernate-2.1\lib\connector.jar;C:\JBuilderX\hibernate-2.1\lib\dom4j-1.4.jar;C:\JBuilderX\hibernate-2.1\lib\ehcache-0.6.jar;C:\JBuilderX\hibernate-2.1\lib\jaas.jar;C:\JBuilderX\hibernate-2.1\lib\jboss-cache.jar;C:\JBuilderX\hibernate-2.1\lib\jboss-common.jar;C:\JBuilderX\hibernate-2.1\lib\jboss-jmx.jar;C:\JBuilderX\hibernate-2.1\lib\jboss-system.jar;C:\JBuilderX\hibernate-2.1\lib\jcs-1.0-dev.jar;C:\JBuilderX\hibernate-2.1\lib\jdbc2_0-stdext.jar;C:\JBuilderX\hibernate-2.1\lib\jgroups-2.2.jar;C:\JBuilderX\hibernate-2.1\lib\jta.jar;C:\JBuilderX\hibernate-2.1\lib\junit-3.8.1.jar;C:\JBuilderX\hibernate-2.1\lib\log4j-1.2.8.jar;C:\JBuilderX\hibernate-2.1\lib\odmg-3.0.jar;C:\JBuilderX\hibernate-2.1\lib\oscache-2.0.jar;C:\JBuilderX\hibernate-2.1\lib\proxool-0.8.3.jar;C:\JBuilderX\hibernate-2.1\lib\swarmcache-1.0rc2.jar;C:\JBuilderX\hibernate-2.1\lib\xalan-2.4.0.jar;C:\JBuilderX\hibernate-2.1\lib\xerces-2.4.0.jar;C:\JBuilderX\hibernate-2.1\lib\xml-apis.jar;C:\JBuilderX\jdk1.4\demo\jfc\Java2D\Java2Demo.jar;C:\JBuilderX\jdk1.4\demo\plugin\jfc\Java2D\Java2Demo.jar;C:\JBuilderX\jdk1.4\jre\javaws\javaws.jar;C:\JBuilderX\jdk1.4\jre\lib\charsets.jar;C:\JBuilderX\jdk1.4\jre\lib\ext\dnsns.jar;C:\JBuilderX\jdk1.4\jre\lib\ext\ldapsec.jar;C:\JBuilderX\jdk1.4\jre\lib\ext\localedata.jar;C:\JBuilderX\jdk1.4\jre\lib\ext\sunjce_provider.jar;C:\JBuilderX\jdk1.4\jre\lib\im\indicim.jar;C:\JBuilderX\jdk1.4\jre\lib\im\thaiim.jar;C:\JBuilderX\jdk1.4\jre\lib\jce.jar;C:\JBuilderX\jdk1.4\jre\lib\jsse.jar;C:\JBuilderX\jdk1.4\jre\lib\plugin.jar;C:\JBuilderX\jdk1.4\jre\lib\rt.jar;C:\JBuilderX\jdk1.4\jre\lib\sunrsasign.jar;C:\JBuilderX\jdk1.4\lib\dt.jar;C:\JBuilderX\jdk1.4\lib\htmlconverter.jar;C:\JBuilderX\jdk1.4\lib\tools.jar"  cn.com.plans.test
log4j:WARN No appenders could be found for logger (net.sf.hibernate.cfg.Environment).

log4j:WARN Please initialize the log4j system properly.

net.sf.hibernate.PropertyNotFoundException: Could not find a getter for vs in class cn.com.plans.gui.testvsmod

at net.sf.hibernate.property.BasicPropertyAccessor.getGetter(BasicPropertyAccessor.java:182)

at net.sf.hibernate.mapping.Property.getGetter(Property.java:179)

at net.sf.hibernate.persister.AbstractEntityPersister.<init>(AbstractEntityPersister.java:734)

at net.sf.hibernate.persister.EntityPersister.<init>(EntityPersister.java:715)

at net.sf.hibernate.persister.PersisterFactory.createClassPersister(PersisterFactory.java:41)

at net.sf.hibernate.impl.SessionFactoryImpl.<init>(SessionFactoryImpl.java:137)

at net.sf.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:750)

at cn.com.plans.test.main(test.java:36)

Exception in thread "main" [/code:1]

如果我在类里把vs属性去了倒没问题,可我就是要去image这个字段的值,该问题要如何解决?
   
0 请登录后投票
最后更新时间:2004-03-22
用jsql试过没有?
   
0 请登录后投票
最后更新时间:2004-03-22
我原先所用的数据库是ORACLE,在Oracle里该字段为LONG RAW 类型,我把数据导到MSSQLSERVER里之后该字段自动设置为image类型,其他类型如varbinary长度都无法存下该数据,同样的代码,在用Oracle数据库是,该字段对应的映射文件及类里用的都是Serializable类型,程序运行时没有问题,而改用MSSQLSERVER2000数据库就出现问上述问题,我用了,ms的jdbc及jtds0都出现问题。
请教该问题要如何解决?
   
0 请登录后投票
最后更新时间:2004-03-22
呵呵,,问题解决了。。用微软的JDBC和JTDS都没问题了,是映射文件需要修改,谢谢各位朋友了。
   
0 请登录后投票
最后更新时间:2004-06-02
llpdev 写道
呵呵,,问题解决了。。用微软的JDBC和JTDS都没问题了,是映射文件需要修改,谢谢各位朋友了。


我也碰到同样的问题,朋友说说是怎么修改的吧~~~~~~~~~~~~~~~
   
0 请登录后投票
最后更新时间:2004-06-02
llpdev 写道
呵呵,,问题解决了。。用微软的JDBC和JTDS都没问题了,是映射文件需要修改,谢谢各位朋友了。


我也碰到同样的问题,朋友说说是怎么修改的吧~~~~~~~~~~~~~~~
   
0 请登录后投票
论坛首页 Java版 Hibernate

跳转论坛:
JavaEye推荐