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驱动程序 ...
随机推荐
- Flex 布局教程学习
转载自:阮一峰的网络日志(http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html) 网页布局(layout)是 CSS 的一个重点应用. 布局 ...
- 7.【nuxt起步】-Nuxt与后端数据交互
接下来就是对接服务端接口,展示真实的数据 1.做了个虚拟接口地址:http://test.yms.cn/testjson.asp 输出数据: { "title": "单间 ...
- 详解RocketMQ中的consumer
上述就是MQ中有关Consumer的类图,下面来介绍一下每个类 1.MQAdmin:底层类,上篇博客已经提过,就不再此重提 2.MQConsumer:Consumer公共的接口,常用的方法如下 如果消 ...
- LattePanda 之深入学习 Firmata通讯
前言 原创文章,转载引用务必注明链接,水平有限,如有疏漏,欢迎指正. 本文使用Markdown写成,为获得更好的阅读体验和正常的链接.图片显示,请访问我的博客原文: http://www.cnblog ...
- wdcp新开站点或绑定域名打不开或无法访问的问题
一 用IP可以打开,但用域名打开网站显示到默认页面1 站点列表里是否有相应的网站信息 2 检查有没站点配置文件后台 >系统管理 >文件管理器 >虚拟主机站点文件(nginx,ap ...
- Spring Cloud(十二):Spring Cloud Zuul 限流详解(附源码)(转)
前面已经介绍了很多zuul的功能,本篇继续介绍它的另一大功能.在高并发的应用中,限流往往是一个绕不开的话题.本文详细探讨在Spring Cloud中如何实现限流. 在 Zuul 上实现限流是个不错的选 ...
- 使用Caffe完成图像目标检测 和 caffe 全卷积网络
一.[用Python学习Caffe]2. 使用Caffe完成图像目标检测 标签: pythoncaffe深度学习目标检测ssd 2017-06-22 22:08 207人阅读 评论(0) 收藏 举报 ...
- ZeroClipboard—ZeroClipboard的使用
1.ZeroClipboard的作用: 借助Zero Clipboard能够简单高速地将内容拷贝到剪贴板,相似点击某些网页中"复制"按钮后复制对应区域的内容. 2.ZeroClip ...
- Python yield 生成器
yield:生成器 任何使用yield的函数都称之为生成器,如: def count(n): : yield n #生成值:n 另外一种说法:生成器就是一个返回迭代器的函数,与普通函数的区别是生成 ...
- mongodb学习之:数据库
首先来介绍下Mongodb的基本概念: 左边一列是关系数据库的术语,右边这一列是NOSQL也就是mongodb的术语 database: database 数据库 tabl ...