J2EE数据库后台开发步骤(附HQL使用教程)
假设我们要建表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使用教程)相关推荐
- linux如何迁移文件,linux 数据库文件迁移步骤详解
linux 数据库文件迁移步骤详解 linux 数据库文件迁移步骤详解 数据库所有文件(数据文件.日志文件.临时文件.控制文件)迁移步骤: 1. 迁移步骤概述: 1:具体需求 2:保存现有数据文件.控 ...
- java计算机毕业设计Web网上购书后台管理系统(附源码、数据库)
java计算机毕业设计Web网上购书后台管理系统(附源码.数据库) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Ecl ...
- java计算机毕业设计网络游戏后台管理系统(附源码、数据库)
java计算机毕业设计网络游戏后台管理系统(附源码.数据库) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclisp ...
- java计算机毕业设计服装连锁店后台管理系统(附源码、数据库)
java计算机毕业设计服装连锁店后台管理系统(附源码.数据库) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclis ...
- JAVA计算机毕业设计校园便利店信息系统开发(附源码、数据库)
JAVA计算机毕业设计校园便利店信息系统开发(附源码.数据库) 目运行 环境项配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclis ...
- 数据库MySQL基础---JDBC开发步骤--JDBC封装工具类--PreparedStatement实现CRUD操作
JDBC简介 1.JDBC定义Java数据库连接(Java Database Connectivity,简称JDBC):是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询 ...
- pos系统开发步骤1-创建数据库以及拼音缩写的实现
pos系统开发步骤1-创建数据库以及拼音缩写的实现
- 数据库应用软件开发前3个步骤之实例讲解
摘要:目前大部分的公司开发软件都不规范,开发步骤混乱.究其原因,大致可以分为两方面,一方面是客户的需求简单,公司不需要正常的软件开发步骤就可以实现,另一个方面就是公司开发软件没有规范,凭感觉开发软件, ...
- SSM+ 基于Java的花艺商城系统设计与开发 毕业设计-附源码171536
摘 要 本论文主要论述了如何使用JAVA语言开发一个花艺商城系统 ,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发.在引言中,作者将论述花艺商城系统的当前 ...
最新文章
- 前两天谁要的抢红包利器,给你安排了
- 简单BootLoader
- 微型计算机不属于串行接口,在微型计算机中,不属于串行接口的是
- 12 个问题搞懂 Redis
- 第二阶段第五次站立会议
- Hive数据导出入门
- Ubuntu 6.10 发布
- 为什么html字体之间有间隔,css字体间隔怎么调整?css文字间隔的调整方法
- Java常量池简单认识
- linux开机自动执行脚本、运行程序
- EA游戏Battlefield 2(战地风云2) 单机地图简介
- Java程序员在用的大数据工具
- 《那些年啊,那些事——一个程序员的奋斗史》——123
- 【240】python 一个二维数组和一个整数,判断数组中是否含有该整数
- 人工智能之知识图谱体系总结
- css3实现0.5px边框、圆角渐变色边框+圆角渐变色背景
- 达尔文的进化论VS柏拉图的理念论
- [源码和文档分享]基于java的葫芦娃大战妖精
- 五:Dubbo中Provider参数配置及源码讲解
- Android语音通话实现方案及相关技术介绍
热门文章
- [10] ADB 修改设置
- Nginx笔记-Nginx中进程结构及使用Linux信号量管理
- Java工作笔记-注解的进一步理解
- 软考系统架构师笔记-案例分析重点(一)
- 系统架构师学习笔记-系统性能评价
- android实现日志列表,【Android开发】listview+popupwindow实践:日志列表
- 51单片机之外部引脚及总线接口
- (软件工程复习核心重点)第四章总体设计-第二节:设计原理
- (软件工程复习核心重点)第二章可行性研究-第四节:数据字典
- (计算机组成原理)第七章输入和输出系统-第四节1:I/O方式之程序查询方式