1.struts2的支持

在web.xml中配置struts2的支持

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list> <filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
</filter> <filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>

2.struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd"> <struts> <package name="hibernate" extends="struts-default"> <action name="save" class="com.test.action.PersonAction" method="save">
<result name="success">/listAll.jsp</result>
</action> </package> </struts>

3.action

package com.test.action;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;

import com.hibernate.model.Person;
import com.hibernate.persistence.DBPerson;
import com.opensymphony.xwork2.ActionSupport; public class PersonAction extends ActionSupport
{
private int id; private String username; private String password; private int age; 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;
} public int getAge()
{
return age;
} public void setAge(int age)
{
this.age = age;
} // 完成用户增加的操作
public String save() throws Exception
{
Person person = new Person(); person.setUsername(username);
person.setPassword(password);
person.setAge(age); java.sql.Date registerDate = new java.sql.Date(new java.util.Date()
.getTime()); person.setRegisterdate(registerDate); DBPerson.save(person); //将person对象存到数据库中 List<Person> list = DBPerson.listAll(); HttpServletRequest request = ServletActionContext.getRequest(); request.setAttribute("list", list); return SUCCESS; }
}

4.hibernate.cfg.xml(hibernate的主配置文件,数据库连接)

<?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"> <!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration> <session-factory> <property name="show_sql">true</property> <property name="connection.url">jdbc:mysql://localhost:3306/hibernate</property>
<property name="connection.username">root</property>
<property name="connection.password">123456</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property> <property name="dialect">org.hibernate.dialect.MySQLDialect</property> <mapping resource="Person.hbm.xml"/> </session-factory> </hibernate-configuration>

