学学ZK - ZK+OpenJPA+Derby 数据库记录列表 2

6. 生成实体类
在项目名字上,点鼠标右键,选 “新建”,“通过数据库生成实体类”

[img]/upload/attachment/88583/9693a02e-19d6-3b5a-b182-363df79642f1.jpg[/img]

在数据源项,选“新建数据源”

[img]/upload/attachment/88585/6f35f8f0-ca58-39ad-b456-b3c371967abf.jpg[/img]

创建新的数据源时,输入 JNDI 名称:users (当然也可以给其他名字),数据库连接则选刚才我们新建的数据库 USERS.

[img]/upload/attachment/88587/5d70433b-56f2-3d13-b64f-3d78093ac562.jpg[/img]

现在,数据源和表都选好了,点一下表名 USER, 点“添加”

[img]/upload/attachment/88589/5d348c75-ebf8-30b1-9d06-ca5c7473ad4c.jpg[/img]

输入一个包名,例如 entity,然后点“创建持久性单元”

[img]/upload/attachment/88591/3a1d5bd2-7e9a-3557-9fe8-c67eb5d3f1c7.jpg[/img]

持久性单元名称用自动给出的即可,持久性提供器则选“OpenJPA”

[img]/upload/attachment/88593/9b378558-0201-34d3-bf50-5899584e4db8.jpg[/img]

注:前面设置OpenJPA 的 jar 为库,并在项目添加了这个库,这里才可选OpenJPA。

点“创建”,即可

[img]/upload/attachment/88595/51aa3f8d-b843-3afc-8cc8-671b5d619691.jpg[/img]

现在,实体类 Users.java 就会自动生成。这个文件不需要做任何改动。

[img]/upload/attachment/88597/ca04fcbe-afc0-3ac3-bcd8-f4b86e473788.jpg[/img]

在项目的“配置文件”项下,可以见到自动生成的 persistence.xml,点一下这个文件,就会打开。去除已勾选的“在 ???模块中包含所有实体类”,然后点列出的实体类,点“添加类”。保存。

[img]/upload/attachment/88599/745445a1-d43a-37ff-9f36-ea755cbab1ad.jpg[/img]

上图看到的“设计”概要,如果点一下“XML”,就是这样的:

[img]/upload/attachment/88601/e2ecd9fa-60b3-3512-9f75-f187afe6f531.jpg[/img]

7. 建立 访问数据库的 控制类
点项目名称,“新建”,“Java 类”

[img]/upload/attachment/88603/18fc4a46-1733-3230-8fb0-e30d87209a80.jpg[/img]

给个名字把,例如 Controller, 给个包名,例如 test

[img]/upload/attachment/88605/4d86a642-d3ca-38f8-9b28-67882719c0de.jpg[/img]

输入以下代码:



package test;

import java.util.ArrayList;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import org.zkoss.zul.Window;

public class Controller extends Window {

List users = new ArrayList();

public Controller() {
EntityManagerFactory emf;
emf = Persistence.createEntityManagerFactory("ZKJPA2PU");
EntityManager em = emf.createEntityManager();
javax.persistence.Query q = em.createQuery("select u from Users as u");
users = q.getResultList();
em.close();
}

public List getUsers() {
return users;
}

}



需要提示的是这一行:

emf = Persistence.createEntityManagerFactory("ZKJPA2PU");

这里使用了持久性单元的名字“ZKJPA2PU”,是从 persistence.xml 来的。如果在 persistence.xml 是用其他的名字,这里就需要相应修改。

[img]/upload/attachment/88607/2345eefe-7eff-38dc-a33d-5b6377d3c7ff.jpg[/img]

8. 使用 ZK 缺省的 web.xml
从 zkoss.org 的文档,找到 web.xml 样板,见这里:
http://docs.zkoss.org/wiki/Developer_reference_Appendix_A._WEB-INF/web.xml_Sample_of_web.xml

把sample 内容复制下来。
点项目,“web页”,“WEB-INF”,点 “web.xml”,把原来的内容全部删除,贴上 zk 的 web.xml 样本内容,不需要做其他修改,保存即可。

