先谢谢各位DX不吝赐教,谢谢!报错: 09:22:15,390 INFO Environment: Hibernate 2.1.209:22:15,390 INFO Environment: hibernate.properties not found09:22:15,468 INFO Environment: using CGLIB reflection optimizer09:22:15,500 INFO Configuration: processing one-to-many association mappings09:22:15,500 INFO Configuration: processing one-to-one association property references09:22:15,500 INFO Configuration: processing foreign key constraints09:22:15,640 WARN SettingsFactory: No dialect set - using GenericDialect: The dialect was not set. Set the property hibernate.dialect.09:22:15,656 INFO Dialect: Using dialect: net.sf.hibernate.dialect.GenericDialect09:22:15,656 INFO SettingsFactory: Use outer join fetching: false09:22:15,656 WARN UserSuppliedConnectionProvider: No connection properties specified - the user must supply JDBC connections09:22:15,671 INFO TransactionManagerLookupFactory: No TransactionManagerLookup configured (in JTA environment, use of process level read-write cache is not recommended)09:22:15,671 INFO SettingsFactory: Use scrollable result sets: false09:22:15,671 INFO SettingsFactory: Use JDBC3 getGeneratedKeys(): false09:22:15,671 INFO SettingsFactory: Optimize cache for minimal puts: false09:22:15,671 INFO SettingsFactory: Query language substitutions: {}09:22:15,671 INFO SettingsFactory: cache provider: net.sf.ehcache.hibernate.Provider09:22:15,828 INFO Configuration: instantiating and configuring caches09:22:16,234 INFO SessionFactoryImpl: building session factory09:22:17,046 INFO SessionFactoryObjectFactory: no JNDI name configuredjava.lang.UnsupportedOperationException: The user must supply a JDBC connection at net.sf.hibernate.connection.UserSuppliedConnectionProvider.getConnection(UserSuppliedConnectionProvider.java:32) at net.sf.hibernate.impl.BatcherImpl.openConnection(BatcherImpl.java:278) at net.sf.hibernate.impl.SessionImpl.connect(SessionImpl.java:3264) at net.sf.hibernate.impl.SessionImpl.connection(SessionImpl.java:3244) at net.sf.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:40) at net.sf.hibernate.transaction.JDBCTransactionFactory.beginTransaction(JDBCTransactionFactory.java:19) at net.sf.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:2195) at Temp.Client2.main(Client2.java:28) Exception in thread "main" 代码:配置文件见上面: Person.javapackage Temp;public class Person { private String id; private String name; private String address; public void setId(String value) { this.id = value; } public String getId() { return id; } public void setName(String value) { this.name = value; } public String getName() { return name; } public void setAddress(String value) { this.address = value; } public String getAddress() { return address; } }Client1.java package Temp; import net.sf.hibernate.Session; import net.sf.hibernate.Transaction; import net.sf.hibernate.SessionFactory; import net.sf.hibernate.cfg.Configuration; import net.sf.hibernate.tool.hbm2ddl.SchemaExport;/** *本类只是用来创建表的,并不往表内部插入任何数据,并且只能使用一次,否则会删除已有的表的 */ public class Client1 { private static SessionFactory sessionFactory; public static void main(String[] args) throws Exception { Configuration conf = new Configuration().addClass(Person.class);//第一次运行时用来在数据库中创建dbExport表 //并且把sql语句输出到txt文件用的 SchemaExport dbExport = new SchemaExport(conf); dbExport.setOutputFile("sql.txt"); dbExport.create(true, true); } }Client2.java package Temp; import net.sf.hibernate.Session; import net.sf.hibernate.Transaction; import net.sf.hibernate.SessionFactory; import net.sf.hibernate.cfg.Configuration; import net.sf.hibernate.tool.hbm2ddl.SchemaExport;public class Client2 { private static SessionFactory sessionFactory; public static void main(String[] args) throws Exception { Configuration conf = new Configuration(); sessionFactory = conf.buildSessionFactory(); Session s = sessionFactory.openSession(); Transaction t = s.beginTransaction(); Person yuj = new Person(); yuj.setName("john"); yuj.setAddress("上海"); Person x = new Person(); x.setName("zhaoyh"); x.setAddress("上海"); s.save(yuj); s.save(x); t.commit(); s.close(); } }代码就这么多,jdbc驱动URL为: <property name="dialect">net.sf.hibernate.dialect.MySQLDialect</property> <property name="connection.driver_class">org.gjt.mm.mysql.Driver</property> <property name="connection.url">jdbc:mysql://localhost:3306/mysql?useUnicode=true&characterEncoding=GBK</property>
也对,我把路径改称中文的了~~我用的IDE是JBuilder2005 报错~~ D:\Borland\JBuilder2005\jdk1.4\bin\javaw -classpath "C:\Documents and Settings\Administrator\jbproject\TestHXML\classes;F:\backup\useinJbuilder\hibernatelib;F:\backup\useinJbuilder\hibernate2.jar;F:\backup\useinJbuilder\logging-log4j-1.2.11.zip;F:\backup\useinJbuilder\mysql-connector-java-3.0.14-production-bin.jar;D:\Borland\JBuilder2005\jdk1.4\jre\bin\JBuilder2005_c.jar;D:\Borland\JBuilder2005\jdk1.4\jre\javaws\javaws.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\charsets.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\ext\dnsns.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\ext\ldapsec.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\ext\localedata.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\ext\sunjce_provider.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\im\indicim.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\im\thaiim.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\jce.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\jsse.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\plugin.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\rt.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\sunrsasign.jar;D:\Borland\JBuilder2005\jdk1.4\lib\dt.jar;D:\Borland\JBuilder2005\jdk1.4\lib\htmlconverter.jar;D:\Borland\JBuilder2005\jdk1.4\lib\tools.jar" Temp.Client2 java.lang.NoClassDefFoundError: org/dom4j/Attribute at Temp.Client2.main(Client2.java:13)Exception in thread "main"
路径已经改了: 报错~~ D:\Borland\JBuilder2005\jdk1.4\bin\javaw -classpath "C:\Documents and Settings\Administrator\jbproject\TestHB\classes;F:\backup\useinJbuilder\hibernatelib;F:\backup\useinJbuilder\hibernate2.jar;F:\backup\useinJbuilder\mysql-connector-java-3.0.14-production-bin.jar;D:\Borland\JBuilder2005\jdk1.4\jre\bin\JBuilder2005_c.jar;D:\Borland\JBuilder2005\jdk1.4\jre\javaws\javaws.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\charsets.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\ext\dnsns.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\ext\ldapsec.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\ext\localedata.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\ext\sunjce_provider.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\im\indicim.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\im\thaiim.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\jce.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\jsse.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\plugin.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\rt.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\sunrsasign.jar;D:\Borland\JBuilder2005\jdk1.4\lib\dt.jar;D:\Borland\JBuilder2005\jdk1.4\lib\htmlconverter.jar;D:\Borland\JBuilder2005\jdk1.4\lib\tools.jar" Temp.Client2 java.lang.NoClassDefFoundError: org/dom4j/Attribute at Temp.Client2.main(Client2.java:13)Exception in thread "main"
又解决了一点问题,现在的问题又是java.lang.UnsupportedOperationException: The user must supply a JDBC connection~~ 我快晕了~~
Person.hbm.xml也配置错误。
这是我MySQL的驱动,我做Struts一直用它啊~~~麻烦说明白点啊~~
还有我bernate.cfg.xml里面的路径为org\gjt\mm\mysql\Driver.class开始写错了。mofeir(莫飞)你能不能说明白点,我也刚学2天书~~
Person.hbm.xml错误在哪里?
似乎要你自己提供jdbc连接,但你没提供,把出错的代码打印出来看看。
还有jdbc:mysql://localhost/Temp 这个mysql的url是这样子的吗?
我记得好象是这样的吧
jdbc:mysql://localhost:3306/Temp
还有
hbm.xml文件能用hibernatesync生成就用它生成吧,或者用middlegen生成,这两个都能作为eclipse的插件,用起来比较方便。
省事很多,而且你是单表操作
URL:jdbc:mysql://<machine_name><:port>/dbname
注:machine_name:数据库所在的机器的名称;
port:端口号,默认3306
解决mysql 乱码问题
URL=jdbc:mysql://localhost:3306/mysql?useUnicode=true&characterEncoding=GBK
09:22:15,390 INFO Environment: Hibernate 2.1.209:22:15,390 INFO Environment: hibernate.properties not found09:22:15,468 INFO Environment: using CGLIB reflection optimizer09:22:15,500 INFO Configuration: processing one-to-many association mappings09:22:15,500 INFO Configuration: processing one-to-one association property references09:22:15,500 INFO Configuration: processing foreign key constraints09:22:15,640 WARN SettingsFactory: No dialect set - using GenericDialect: The dialect was not set. Set the property hibernate.dialect.09:22:15,656 INFO Dialect: Using dialect: net.sf.hibernate.dialect.GenericDialect09:22:15,656 INFO SettingsFactory: Use outer join fetching: false09:22:15,656 WARN UserSuppliedConnectionProvider: No connection properties specified - the user must supply JDBC connections09:22:15,671 INFO TransactionManagerLookupFactory: No TransactionManagerLookup configured (in JTA environment, use of process level read-write cache is not recommended)09:22:15,671 INFO SettingsFactory: Use scrollable result sets: false09:22:15,671 INFO SettingsFactory: Use JDBC3 getGeneratedKeys(): false09:22:15,671 INFO SettingsFactory: Optimize cache for minimal puts: false09:22:15,671 INFO SettingsFactory: Query language substitutions: {}09:22:15,671 INFO SettingsFactory: cache provider: net.sf.ehcache.hibernate.Provider09:22:15,828 INFO Configuration: instantiating and configuring caches09:22:16,234 INFO SessionFactoryImpl: building session factory09:22:17,046 INFO SessionFactoryObjectFactory: no JNDI name configuredjava.lang.UnsupportedOperationException: The user must supply a JDBC connection at net.sf.hibernate.connection.UserSuppliedConnectionProvider.getConnection(UserSuppliedConnectionProvider.java:32) at net.sf.hibernate.impl.BatcherImpl.openConnection(BatcherImpl.java:278) at net.sf.hibernate.impl.SessionImpl.connect(SessionImpl.java:3264) at net.sf.hibernate.impl.SessionImpl.connection(SessionImpl.java:3244) at net.sf.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:40) at net.sf.hibernate.transaction.JDBCTransactionFactory.beginTransaction(JDBCTransactionFactory.java:19) at net.sf.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:2195) at Temp.Client2.main(Client2.java:28)
Exception in thread "main" 代码:配置文件见上面:
Person.javapackage Temp;public class Person {
private String id;
private String name;
private String address; public void setId(String value) {
this.id = value;
} public String getId() {
return id;
} public void setName(String value) {
this.name = value;
} public String getName() {
return name;
} public void setAddress(String value) {
this.address = value;
} public String getAddress() {
return address;
}
}Client1.java
package Temp;
import net.sf.hibernate.Session;
import net.sf.hibernate.Transaction;
import net.sf.hibernate.SessionFactory;
import net.sf.hibernate.cfg.Configuration;
import net.sf.hibernate.tool.hbm2ddl.SchemaExport;/**
*本类只是用来创建表的,并不往表内部插入任何数据,并且只能使用一次,否则会删除已有的表的
*/
public class Client1 {
private static SessionFactory sessionFactory; public static void main(String[] args) throws Exception {
Configuration conf = new Configuration().addClass(Person.class);//第一次运行时用来在数据库中创建dbExport表
//并且把sql语句输出到txt文件用的
SchemaExport dbExport = new SchemaExport(conf);
dbExport.setOutputFile("sql.txt");
dbExport.create(true, true);
}
}Client2.java
package Temp;
import net.sf.hibernate.Session;
import net.sf.hibernate.Transaction;
import net.sf.hibernate.SessionFactory;
import net.sf.hibernate.cfg.Configuration;
import net.sf.hibernate.tool.hbm2ddl.SchemaExport;public class Client2 {
private static SessionFactory sessionFactory; public static void main(String[] args) throws Exception {
Configuration conf = new Configuration();
sessionFactory = conf.buildSessionFactory();
Session s = sessionFactory.openSession();
Transaction t = s.beginTransaction(); Person yuj = new Person();
yuj.setName("john");
yuj.setAddress("上海"); Person x = new Person();
x.setName("zhaoyh");
x.setAddress("上海");
s.save(yuj);
s.save(x); t.commit();
s.close();
}
}代码就这么多,jdbc驱动URL为:
<property name="dialect">net.sf.hibernate.dialect.MySQLDialect</property>
<property name="connection.driver_class">org.gjt.mm.mysql.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/mysql?useUnicode=true&characterEncoding=GBK</property>
<property name="dialect">net.sf.hibernate.dialect.MySQLDialect</property>
<property name="connection.driver_class">org.gjt.mm.mysql.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/Temp</property>
Why 路进非要起个中文名字呢?不是自找麻烦吗?
报错~~
D:\Borland\JBuilder2005\jdk1.4\bin\javaw -classpath "C:\Documents and Settings\Administrator\jbproject\TestHXML\classes;F:\backup\useinJbuilder\hibernatelib;F:\backup\useinJbuilder\hibernate2.jar;F:\backup\useinJbuilder\logging-log4j-1.2.11.zip;F:\backup\useinJbuilder\mysql-connector-java-3.0.14-production-bin.jar;D:\Borland\JBuilder2005\jdk1.4\jre\bin\JBuilder2005_c.jar;D:\Borland\JBuilder2005\jdk1.4\jre\javaws\javaws.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\charsets.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\ext\dnsns.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\ext\ldapsec.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\ext\localedata.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\ext\sunjce_provider.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\im\indicim.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\im\thaiim.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\jce.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\jsse.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\plugin.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\rt.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\sunrsasign.jar;D:\Borland\JBuilder2005\jdk1.4\lib\dt.jar;D:\Borland\JBuilder2005\jdk1.4\lib\htmlconverter.jar;D:\Borland\JBuilder2005\jdk1.4\lib\tools.jar" Temp.Client2
java.lang.NoClassDefFoundError: org/dom4j/Attribute at Temp.Client2.main(Client2.java:13)Exception in thread "main"
报错~~
D:\Borland\JBuilder2005\jdk1.4\bin\javaw -classpath "C:\Documents and Settings\Administrator\jbproject\TestHB\classes;F:\backup\useinJbuilder\hibernatelib;F:\backup\useinJbuilder\hibernate2.jar;F:\backup\useinJbuilder\mysql-connector-java-3.0.14-production-bin.jar;D:\Borland\JBuilder2005\jdk1.4\jre\bin\JBuilder2005_c.jar;D:\Borland\JBuilder2005\jdk1.4\jre\javaws\javaws.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\charsets.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\ext\dnsns.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\ext\ldapsec.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\ext\localedata.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\ext\sunjce_provider.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\im\indicim.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\im\thaiim.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\jce.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\jsse.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\plugin.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\rt.jar;D:\Borland\JBuilder2005\jdk1.4\jre\lib\sunrsasign.jar;D:\Borland\JBuilder2005\jdk1.4\lib\dt.jar;D:\Borland\JBuilder2005\jdk1.4\lib\htmlconverter.jar;D:\Borland\JBuilder2005\jdk1.4\lib\tools.jar" Temp.Client2 java.lang.NoClassDefFoundError: org/dom4j/Attribute at Temp.Client2.main(Client2.java:13)Exception in thread "main"
我快晕了~~