5.实体类配置文件(Person.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.hibernate.model.Person" table="person"> <id name="id" column="id" type="int">
<generator class="increment"> <!-- 主键id的生成方式为自增 -->
</generator>
</id> <property name="username" column="username" type="string"></property>
<property name="password" column="password" type="string"></property>
<property name="age" column="age" type="int"></property>
<property name="registerdate" column="registerdate" type="date"></property> </class> </hibernate-mapping>

6.创建实体类对象

package com.hibernate.model;

import java.sql.Date;

public class Person
{
private Integer id; private String username; private String password; private Integer age; private Date registerdate; public Integer getId()
{
return id;
} public void setId(Integer 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;
} public Integer getAge()
{
return age;
} public void setAge(Integer age)
{
this.age = age;
} public Date getRegisterdate()
{
return registerdate;
} public void setRegisterdate(Date registerdate)
{
this.registerdate = registerdate;
}
}

7.读取hibernate的配置文件

package com.hibernate.util;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration; public class HibernateUtil
{
private static SessionFactory sessionFactory; static
{
try
{
sessionFactory = new Configuration().configure()
.buildSessionFactory();
}
catch (Exception ex)
{
System.err.println("构造SessionFactory异常发生: " + ex.getMessage());
} } public static Session currentSession()
{
Session session = sessionFactory.openSession(); return session;
} public static void closeSession(Session session)
{
if (null != session)
{
session.close();
}
}
}

8.完成数据库ddl的操作

package com.hibernate.persistence;

import java.util.List;

import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction; import com.hibernate.model.Person;
import com.hibernate.util.HibernateUtil; public class DBPerson
{
/**
* 创建新的用户
*/ public static void save(Person person)
{
Session session = HibernateUtil.currentSession();
Transaction tx = session.beginTransaction(); //开启事务 try
{
session.save(person);
tx.commit();
}
catch(Exception ex)
{
System.out.println("增加用户异常发生!");
if(null != tx)
{
tx.rollback();
}
}
finally
{
HibernateUtil.closeSession(session);
} } /**
* 查询出所有用户
*/ @SuppressWarnings("unchecked")
public static List<Person> listAll()
{
Session session = HibernateUtil.currentSession();
Transaction tx = session.beginTransaction(); //开启事务 List<Person> list = null; try
{
Query query = session.createQuery("from Person"); //hql语句,Hibernate查询语句 list = (List<Person>)query.list(); tx.commit();
}
catch(Exception ex)
{
System.out.println("增加用户异常发生!");
if(null != tx)
{
tx.rollback();
}
}
finally
{
HibernateUtil.closeSession(session);
} return list;
} }

所需要的jar包

好了 这只是一个例子,直接将例子复制到工程中即可使用。

下章将要写它的具体内容。

hibernate入门(-)的更多相关文章

  1. 三大框架之hibernate入门

    hibernate入门   1.orm      hibernate是一个经典的开源的orm[数据访问中间件]框架           ORM( Object Relation Mapping)对象关 ...

  2. Hibernate入门案例及增删改查

    一.Hibernate入门案例剖析: ①创建实体类Student 并重写toString方法 public class Student { private Integer sid; private I ...

  3. Hibernate入门案例 增删改

    一.Hibernate入门案例剖析: ①创建实体类Student 并重写toString方法 public class Student { private Integer sid; private I ...

  4. Hibernate入门6.Hibernate检索方式

    Hibernate入门6.Hibernate检索方式 20131128 代码下载 链接: http://pan.baidu.com/s/1Ccuup 密码: vqlv Hibernate的整体框架已经 ...

  5. Hibernate入门5持久化对象关系和批量处理技术

    Hibernate入门5持久化对象关系和批量处理技术 20131128 代码下载 链接: http://pan.baidu.com/s/1Ccuup 密码: vqlv 前言: 前面学习了Hiberna ...

  6. Hibernate入门4.核心技能

    Hibernate入门4.核心技能 20131128 代码下载 链接: http://pan.baidu.com/s/1Ccuup 密码: vqlv 前言: 前面学习了Hibernate3的基本知识, ...

  7. Hibernate入门3.配置映射文件深入

    Hibernate入门3.配置映射文件深入 2013.11.27 前言: 之前的两节是在Java项目中如何使用hibernate,并且通过一个简单地项目实践,期间有很多的错误,一般都是因为配置包的问题 ...

  8. 简单的Hibernate入门简介

    其实Hibernate本身是个独立的框架,它不需要任何web server或application server的支持.然而,大多数的Hibernate入门介绍都加入了很多非Hibernate的东西, ...

  9. Hibernate入门(1)-第一个Hibernate程序

    Hibernate入门(1)-第一个Hibernate程序 Hibernate是最著名的ORM工具之一,本系列文章主要学习Hibernate的用法,不涉及Hibernate的原理.本文介绍第一个Hib ...

  10. hibernate入门之person表

    下面的hibernate入门person表指的是:根据mysql数据库中的test表和其中的元素-->建立映射表==>进而创建持久化类的顺序来操作了,下面为步骤 1.配置MySQL驱动程序 ...

随机推荐

  1. 获取非行间样式getComputedStyle

    有如下代码: 1 2 3 div {     width: 200px; } 1 2 3 <div id="aa" style="height: 100px;&qu ...

  2. 在Debian下安装使用Windows下的字体

    转载:http://blog.163.com/lixiangqiu_9202/blog/static/53575037201251224553801/ Debian下的字体不太好看,没有windows ...

  3. arcgis andriod 加载影像

    MapView mMapView;......String rasterPath = Environment.getExternalStorageDirectory().getPath() + &qu ...

  4. iOS -- SKTransition类

      SKTransition类 继承自 NSObject 符合 NSObject(NSObject) 框架  /System/Library/Frameworks/SpriteKit.framewor ...

  5. 【转载】使用事件模型 & libev学习

    参考这篇文章: http://www.ibm.com/developerworks/cn/linux/l-cn-edntwk/ 这里面使用的是 libev ,不是libevent Nodejs就是采用 ...

  6. 两点C#的propertyGrid的使用心得【转】

    源文:http://www.cnblogs.com/bicker/p/3318934.html 最近接触C#的PropertyGrid比较多,得到了两个小心得记录一下. 第1点是关于控制Propert ...

  7. lua——基础语法

    -- test lua: for learning lua grammar -- line comment --[[ block comment ]]-- -- print hello world p ...

  8. 详谈kubernetes更新-2

    系列目录 本文详细探索deployment在滚动更新时候的行为 要详细探讨的参数描述: livenessProbe:存活性探测.判断pod是否已经停止 readinessProbe:就绪性探测.判断p ...

  9. ActiveMQ 消息持久化到Mysql数据库

    [root@txylucky local]# tar -zxvf apache-activemq-5.15.8-bin.tar.gz[root@txylucky local]# mv apache-a ...

  10. linux 块设备驱动(四)——简单的sbull实例

    #include <linux/module.h> #include <linux/moduleparam.h> #include <linux/init.h> # ...