如何建立第一个hibernate项目以及解决相关出现的问题

今天着实让我头疼的很,在学习hibernate的时候,虽然理解了,但是真实的实例开发起来会遇到很多的问题,就仅仅从数据库取出属于显示出来就让我遇到了很大的麻烦,从早上忙到晚上,这里先说问题再说一个系统的开发流程:

首先:我发现建立hibernate.cfg.xml文件的时候,发现在最顶部提示一个警告,这一个警告很烦人,但是,知道现在我还是那他没有办法,dtd什么的都改了,验证也改了,就是没办法,。最后警告请教他人说这个岁项目没有太大的影响,与是我就彻底的放弃了。

然后就是一个非常大的问题了,当我按部就班的把所有的应用都全部写完的时候,一点击运行距提示很多错误,是很多错误,但是,至少我还是从错误里面获取了一些有用的信息,就是说我的代码有问题,当我把代码改进了之后,代码还是有问题,最后在错误的前面我看到了sl4j的一个jar包引入错误,为什么是会引入错误呢,我明明已经引入进去,但是,没有办法,错了就是错了,只能大胆的试了一把,假设sl4j的jar包有问题,那么我就从官网下载的最新的jar包全部更新,结果程序可以正常运行》


下面接着说建立hibernate项目的整个流程:

1;引入jar包,这里的jar包我已经全部修改整理好了hibernate-3.3.2jar包-已整理

2:建立hibernate.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.mysql.jdbc.Driver</property>
        <property name="connection.url">jdbc:mysql://localhost/hibernate</property>
        <property name="connection.username">root</property>
        <property name="connection.password">toor</property>

        <!-- JDBC connection pool (use the built-in) -->
        <property name="connection.pool_size">1</property>

        <!-- SQL dialect -->
        <property name="dialect">org.hibernate.dialect.MySQLDialect</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/xuning/demon/User.hbm.xml"/>
    </session-factory>

</hibernate-configuration>
3:建立数据库相应表的相关对象:如:

package com.xuning.demon;

public class User {
	private int id;
	private String username;
	private String password;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}

}

3:建立对象.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>
	<class name="com.xuning.demon.User">
		<id name="id"/>
		<property name="username" />
		<property name="password" />
    </class>
</hibernate-mapping>

4:执行程序:

package com.xuning.demon;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class Usermain {
	public static void main(String[] args) {
		//实例化一个对象
		User user=new User();
		//给对象的成员属性赋值
		user.setUsername("xuning7");
		user.setPassword("toor");
		//实例化configuration对象
		Configuration cfg=new Configuration();
		//读取hibernate。cfg.xml配置文件实例化sessionfactory对象
		SessionFactory sessionFactory=cfg.configure().buildSessionFactory();
		//实例化session并开启
		Session session=sessionFactory.openSession();
		//开始施行后事务。hibernate的dml必须执行事务
		session.beginTransaction();
		//保存对象
		session.save(user);
		//提交事务
		session.getTransaction().commit();
		//关闭session
		session.close();
		//关闭sessionfactory
		sessionFactory.close();
	}
}


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章