hibernate入门(-)
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入门(-)的更多相关文章
- 三大框架之hibernate入门
hibernate入门 1.orm hibernate是一个经典的开源的orm[数据访问中间件]框架 ORM( Object Relation Mapping)对象关 ...
- Hibernate入门案例及增删改查
一.Hibernate入门案例剖析: ①创建实体类Student 并重写toString方法 public class Student { private Integer sid; private I ...
- Hibernate入门案例 增删改
一.Hibernate入门案例剖析: ①创建实体类Student 并重写toString方法 public class Student { private Integer sid; private I ...
- Hibernate入门6.Hibernate检索方式
Hibernate入门6.Hibernate检索方式 20131128 代码下载 链接: http://pan.baidu.com/s/1Ccuup 密码: vqlv Hibernate的整体框架已经 ...
- Hibernate入门5持久化对象关系和批量处理技术
Hibernate入门5持久化对象关系和批量处理技术 20131128 代码下载 链接: http://pan.baidu.com/s/1Ccuup 密码: vqlv 前言: 前面学习了Hiberna ...
- Hibernate入门4.核心技能
Hibernate入门4.核心技能 20131128 代码下载 链接: http://pan.baidu.com/s/1Ccuup 密码: vqlv 前言: 前面学习了Hibernate3的基本知识, ...
- Hibernate入门3.配置映射文件深入
Hibernate入门3.配置映射文件深入 2013.11.27 前言: 之前的两节是在Java项目中如何使用hibernate,并且通过一个简单地项目实践,期间有很多的错误,一般都是因为配置包的问题 ...
- 简单的Hibernate入门简介
其实Hibernate本身是个独立的框架,它不需要任何web server或application server的支持.然而,大多数的Hibernate入门介绍都加入了很多非Hibernate的东西, ...
- Hibernate入门(1)-第一个Hibernate程序
Hibernate入门(1)-第一个Hibernate程序 Hibernate是最著名的ORM工具之一,本系列文章主要学习Hibernate的用法,不涉及Hibernate的原理.本文介绍第一个Hib ...
- hibernate入门之person表
下面的hibernate入门person表指的是:根据mysql数据库中的test表和其中的元素-->建立映射表==>进而创建持久化类的顺序来操作了,下面为步骤 1.配置MySQL驱动程序 ...
随机推荐
- 获取非行间样式getComputedStyle
有如下代码: 1 2 3 div { width: 200px; } 1 2 3 <div id="aa" style="height: 100px;&qu ...
- 在Debian下安装使用Windows下的字体
转载:http://blog.163.com/lixiangqiu_9202/blog/static/53575037201251224553801/ Debian下的字体不太好看,没有windows ...
- arcgis andriod 加载影像
MapView mMapView;......String rasterPath = Environment.getExternalStorageDirectory().getPath() + &qu ...
- iOS -- SKTransition类
SKTransition类 继承自 NSObject 符合 NSObject(NSObject) 框架 /System/Library/Frameworks/SpriteKit.framewor ...
- 【转载】使用事件模型 & libev学习
参考这篇文章: http://www.ibm.com/developerworks/cn/linux/l-cn-edntwk/ 这里面使用的是 libev ,不是libevent Nodejs就是采用 ...
- 两点C#的propertyGrid的使用心得【转】
源文:http://www.cnblogs.com/bicker/p/3318934.html 最近接触C#的PropertyGrid比较多,得到了两个小心得记录一下. 第1点是关于控制Propert ...
- lua——基础语法
-- test lua: for learning lua grammar -- line comment --[[ block comment ]]-- -- print hello world p ...
- 详谈kubernetes更新-2
系列目录 本文详细探索deployment在滚动更新时候的行为 要详细探讨的参数描述: livenessProbe:存活性探测.判断pod是否已经停止 readinessProbe:就绪性探测.判断p ...
- ActiveMQ 消息持久化到Mysql数据库
[root@txylucky local]# tar -zxvf apache-activemq-5.15.8-bin.tar.gz[root@txylucky local]# mv apache-a ...
- linux 块设备驱动(四)——简单的sbull实例
#include <linux/module.h> #include <linux/moduleparam.h> #include <linux/init.h> # ...