[img]/upload/attachment/88609/a479ff7a-31a6-387a-8e17-403c6931be16.jpg[/img]

9. 建立 index.zul
点项目,“新建”,“空文件”,给出文件名:index.zul,存放于 web 目录下
注:如果在这个目录下有 index.jsp 文件,要把它删除!

[img]/upload/attachment/88611/17ee076c-28ce-3002-8c9b-9aeb6a037c6a.jpg[/img]

[img]/upload/attachment/88613/7576cb48-b3ad-38b5-bb3d-cfcfd93c25dc.jpg[/img]

输入以下代码:


<?xml version="1.0" encoding="UTF-8" ?>
<?page id="indexZUL" title="Sample ZK with JPA + Derby" cacheable="false"
language="xul/html" zscriptLanguage="Java" contentType="text/html;charset=UTF-8"?>
<?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit"?>

<zk xmlns="http://www.zkoss.org/2005/zul"
xmlns:h="http://www.w3.org/1999/xhtml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.zkoss.org/2005/zul http://www.zkoss.org/2005/zul/zul.xsd">

<window id="win" title="Sample ZK with JPA + Derby " border="normal" width="97%" height="95%"
mode="overlapped" position="center" use="test.Controller">

<listbox id="lb" width="800" height="300" >
<listhead sizable="true">
<listheader label="Name 姓名" sort="auto" width="150px"/>
<listheader label="LoginID 登录名" width="120px" />
<listheader label="Password 密码" width="120px" />
<listheader label="Age 年龄" sort="auto" width="100px"/>
</listhead>

<listitem forEach="${win.users}" value="${each}">
<listcell label="${each.name}"/>
<listcell label="${each.loginid}"/>
<listcell label="${each.password}"/>
<listcell label="${each.age}"/>
</listitem>

</listbox>

</window>
</zk>



保存。这里,Window 引用 test.Controller 就是我们建立的访问数据库的类,从这个类返回数据库记录为List,然后在zk 的listbox 显示。

[img]/upload/attachment/88615/053aa54a-5263-314a-9016-9f33d3b2f469.jpg[/img]

10. 运行
NetBeans 点 运行,即可在新开的页面显示数据库的记录。


更多使用JPA对数据库记录的操作,可以学习这篇:
在Java SE环境下使用JPA1.0(Java EE 5.0 中的主要组成部分)
http://blog.csdn.net/kamhung/archive/2006/08/14/1064380.aspx

:-
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
项目:使用 JavaScript 编写的杀死幽灵游戏(附源代码) 杀死鬼魂游戏是使用 Vanilla JavaScript、CSS 和 HTML 画布开发的简单项目。这款游戏很有趣。玩家必须触摸/杀死游荡的鬼魂才能得分。您必须将鼠标悬停在鬼魂上 - 尽量得分。鬼魂在眨眼间不断从一个地方移动到另一个地方。您必须在 1 分钟内尽可能多地杀死鬼魂。 游戏制作 这个游戏项目只是用 HTML 画布、CSS 和 JavaScript 编写的。说到这个游戏的特点,用户必须触摸/杀死游荡的幽灵才能得分。游戏会根据你杀死的幽灵数量来记录你的总分。你必须将鼠标悬停在幽灵上——尽量得分。你必须在 1 分钟内尽可能多地杀死幽灵。游戏还会显示最高排名分数,如果你成功击败它,该分数会在游戏结束屏幕上更新。 该游戏包含大量的 javascript 以确保游戏正常运行。 如何运行该项目? 要运行此游戏,您不需要任何类型的本地服务器,但需要浏览器。我们建议您使用现代浏览器,如 Google Chrome 和 Mozilla Firefox。要玩游戏,首先,单击 index.html 文件在浏览器中打开游戏。 演示: 该项目为国外大神项目,可以作为毕业设计的项目,也可以作为大作业项目,不用担心代码重复,设计重复等,如果需要对项目进行修改,需要具备一定基础知识。 注意:如果装有360等杀毒软件,可能会出现误报的情况,源码本身并无病毒,使用源码时可以关闭360,或者添加信任。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值