假设我们要建表X,那么我将需要执行以下步骤:

注意:在我们的项目中,我们将DAO文件和X.hbm.xml归入DAO包,将表的实例化放入model包,将Service Implement放入ServiceImpl包,将Service Interface放入Service包。另外,dao-background.xml保存dao-xml信息,service-background.xml保存service-xml信息。

1. 连接数据库。

2. 生成表x的DAO,实例化类和hbm.xml。

3. 将实例化类和hbm.xml移到DAO包

4. 修改hbm.xml,注释掉未添加的键值关联

5. 建立XServiceImpl文件,编写Impl代码

6. 提取Service Interface到Service包,类型规范为XService

7. 修改dao-background.xml和service-background.xml,即添加DAO和service信息

8. 新建JUNITtest,测试。

如果需要在项目中使用HQL(以分页为例),可以执行如下步骤。

说明:这里只包含基本的架构方式(参考《轻量级Jave EE》),可能有误。

1. 在DAO或者Service里添加HQL语句(本项目放入DAO包):

2. 注意提交事务和关闭session(这是后期开发遇到的问题)。

   //added manually by Van_ruinpublic static List<ProductInfo> findAllRecordByPage(int start,int limit){List<ProductInfo> productTypeInfos;Session session = HibernateUtil.currentSession();Transaction tx = session.beginTransaction();productTypeInfos = session.createQuery("from ProductInfo").setFirstResult(start).setMaxResults(limit).list();tx.commit();HibernateUtil.closeSession();return productTypeInfos;}

这里会发现Session类和HibernateUtil类都未导入,Session类来自于org.hibernate.Session;HibernateUtil则为自己新建(代码来自于《轻量级Jave EE》)。可以将这个类放到同目录下。

package com.background.dao;import org.hibernate.*;
import org.hibernate.cfg.*;public class HibernateUtil
{public static final SessionFactory sessionFactory;static{try{//采用默认的hibernate.cfg.xml来启动一个Configuration的实例Configuration configuration = new Configuration().configure();//由Configuration的实例来创建一个SessionFactory实例sessionFactory = configuration.buildSessionFactory();}catch (Throwable ex){System.err.println("Initial SessionFactory creation failed." + ex);throw new ExceptionInInitializerError(ex);}}//ThreadLocal可以隔离多个线程的数据共享,因此不再需要对线程同步   public static final ThreadLocal<Session> session= new ThreadLocal<Session>();public static Session currentSession()throws HibernateException{Session s = session.get();//如果该线程还没有Session,则创建一个新的Sessionif (s == null){s = sessionFactory.openSession();//将获得的Session变量存储在ThreadLocal变量session里session.set(s);}return s;}public static void closeSession()throws HibernateException {Session s = session.get();if (s != null)s.close();session.set(null);}
}

2. 添加ServiceImpl中的函数(如果HQL已经放入Impl中,则不需要)

3. 添加ServiceInterface函数。

4. 测试。

简单实用的HQL语句:

1. 排序: from *(实体名) order by *(属性值) [desc]

2. 排序对象为外键的时候: from *(实体名) order by *(实体属性值).*(外键属性)

action开发流程:

1. 根据用例添加action方法。

2. 如果service内没有现成方法,添加service方法。

3. 如果需要用到HQL,在DAO中添加方法。

4. 添加strut信息。

5. 添加action信息。

转载于:https://www.cnblogs.com/wead-hsu/p/3712283.html

J2EE数据库后台开发步骤(附HQL使用教程)相关推荐

  1. linux如何迁移文件,linux 数据库文件迁移步骤详解

    linux 数据库文件迁移步骤详解 linux 数据库文件迁移步骤详解 数据库所有文件(数据文件.日志文件.临时文件.控制文件)迁移步骤: 1. 迁移步骤概述: 1:具体需求 2:保存现有数据文件.控 ...

  2. java计算机毕业设计Web网上购书后台管理系统(附源码、数据库)

    java计算机毕业设计Web网上购书后台管理系统(附源码.数据库) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Ecl ...

  3. java计算机毕业设计网络游戏后台管理系统(附源码、数据库)

    java计算机毕业设计网络游戏后台管理系统(附源码.数据库) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclisp ...

  4. java计算机毕业设计服装连锁店后台管理系统(附源码、数据库)

    java计算机毕业设计服装连锁店后台管理系统(附源码.数据库) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclis ...

  5. JAVA计算机毕业设计校园便利店信息系统开发(附源码、数据库)

    JAVA计算机毕业设计校园便利店信息系统开发(附源码.数据库) 目运行 环境项配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclis ...

  6. 数据库MySQL基础---JDBC开发步骤--JDBC封装工具类--PreparedStatement实现CRUD操作

    JDBC简介 1.JDBC定义Java数据库连接(Java Database Connectivity,简称JDBC):是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询 ...

  7. pos系统开发步骤1-创建数据库以及拼音缩写的实现

    pos系统开发步骤1-创建数据库以及拼音缩写的实现

  8. 数据库应用软件开发前3个步骤之实例讲解

    摘要:目前大部分的公司开发软件都不规范,开发步骤混乱.究其原因,大致可以分为两方面,一方面是客户的需求简单,公司不需要正常的软件开发步骤就可以实现,另一个方面就是公司开发软件没有规范,凭感觉开发软件, ...

  9. SSM+ 基于Java的花艺商城系统设计与开发 毕业设计-附源码171536

    摘 要 本论文主要论述了如何使用JAVA语言开发一个花艺商城系统 ,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发.在引言中,作者将论述花艺商城系统的当前 ...

最新文章

  1. 前两天谁要的抢红包利器,给你安排了
  2. 简单BootLoader
  3. 微型计算机不属于串行接口,在微型计算机中,不属于串行接口的是
  4. 12 个问题搞懂 Redis
  5. 第二阶段第五次站立会议
  6. Hive数据导出入门
  7. Ubuntu 6.10 发布
  8. 为什么html字体之间有间隔,css字体间隔怎么调整?css文字间隔的调整方法
  9. Java常量池简单认识
  10. linux开机自动执行脚本、运行程序
  11. EA游戏Battlefield 2(战地风云2) 单机地图简介
  12. Java程序员在用的大数据工具
  13. 《那些年啊,那些事——一个程序员的奋斗史》——123
  14. 【240】python 一个二维数组和一个整数,判断数组中是否含有该整数
  15. 人工智能之知识图谱体系总结
  16. css3实现0.5px边框、圆角渐变色边框+圆角渐变色背景
  17. 达尔文的进化论VS柏拉图的理念论
  18. [源码和文档分享]基于java的葫芦娃大战妖精
  19. 五:Dubbo中Provider参数配置及源码讲解
  20. Android语音通话实现方案及相关技术介绍

热门文章

  1. [10] ADB 修改设置
  2. Nginx笔记-Nginx中进程结构及使用Linux信号量管理
  3. Java工作笔记-注解的进一步理解
  4. 软考系统架构师笔记-案例分析重点(一)
  5. 系统架构师学习笔记-系统性能评价
  6. android实现日志列表,【Android开发】listview+popupwindow实践:日志列表
  7. 51单片机之外部引脚及总线接口
  8. (软件工程复习核心重点)第四章总体设计-第二节:设计原理
  9. (软件工程复习核心重点)第二章可行性研究-第四节:数据字典
  10. (计算机组成原理)第七章输入和输出系统-第四节1:I/O方式之程序查询方式