分类‘编程代码’

简单分析Hibernate分页查询的原理

本文从一个简单的实例来分析,学过Hibernate的朋友都知道,Hibernate 可以实现分页查询,例如:
从第2万条开始取出100条记录

Query q = session.createQuery("from Cat as c");
q.setFirstResult(20000);
q.setMaxResults(100);
List l = q.list();

那么Hibernate底层如何实现分页的呢?实际上Hibernate的查询定义在net.sf.hibernate.loader.Loader这个类里面 查看更多...

使用PowerDesigner进行数据库建模简明教程

一、概念数据模型概述

概念数据模型也称信息模型,它以实体-联系(Entity-RelationShip,简称E-R)理论为基础,并对这一理论进行了扩充。它从用户的观点出发对信息进行建模,主要用于数据库的概念级设计。

通常人们先将现实世界抽象为概念世界,然后再将概念世界转为机器世界。换句话说,就是先将现实世界中的客观对象抽象为实体(Entity)和联系 (Relationship),它并不依赖于具体的计算机系统或某个DBMS系统,这种模型就是我们所说的CDM;然后再将CDM转换为计算机上某个 DBMS所支持的数据模型,这样的模型就是物理数据模型,即PDM。

CDM是一组严格定义的模型元素的集合,这些模型元素精确地描述了系统的静态特性、动态特性以及完整性约束条件等,其中包括了数据结构、数据操作和完整性约束三部分。
1)数据结构表达为实体和属性; 查看更多...

简单配置Hibernate步骤(MySQL环境)

Hibernate配置文件可以有两种格式,一种是 hibernate.properties ,另一种是 hibernate.cfg.xml 后者稍微方便一些,当增加hbm映射文件的时候,可以直接在 hibernate.cfg.xml 里面增加,不必像 hibernate.properties 必须在初始化代码中加入。

但不管怎么说,两种的配置项都是一样的,下面详细介绍:

在Hibernate的src目录下有一个 hibernate.properties 模板,我们不必自己从头写,修改模板就可以了。hibernate.query.substitutions true 1, false 0, yes 'Y', no 'N'。这个配置意思是当你在Hibernate里面输入true的时候,Hibernate会转化为1插入数据库,当你在Hibernate里面输入false的时候,Hibernate会转化为0插入数据库,后面的Y,N同理。 查看更多...

Struts2技术中Converter(转换器)的使用

左侧为项目树形图截图。
web.xml的配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4"
    xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <display-name>Struts2Hello</display-name>
    <filter>
        <filter-name>struts2</filter-name>
        <filter-class>
            org.apache.struts2.dispatcher.FilterDispatcher

查看更多...

jsp框架之Struts1.x学习简单总结

Struts是基于Model 2之上的,而Model 2是经典的MVC(模型-视图-控制器)模型的Web应用变体,这个改变主要是由于网络应用的特性--HTTP协议的无状态性引起的。Model 2的目的和MVC一样,也是利用控制器来分离模型和视图,达到一种层间松散耦合的效果,提高系统灵活性、复用性和可维护性。在多数情况下,你可以将Model 2与MVC等同起来。 在利用Model 2之前,我们是把所有的表示逻辑和业务逻辑都集中在一起(比如大杂烩似的JSP),有时也称这种应用模式为Model 1,Model 1的主要缺点就是紧耦合,复用性差以及维护成本高。

Struts 1.1 和Model 2

既然Struts 1.1是基于Model 2之上,那它的底层机制也就是MVC 首先,控制器(ActionServlet)进行初始化工作,读取配置文件(struts-config.xml),为不同的Struts模块初始化相应的ModuleConfig对象。比如配置文件中的Action映射定义都保存在ActionConfig集合中。相应地有ControlConfig集合、FormBeanConfig集合、ForwardConfig集合和MessageResourcesConfig集合等。 查看更多...

jsp页面中使用iframe几个问题总结

