hibernateDAO层基本的增删改查

完整的学习项目放在了我的github上,是一个半成品的在线音乐网站。

hibernate版本1.4 下面是userDAO 即对user表进行增删改查

 1 public class UserDAO {
 2 public static void insertUser(User user) {
 3 Transaction tx = null;
 4 try {
 5 Session session = HibernateSessionFactory.getSessionFactory()
 6 .openSession();
 7 tx = session.beginTransaction();
 8 session.save(user);
 9 tx.commit();
10 } catch (HibernateException e) {
11 e.printStackTrace();
12 tx.rollback();
13 }
14 HibernateSessionFactory.closeSession();
15 }//add
16
17
18 public static void deleteUser(String userId) {
19 Transaction tx = null;
20 try {
21 User user = getUser(userId);
22 Session session = HibernateSessionFactory.getSessionFactory()
23 .openSession();
24 tx = session.beginTransaction();
25 session.delete(user);
26 tx.commit();
27 } catch (Exception e) {
28 e.printStackTrace();
29 tx.rollback();
30 }
31 HibernateSessionFactory.closeSession();
32 }//delete
33
34
35 public static void updateUser(User user) {
36 Transaction tx = null;
37 try {
38 Session session = HibernateSessionFactory.getSessionFactory()
39 .openSession();
40 tx = session.beginTransaction();
41 session.update(user);
42 tx.commit();
43 } catch (Exception e) {
44 e.printStackTrace();
45 tx.rollback();
46 }
47 HibernateSessionFactory.closeSession();
48 }//update
49
50
51 public static User getUser(String userId) {
52 Transaction tx = null;
53 User user = null;
54 try {
55 Session session = HibernateSessionFactory.getSessionFactory()
56 .openSession();
57 tx = session.beginTransaction();
58 user = (User) session.get(User.class, userId);
59 tx.commit();
60 } catch (HibernateException e) {
61 e.printStackTrace();
62 tx.rollback();
63 }
64 HibernateSessionFactory.closeSession();
65 return user;
66 }//get one
67
68
69 public static List getUsers() {
70 Transaction tx = null;
71 List list = null;
72 try {
73 Session session = HibernateSessionFactory.getSessionFactory()
74 .openSession();
75 tx = session.beginTransaction();
76 Query query = session.createQuery("from User order by userId desc");
77 list = query.list();
78 tx.commit();
79 } catch (Exception e) {
80 e.printStackTrace();
81 tx.rollback();
82 }
83 HibernateSessionFactory.closeSession();
84 return list;
85 }// get all
时间: 2024-08-24 20:45:51

hibernateDAO层基本的增删改查的相关文章

mybatis之增删改查

一. 简介: Mybatis本是apache的一个开源项目ibatis, 2010年这个项目由apache software foundation迁移到了google code, 并且改名为Mybatis. Mybatis是一个基于Java的持久层框架. 二. 增删改查: 1. 代码结构图: 2. User实体类: /** * User实体类 */ public class User { private String id; private String uname; // 注意: 该字段名称与

JavaEE使用三层架构(显示层、业务逻辑层、数据访问层)实现数据的增删改查

实例: 1.功能描述 实现一个简易新闻发布系统,包括查看.添加.修改和删除新闻等基本功能 2.具体要求 (1) 创建数据库 newssystem,创建表 news,要求如下: (2) 程序运行时,显示'发布新闻'页面(如图 1),输入相关内容,单击'提交'按钮,将新闻内容添加到数据库 (3) 单击图 1 中的'查看'按钮,显示'查看新闻'页面(如图 2),增加'修改'和'删除'链接 (4) 单击图 2 中的'update'链接,显示'修改新闻'页面(如图 3),修改后单击'修改'按钮确认,单击'

【DRP】-Dao层常用功能代码:增删改查

本系列博客内容为:做DRP系统中Dao层常用功能. 该项目采用MVC架构 C(Controller)控制器,主要职责;1.取得表单参数:2.调用业务逻辑:3.转向页面 M(Model)模型,主要职责:1.业务逻辑:2.保存数据的状态 V(View)视图,主要职责:显示 本文主要是针对于Dao层的常见使用方法:增删改查sql语句及常用操作. 1 package com.bjpowernode.drp.basedata.dao; 2 3 import java.sql.Connection; 4 i

web day19 Service层处理事务(利用ThreadLocal),TxQueryRunner小工具,单表练习(增删改查操作),分页

Service事务 DAO中不是处理事务的地方,因为DAO中的每个方法都是对数据库的一次操作 在Service中不应该出现Connection,它应该只在DAO中出现, 因为它是JDBC的东西,JDBC的东西是用来连接数据库的 修改JdbcUtils 我们把对事务的开启和关闭放到JdbcUtils中,在Service中调用JdbcUtils的方法来完成事务的处理, 但在Service中就不会再出现Connection这一"禁忌"了. 代码 public class JdbcUtils

GZFramwork数据库层《二》单据表增删改查(自动生成单据号码)

运行效果: 使用代码生成器(GZCodeGenerate)生成tb_EmpLeave的Model 生成器源代码下载地址: https://github.com/GarsonZhang/GZCodeGenerate/ 生成方式见上一节: GZFramwork数据库层<一>普通表增删改查     新增一个自定义控件:ucTableUnitDocNo   后台代码同上一节ucTableUnit除了实例化bllBusiness不一样外其他都一样(红色背景标注) using System; using

GZFramwork数据库层《四》单据主从表增删改查

同GZFramwork数据库层<三>普通主从表增删改查   不同之处在于:实例 修改为:   直接上效果:         本系列项目源码下载地址:https://github.com/GarsonZhang/GZFramworkDBDemo/ 生成器源码下载地址:https://github.com/GarsonZhang/GZCodeGenerate/   系列文章 1. GZFramwork数据库层<前言>Demo简介 2. GZFramwork数据库层<前言>D

GZFramwork数据库层《三》普通主从表增删改查

运行结果: 使用代码生成器(GZCodeGenerate)生成tb_Cusomer和tb_CusomerDetail的Model 生成器源代码下载地址: https://github.com/GarsonZhang/GZCodeGenerate/ 生成方式见第一节: GZFramwork数据库层<一>普通表增删改查   生成明细表ORM略有不同: 项目附加结果:   新增一个自定义控件:ucTableMD 界面:   后台代码: using System; using System.Colle

权限管理系统之LayUI实现页面增删改查和弹出层交互

由于对LayUI框架不太熟悉,昨天抽空看了下LayUI的文档,今天在网上找了使用LayUI进行增删改查相关内容,自己照葫芦画了个瓢,画瓢部分不是很难,主要是下午遇到了一个弹出层的问题耗时比较久. 同一项目,设计风格都差不多,对于涉及单个数据表的页面,基本都是增删改查,布局都是差不多,实际项目中都是复制.粘贴过来改下数据基本就能完成80%,后续就是修修补补或者是要实现一些特殊需求,记得刚参加工作时,老大直接给了一个已经做好的模板页面让我比对着手动敲一遍,当时觉得重复操作没啥用,现在再看觉得作用很大

数据库Dao层编增删改查写,数据库事务,数据库升级

数据库事务 有两个特点 1.安全性 情景:正常的转账行为,这个时候如果出现停电等异常,已经扣钱但是没有加钱:这个时候就可用数据库事务解决问题 2.高效性: 使用数据库事务添加享受同数量的数据,对比耗时少: 原理:没开始事务的是打开数据库,插入数据,关闭数据库: 开启事务的是数据存到内存,然后一次写入到数据库: 数据库升级 升级的时候版本号必须要大于等于2:而且要大于上一版本: 1 package com.example.databasedemo; 2 3 import android.conte