通过Hibernate实现添加功能
package com.demo.dao; import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
import com.demo.Login; public class LoginDAO { private Session session=null;
private Transaction tran=null; public LoginDAO(){
//创建Configuration对象
Configuration config = new Configuration().configure();
//创建Session工厂
SessionFactory sessionFactory = config.buildSessionFactory();
//得到Session对象
session = sessionFactory.openSession();
} public void save(Login login){
try {
//开启事务
tran=session.beginTransaction();
//将传递进来的login对象存入数据库
session.save(login);
//提交事务
tran.commit();
//提示信息
System.out.println("用户信息保存成功!");
} catch (RuntimeException e) {
//捕获并处理异常
if(null!=tran){tran.rollback;}
throw e;
}finally{
//关闭Session对象
session.close();
}
} }
在这个类中用到了Session和Transaction对象,这里的Session对象是hibernate3.jar包中的Session对象,对数据库的所有操作都要通过Session来完成。Transaction对象用来处理对数据库操作的事务。
在构造方法中实例化Session对象。实例化的过程是,首先找到Hibernate配置,然后从配置中取出SessionFactory,也就是Session工厂,最后从SessionFactory中取出Session。向login表中添加数据的save()方法是将Login类型的对象login作为形参传入方法中。在对数据库操作的时候有可能会抛出运行时异常,所有用try-catch结构来捕获异常。然后进行login 表的添加操作。
进行添加操作时,首先实例化Transaction对象,就是开启事务。然后调用Session对象的save()方法,并将Login类型的对象传入该方法。接下来就是调用事务对象的commit()方法提交到数据库,并关闭Session对象。如果出现异常,就会将事务进行回滚。
回顾实现添加的功能,总结一下在Hibernate中执行持久化操作的步骤:
1> 读取并解析配置文件:
Configuration config = new Configuration().configure();
2> 读取并解析映射信息,创建SessionFactory:
SessionFactory sessionFactory = config.buildSessionFactory();
3> 打开Session:
session = sessionFactory.openSession();
4> 开启事务(增,删,改操作必须有,查询操作可选):
tran = session.beginTransaction();
5> 持久化操作:
session.save(login);
6> 提交事务:
tran.commit();
7> 关闭Session:
session.close();
通过Hibernate实现添加功能的更多相关文章
- hibernate HQL添加语句
1.Hibernate HQL添加语句 save();方法使用HQL语句来完成插入操作是不能实现的,不管你使用insert into....values...还是insert into.....sel ...
- [课程设计]Scrum 2.6 多鱼点餐系统开发进度(下单一览页面-菜式添加功能实现)
Scrum 2.6 多鱼点餐系统开发进度 (下单一览页面-菜式添加功能实现) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题 ...
- [课程设计]Scrum 2.7 多鱼点餐系统开发进度(下单一览页面-菜式添加功能的继续实现)
Scrum 2.7 多鱼点餐系统开发进度 (下单一览页面-菜式添加功能的继续实现) 1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团 ...
- 框架的 总结(nop)------添加功能
一.添加功能 1.首先需要在前端显示界面View视图中添加 <div class="pull-right"> <a href="@Url.Action( ...
- freemarker中修改和添加功能中包含checkbox复选框默认选中需求的解决方式
今天做的公司ERP系统上线第一天内部使用的,各种BUG铺天盖地,[虽然只是技术总监一个人在测试……],其中有一个就是其中部门管理页面中的修改和添加功能 一个人做一套ERP总是有点疏漏的,虽然里面的东西 ...
- Java基础知识强化38:StringBuffer类之StringBuffer的添加功能
1. StringBuffer的添加功能: public StringBuffer append(String str):可以把任意类型数据添加到字符串缓冲区里面,并返回字符串缓冲区本身. publ ...
- JAVAEE——BOS物流项目03:学习计划、messager、menubutton、登陆拦截器、信息校验和取派员添加功能
1 学习计划 1.jQuery easyUI messager使用方式 n alert方法 n confirm方法 n show方法 2.jQuery easyUI menubutton使用方式 3. ...
- stark组件开发之添加功能实现
添加功能,还是使用, form 组件来完成! 并且 完成添加之后,需要保留原搜索条件. def memory_url(self): '''用于反向生成url, 并且携带,get请求的参数,跳转到下一 ...
- iOS 添加功能引导图
iOS 添加功能引导图 首次安装app之后,打开app首页,有一张功能引导图,其实最简单的一种做法是,直接在这个首页上加一个蒙层图片. 在蒙层上用气泡显示文字注明功能介绍,这个蒙层图片,让你们的UI设 ...
随机推荐
- POJ_2411_Mondriaan's Dream_状态压缩dp
Mondriaan's Dream Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 15407 Accepted: 888 ...
- Data mapping-数据映射
数据映射:根据数据的结构信息建立数据间的映射操作机制. 数据映射的要素: 一.数据 1.源数据: 2.目标数据: 3.数据间关系: 4.数据的元数据(结构信息). 5.元素类型的对应关系. 二.元数据 ...
- 构造函数+原型的js混合模式
function Parent(){ this.name = "李小龙"; this.age = "30"; };Parent.prototype.lev=fu ...
- inherit 关键字使得元素获取其父元素的计算值
它可以应用于任何CSS属性,包括CSS简写 all. 对于继承属性,inherit 关键字只是增强了属性的默认行为,只有在重载(overload)其它规则的时候被使用.对于非继承属性,inherit ...
- Got permission denied while trying to connect to the Docker daemon socket at unix
拉取Dockerimages时错误信息如下: [master@localhost ~]$ docker pull redis Using default tag: latest Got permiss ...
- eas之创建一个UI界面并对其操作
private void BranchAddNew(ActionEvent e) { UIContext uiContext = new UIContext(this); ui ...
- 创建对象—从es5到es6
原文地址 本文主要讲述了使用JavaScript创建对象的几种方式,分别是传统的Object构造函数.对象字面量.工厂模式.构造函数模式.原型模式.组合模式,以及es6的class定义类.然后从bab ...
- javascript正则表达式总结(test|match|search|replace|split|exec)
test:测试string是否包含有匹配结果,包含返回true,不包含返回false. <script type="text/javascript"> var str ...
- Python 实现把 .cvs 文件保存为 Excel 文件
# 导入可以把 CVS 转换为 Excel 的外部模块 import pandas as pd # 读出 csv 文件的内容 csv = pd.read_csv('Data.csv', encodin ...
- js实现的时间轴效果
今天整理以前的资料发现以前写的一个时间轴效果,当时也是网上找了很久没有找到,就自己写了一个,现在发出来给有需要的人,代码写的可能有点乱. 效果图: 下面是美工做的设计图的效果(有个美工就是好): 下面 ...