hibernate4.3.10环境搭建

1、首先还是引入所需要的包

2、然后是配置hibernate.cfg.xml配置文件,连接mysql数据库信息,以及引入其他子模块的映射文件

<hibernate-configuration>
<session-factory>
	<!-- 数据库连接信息 -->
	<property name="show_sql">true</property>
	<property name="connection.url">jdbc:mysql://localhost:3306/test</property>
	<property name="connection.username">root</property>
	<property name="connection.password">root</property>
	<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
	<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
	<property name="hbm2ddl.auto">update</property>

	<mapping resource="/hibernateConfig/Login.hbm.xml" />
</session-factory>
</hibernate-configuration>

3、编写子模块的映射文件,这里是一个简单的登录信息表,Login.hbm.xml

<hibernate-mapping package="com.demo.model">

    <class name="Login" table="login">
        <id name="id" column="id">
            <generator class="increment"/>
        </id>
        <property name="username" column="username" length="20"/>
        <property name="password" column="password" length="20"/>
    </class>

</hibernate-mapping>

4、编写model层的对象映射javabean,和普通的javabean没有什么大的区别,只是加了一些构造函数,属性和数据库表的字段对应

public class Login {
	private int id;
	private String username;
	private String password;

	(getter/setter)

	public Login() {
	}

	public Login(int id, String username, String password) {
		super();
		this.id = id;
		this.username = username;
		this.password = password;
	}
}

5、编写DAO层,DAO负责底层的数据库的一些操作,这里需要实现一个DAO接口,使得业务逻辑组件依赖DAO接口而不是具体实现类,将系统各组件之间的依赖提升到接口层次,避免类层次直接耦合(假如系统有所改变,只要接口层次没有改变,那么依赖该组件的上层组件也不需要改变,从而提供了良好的复用)

LoginDao接口:

public interface LoginDao {
	public void saveLogin(Login login);

	public void deleteLogin(Login login);

	public void updateLogin(Login login);

	public Login findLogin(int id);

	public Login findLogin(String name);
}

LoginDaoImpl实现类:

public class LoginDaoImpl implements LoginDao {
	public void deleteLogin(Login login) {
		HibernateUtil.delete(login);
	}

	public Login findLogin(int id) {
		return (Login) HibernateUtil.findById(Login.class, id);
	}

	public Login findLogin(String name) {
		return (Login) HibernateUtil.findByName(name);
	}

	public void saveLogin(Login login) {
		HibernateUtil.add(login);
	}

	public void updateLogin(Login login) {
		HibernateUtil.update(login);
	}
}

6、编写业务逻辑组件service,DAO已经帮我们实现了数据库的操作,在业务逻辑组件中我们则只需要调用DAO组件并关注于业务逻辑的实现即可

LoginService接口:

public interface LoginService {
	public void save(Login login);

	public void delete(Login login);

	public void update(Login login);

	public Login findById(int id);

	public Login findByName(String name);
}

LoginServiceImpl实现类:

public class LoginServiceImpl implements LoginService {
	private LoginDao loginDao;

	public LoginDao getLoginDao() {
		return loginDao;
	}

	public void setLoginDao(LoginDao loginDao) {
		this.loginDao = loginDao;
	}

	public void delete(Login login) {
		loginDao.deleteLogin(login);
	}

	public Login findById(int id) {
		return loginDao.findLogin(id);
	}

	public Login findByName(String name) {
		return loginDao.findLogin(name);
	}

	public void save(Login login) {
		loginDao.saveLogin(login);
	}

	public void update(Login login) {
		loginDao.updateLogin(login);
	}
}

7、编写获取hibernate的SessionFactory类的工具类,这里编写一个简单的工具类,一般应用是在spring容器里来管理SessionFactory的

public class HibernateUtil {
	private static SessionFactory sf;
	static {
		Configuration cfg = new Configuration();
		cfg.configure("hibernateConfig/hibernate.cfg.xml");
		sf = cfg.buildSessionFactory();
	}

