我第一次配置hibernate 是在MyEclipse里面加载的hibernate包 MyEclipse包没有把文件包加载到工程文件里 而是存放在MyEclipse*/*文件夹下面
我建立的是一个java project
ide MyEclipse8.5
mysql 版本 5.1.47
驱动 mysql-connector-java-5.1.13-bin.jar理想运行结果:实现增加表,增加表的数据等功能运行时报:
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder
at org.slf4j.LoggerFactory.<clinit>(LoggerFactory.java:60)
at org.hibernate.cfg.Configuration.<clinit>(Configuration.java:151)
at cn.hibernate.Base.main(Base.java:15)
Caused by: java.lang.ClassNotFoundException: org.slf4j.impl.StaticLoggerBinder
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
他说无法加载类 org.slf4j.impl.StaticLoggerBinder
报错的一行是初始化mysql jdbc驱动的语句 Configuration cfg = new Configuration();
是不是我驱动用的不对啊? 怎样判断那个版本的mysql用哪个版本的驱动啊?
我建立的一个java project 怎么如果要把hibernate架包文件复制到java项目中 应该复制到那个目录下面啊
王勇老师运行此项目时 是在test数据库中建立了一个Usr表 本项目在配置文件里没有指明是修对test数据库进行操作啊?他怎么自己就修改test数据库中的数据啊?
下面是我的工程结构:hibernate1
src
|--cn.hibernate
| +- Base.java
|--cn.hibernate.doman
| +- User.java
| |- User.hbm.xml
|
|-- hivernate.cfg.xml--------------------------------------------------------------------------
Base.java 代码为:
public static void main(String[] args) {
//初始化驱动
Configuration cfg = new Configuration();
cfg.configure();
//初始化参数的目的是拿到sessionfactory对象
SessionFactory sf = cfg.buildSessionFactory();
//生成session
Session s = sf.openSession();
User user = new User();
user.setBirthday(new Date());
user.setName("name");
s.save(user);
s.close();
System.out.println("end");
}--------------------------------------------------------------------------
User.java 代码为:
private int Id;
private String name;
private Date birthday; //省略geting 和 seting--------------------------------------------------------------------------
User.hbm.xml:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping
package="cn.hibernate.domain"> <class name="User"> <id name="id">
<generator class="native"/>
</id> <property name="name" />
<property name="birthday"/> </class></hibernate-mapping>
--------------------------------------------------------------------------
hibernate.cfg.xml:
<hibernate-configuration>
<session-factory >
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql:///test</property>
<property name="connection.username">root</property>
<property name="connection.password">wangqiang</property>
<!-- 自动创建表 -->
<property name="hbm2ddl.auto">create</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- 指定映射文件位置 -->
<mapping resource="cn/bibernate/domain/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>
我建立的是一个java project
ide MyEclipse8.5
mysql 版本 5.1.47
驱动 mysql-connector-java-5.1.13-bin.jar理想运行结果:实现增加表,增加表的数据等功能运行时报:
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder
at org.slf4j.LoggerFactory.<clinit>(LoggerFactory.java:60)
at org.hibernate.cfg.Configuration.<clinit>(Configuration.java:151)
at cn.hibernate.Base.main(Base.java:15)
Caused by: java.lang.ClassNotFoundException: org.slf4j.impl.StaticLoggerBinder
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
他说无法加载类 org.slf4j.impl.StaticLoggerBinder
报错的一行是初始化mysql jdbc驱动的语句 Configuration cfg = new Configuration();
是不是我驱动用的不对啊? 怎样判断那个版本的mysql用哪个版本的驱动啊?
我建立的一个java project 怎么如果要把hibernate架包文件复制到java项目中 应该复制到那个目录下面啊
王勇老师运行此项目时 是在test数据库中建立了一个Usr表 本项目在配置文件里没有指明是修对test数据库进行操作啊?他怎么自己就修改test数据库中的数据啊?
下面是我的工程结构:hibernate1
src
|--cn.hibernate
| +- Base.java
|--cn.hibernate.doman
| +- User.java
| |- User.hbm.xml
|
|-- hivernate.cfg.xml--------------------------------------------------------------------------
Base.java 代码为:
public static void main(String[] args) {
//初始化驱动
Configuration cfg = new Configuration();
cfg.configure();
//初始化参数的目的是拿到sessionfactory对象
SessionFactory sf = cfg.buildSessionFactory();
//生成session
Session s = sf.openSession();
User user = new User();
user.setBirthday(new Date());
user.setName("name");
s.save(user);
s.close();
System.out.println("end");
}--------------------------------------------------------------------------
User.java 代码为:
private int Id;
private String name;
private Date birthday; //省略geting 和 seting--------------------------------------------------------------------------
User.hbm.xml:
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping
package="cn.hibernate.domain"> <class name="User"> <id name="id">
<generator class="native"/>
</id> <property name="name" />
<property name="birthday"/> </class></hibernate-mapping>
--------------------------------------------------------------------------
hibernate.cfg.xml:
<hibernate-configuration>
<session-factory >
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql:///test</property>
<property name="connection.username">root</property>
<property name="connection.password">wangqiang</property>
<!-- 自动创建表 -->
<property name="hbm2ddl.auto">create</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<!-- 指定映射文件位置 -->
<mapping resource="cn/bibernate/domain/User.hbm.xml"/>
</session-factory>
</hibernate-configuration>
还有啦,6.0的 IDE都够慢的啦,你还用8.x的IDE,你也太汗了。