最近做项目,jsp的,我做前台的输出,因为不常用jsp做界面美化,更不常用iframe控制页面。这回可算遇到不少问题了,首先,在iframe内部使用link获取css和jsp整个文档中获取获取js脚本都有问题,其次就是,遇到了ff的onclick未定义情况。这里不再赘述,相信大家都遇到过了吧,可恶的网络,卡的要命。刚刚写了近一千字的内容,居然没有保存,发布后只有两个字,杯具啊!平时几分钟保存一次草稿,这次居然没有自动保存,果断不写了。直接给出我网上搜集的解决方法。

首先就是link问题,这里我还没有找到问题根源,直接jsp include动态写页内了。

然后就是ff的onclick事件。找了以下解决方案。
firefox没有这个事件,需要自己处理一下,代码如下:

function doClick(obj) {
if (document.all) {//如果支持的话,是ie下,默认有这个事件,
obj.click();
} else { //否则就自己添加一个
var evt = document.createEvent("MouseEvents");
evt.initEvent("click", true, true);
obj.dispatchEvent(evt); 查看更多...

JSP中标准标签库JSTL的使用总结

JSP标准模板库(JSTL)是SUN公司发布的一个针对JSP开发的新组件。JSTL允许你使用标签(tags)来进行JSP页面开发,而不是使用多数JSP程序员已经习惯了的scriptlet代码方式开发。JSTL几乎能够做到传统JSP scriptlet代码能做的任何事情。你可能会疑惑,为什么我们需要另一种这样的HTML生成语言呢?

STL允许JSP程序员使用tags而不是JAVA代码来编程。为了展示为什么这个是更优越的,下面将给出示例。我们会检查一个非常简单的从1数到10的JSP页面。我们将通过两种方法来检查,一种是基于JSP的scriptlet,一种是JSTL。当这个计数器页面的例子是用JSP scriptlet来编写时,JSP页面如下所示:

<html>
<head>
<title>Count to 10 in JSP scriptlet</title>
</head>
<body>
<%
for(int i=1;i<=10;i++) 查看更多...

总结50余条提高PHP效率的要点

用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加上了双引号)。

1、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。

2、$row[’id’] 的速度是$row[id]的7倍。

3、echo 比 print 快,并且使用echo的多重参数(译注:指用逗号而不是句点)代替字符串连接,比如echo $str1,$str2。
查看更多...

Jsp网页编程过程中常见问题收集

1、如何混合使用Jsp和SSI #include?
在JSP中可以使用如下方式包含纯HTML:
<!--#include file="data.inc"-->
但是如果data.inc中包含JSP CODE ,我们可以使用:
<%@include file="data.inc"%>

2、如何执行一个线程安全的JSP?
只需增加如下指令
<%@ page isThreadSafe="false" %>

3、JSP如何处理HTML FORM中的数据?
通过内置的request对象即可,如下:
<%
String item = request.getParameter("item");
int howMany = new Integer(request.getParameter("units")).intValue();
%> 查看更多...

常用php正则表达式汇总备忘

最近为了防止纯英文垃圾评论,写函数替换,这里用到了正则表达式,于是网上收集了一些,供大家参考了。
元字符及其在正则表达式上下文中的行为:
\ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个后向引用、或一个八进制转义符。
^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的Multiline 属性,^ 也匹配 ’\n’ 或 ’\r’ 之后的位置。
$ 匹配输入字符串的结束位置。如果设置了 RegExp 对象的Multiline 属性,$ 也匹配 ’\n’ 或 ’\r’ 之前的位置。
* 匹配前面的子表达式零次或多次。
+ 匹配前面的子表达式一次或多次。+ 等价于 {1,}。
? 匹配前面的子表达式零次或一次。? 等价于 {0,1}。
{n} n 是一个非负整数,匹配确定的n 次。
{n,} n 是一个非负整数,至少匹配n 次。 查看更多...