	public static Session getSession() {
		return sf.openSession();
	}

	public static void add(Object entity) {
		Session session = null;
		Transaction tx = null;
		try {
			session = HibernateUtil.getSession();
			tx = session.beginTransaction();
			session.save(entity);
			tx.commit();
		} catch (HibernateException e) {
			e.printStackTrace();
			throw e;
		} finally {
			if (session != null) {
				session.close();
			}
		}
	}

	public static void delete(Object entity) {
		Session session = null;
		Transaction tx = null;
		try {
			session = HibernateUtil.getSession();
			tx = session.beginTransaction();
			session.delete(entity);
			tx.commit();
		} catch (HibernateException e) {
			e.printStackTrace();
			throw e;
		} finally {
			if (session != null) {
				session.close();
			}
		}
	}

	public static void update(Object entity) {
		Session session = null;
		Transaction tx = null;
		try {
			session = HibernateUtil.getSession();
			tx = session.beginTransaction();
			session.update(entity);
			tx.commit();
		} catch (HibernateException e) {
			e.printStackTrace();
			throw e;
		} finally {
			if (session != null) {
				session.close();
			}
		}
	}

	public static Object findById(Class clazz, Serializable id) {
		Session session = null;
		try {
			session = HibernateUtil.getSession();
			Object ob = session.get(clazz, id);
			return ob;
		} catch (HibernateException e) {
			e.printStackTrace();
			throw e;
		} finally {
			if (session != null) {
				session.close();
			}
		}
	}

	public static Object findByName(String name) {
		Session session = null;
		try {
			session = HibernateUtil.getSession();
			Query query = session.createQuery("from test where name = :name");
			query.setParameter("name", name);
			Object ob = query.uniqueResult();
			return ob;
		} catch (HibernateException e) {
			e.printStackTrace();
			throw e;
		} finally {
			if (session != null) {
				session.close();
			}
		}
	}
}

注意:当hibernate.cfg.xml不放在src下时,在这里设置一下,让应用能找到这个配置文件

Configuration cfg = new Configuration();
		cfg.configure("hibernateConfig/hibernate.cfg.xml");

8、action中调用业务逻辑组件提供一个保存用户名密码的实现

public String execute(){
		Login login=new Login();
		login.setUsername(getUsername());
		login.setPassword(getPassword());
		ls.save(login);
		return SUCCESS;
	}

9、在spring配置文件中配置一下各个bean,依赖注入一下

<bean id="loginDao" class="com.demo.dao.daoImpl.LoginDaoImpl" />
	<bean id="loginService" class="com.demo.service.serviceImpl.LoginServiceImpl">
		<property name="loginDao" ref="loginDao" />
	</bean>
	<bean id="registerAction" class="com.demo.action.RegisterAction"
		scope="prototype">
		<property name="ls" ref="loginService" />
	</bean>

10、测试

一个简单的注册页面中输入用户名密码,点击注册后保存到数据库中

数据库中保存成功

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-12-14 11:38:44

hibernate4.3.10环境搭建的相关文章

struts2+Hibernate4+spring3+EasyUI环境搭建之一

SSHE环境搭建第一步:安装软件(经验:安装软件路径最好不要有空格.括弧.中文等特殊符号)1.Jdk72.tomcat73.maven34.MyEclipse10.7 破解及优化设置(设置本地安装jdk7+maven+tomcat7+常用插件)或eclipse+常用插件5.oracle+plsql或mysql+navicat 第二步:整合搭建1.myeclipse创建web工程 挑勾Standard Maven JEE Project; 创建完成工程后初始化设置: 检查项目编码:选中项目,按下组

Spring4+MVC+Hibernate4全注解环境搭建(一)

声明: 以下任何观点.理解,都有可能是错的,那仅代表作者在某一时刻结合自己的学习经历和思考得出的观点,很明显,这样的前提下很多都可能是错的.请各位在看到任何可疑观点时,都不要轻信,如果你们在喷我的时候能把理由一并说出来,那我就非常感激了.像什么“你懂的”,“当然是!不然还能是什么.”那样的话恐怕既说服不了我,也说服不了别人. 目前为止我对这几个框架认识: 我的理解不一定对,但是我还是在此首先明确一下我为什么选择的是Spring4+MVC+Hibernate4. Spring就是用来提供一个IoC

SSH_struts-2.3.20+spring-4.1.6+hibernate-4.3.8环境搭建

1.构建Struts环境 配置xml文件 <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>str

Maven整合Spring,Spring mvc4.1.6,Hibernate4.3.10项目搭建总结

先上详细的配置文件,在上说明,让大家看完例子后更能清晰的对项目有个认识. 该框架集合的功能模块主要包含以下功能包: guava AspectJ apache common log Spring Hibernate POI jackson oracle quartz 1,web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="

struts2+Hibernate4+spring3+EasyUI环境搭建之五:引入jquery easyui

1.下载jquery easyui组件     http://www.jeasyui.com/download/index.php 2.解压 放到工程中  如图 3.jsp引入组件:必须按照如下顺序 <script type="text/javascript" src="jslib/jquery-easyui-1.4.4/jquery.min.js"></script> <!--jquery文件 --><script typ

SpringMVC+Spring3+Hibernate4开发环境搭建

早期的项目比较简单,多是用JSP .Servlet + JDBC 直接搞定,后来使用 Struts1(Struts2)+Spring+Hibernate, 严格按照分层概念驱动项目开发,这次又使用 Spring MVC取代Struts来进行开发. MVC已经是现代Web开发中的一个很重要的部分,下面介绍一下SpringMVC+Spring3+Hibernate4的开发环境搭建 先大致看一下项目结构: 具体的代码不再演示,主要是走了一个很平常的路线,mvc-servcie-dao-hibernat

spring mvc4.1.6 + spring4.1.6 + hibernate4.3.11 + mysql5.5.25 开发环境搭建及相关说明

一.准备工作 开始之前,先参考上一篇: struts2.3.24 + spring4.1.6 + hibernate4.3.11 + mysql5.5.25 开发环境搭建及相关说明 思路都是一样的,只不过把struts2替换成了spring mvc 二.不同的地方 工程目录及jar包: action包改成controller: 删除struts2 jar包,添加spring mvc包(已有的话,不需添加):     web.xml配置: 跟之前不同的地方是把struts2的过滤器替换成了一个se

win8.1 + VS2010 + OpenCV2.4.10重编译OpenCV开发环境搭建

win8.1 + VS2010 + OpenCV2.4.10重编译OpenCV开发环境搭建 重编译的好处:可以调试的时候看OpenCV的源代码. 重编译要得到的东西:Debug版本和Release版本的dll,lib,头文件.(dll添加到环境变量里,运行时用,自己编译的dll调试时可以跟踪到Opencv的源码内:lib和头文件配置到编译器里) PS:如果只是使用Opencv而不需要跟踪源码,则使用Opencv自带的库文件即可.跳到5配置Opencv开发环境,对应的文件都在..\opencv\b

XE6移动开发环境搭建之IOS篇(7):在Mac OSX 10.8中安装Xcode4.6.3(有图有真相)

XE6移动开发环境搭建之IOS篇(7):在Mac OSX 10.8中安装Xcode4.6.3(有图有真相) 2014-08-23 21:37 网上能找到的关于Delphi XE系列的移动开发环境的相关文章甚少,本文尽量以详细的图文内容.傻瓜式的表达来告诉你想要的答案. 在安装Xcode前,我们先了解下Mac下如何卸载U盘!在VM9下,同一时间内,一个物理设备只能由一个系统去独占,无论是物理机还是虚拟机.我们可以了解一下虚拟机加载U盘的规则:    1.在虚拟机中加载U盘时,会自动将U盘从Wind