javaEE之JPA、EJB、JSF代码分析
来源:互联网 发布:多摄像头监控软件 编辑:程序博客网 时间:2024/06/05 11:37
按照本人前一篇《javaEE之JPA、EJB、JSF架构工程》的介绍建立好几个必要的工程文件。下面是重要代码分析:
1、JPA代码篇:
(1)单张表的实体创建,不涉及到多表连接。
@Entity//实体bean@Table(name="user")//对应表名为userpublic class User implements Serializable {private static final long serialVersionUID = 1L;@Id//id为主键private int id;(2)多表连接
2、EJB代码篇:
(1)无状态会话bean,UserInfo.java
package test;import javax.ejb.Stateless;import javax.persistence.EntityManager;import javax.persistence.PersistenceContext;/** * Session Bean implementation class UserInfo */@Statelesspublic class UserInfo implements UserInfoRemote {@PersistenceContext(unitName="testJPA") EntityManager em; /** * Default constructor. */ public UserInfo() { // TODO Auto-generated constructor stub }@Overridepublic User getUserById(int id) {// TODO Auto-generated method stubUser user=em.find(User.class, id);return user;}@Overridepublic void insertUser(User user) {// TODO Auto-generated method stubem.merge(user);em.flush();}}em调用find方法时,注意,参数只能是实体bean对应表的主键,不然无法实现查找功能。
@PersistenceContext(unitName="testJPA") EntityManager em;//这行代码一定要注意修改,不然会找不到实体bean而出错。
在执行完数据库的增删改操作后记得要将表刷新,实现同步。
package test;import javax.ejb.Remote;@Remotepublic interface UserInfoRemote {public User getUserById(int id);public void insertUser(User user);}远程接口没什么说的,定义好后可以利用集成开发环境自动生成相应的会话bean,保证参数的一致。
3、JSF代码篇:
(1)一个简单的登录页面
<%@taglib uri="http://java.sun.com/jsf/core" prefix="f" %><%@taglib uri="http://java.sun.com/jsf/html" prefix="h" %><%@page contentType="text/html;charset=utf-8"%><html> <head> <title>第一个JSF程序</title> </head><body> <f:view><h:form>请输入你的用户名:<h:inputText value="#{user.id}"/><br>请输入你的密码:<h:inputSecret value="#{user.password }"></h:inputSecret> <p><h:commandButton value="登录" action="#{user.check}"/><h:commandButton value="重置" type="reset"/></h:form> </f:view> </body></html>这里面有两点要注意:第一点,value="#{user.id}"对应的是back bean中的一个属性,一定要在back bean中有set和get方法;第二,动作事件,action="#{user.check}"对应的是backbean当中的一个方法,返回值一定要是string类型。
(2)faces-config.xml这个东西太复杂了,暂时还没完全搞懂,先不做展开。
4、java代码篇:
数据库字段类型为date,在java文件中存在两种date类型:java.sql.Date 和 java.util.Date。
(1)比如说我要从数据库中取出date类型值,然后打印成string
user.getBirthday().toString();(2)存string类型的时间值到数据库中的date类型字段
java.util.Date temp=null;java.sql.Date birDate=null;try {temp = new SimpleDateFormat("yyyy-MM-dd").parse(birthday);birDate=new java.sql.Date(temp.getTime());} catch (ParseException e1) {// TODO Auto-generated catch blocke1.printStackTrace();} user.setBirthday(birDate);这个存的时间类型为:yyyy-mm-dd,如果要存到数据库中尉datetime类型就有点复杂了。
Date today = new Date(System.currentTimeMillis());//获取系统当前时间
由于本人用的教材是Java EE 5 完全学习手册,清华大学出版社,2009年4月第一版,本书涉及面很广,但是对每个点讲得不是很细,比如说faces-config.xml导航规则就两页带过,本人觉得用起来还是那么不顺手,希望大牛们能推荐javaEE更好的学习资料。
- javaEE之JPA、EJB、JSF代码分析
- javaEE之JPA、EJB、JSF架构工程
- JSF+EJB+JPA之整体思想
- JPA EJB SEAM JSF
- SSH和JSF+EJB+JPA的比较
- [JavaEE - JPA] 2. EJB中的事务管理
- [JavaEE - JPA] 2. EJB中的事务管理
- ADF开发初体验之二:使用EJB、JPA、JSF开发Web应用
- EJB/JPA/JSF通过ADF构建Web应用程序之测试J2EE Container
- j2ee之jboss与ejb、jsf、jpa整合小项目(一)(数据库为mysql)
- EJB之JPA(EntityManager)
- EJB之JPA(EntityManager)
- EJB之JPA
- EJB之JPA(EntityManager)
- ADF_Starting系列8_使用EJB/JPA/JSF通过ADF构建Web应用程序之扩展UI Method
- ADF_Starting系列9_使用EJB/JPA/JSF通过ADF构建Web应用程序之测试J2EE Container
- ADF_Starting系列8_使用EJB/JPA/JSF通过ADF构建Web应用程序之扩展UI Method
- JavaEE – JPA(2):EJB中的事务管理
- Java程序员从笨鸟到菜鸟之(五十一)细谈Hibernate(二)开发第一个hibernate基本详解
- 网游玩家流失特征提取办法(基于C5.0算法和SPSS Modeler)
- WIN32进程快照以及进程ID和句柄查找
- Javascript OO 基础概念(一)–构造函数
- QSignalMapper分类有序地处理大量信号(就是信号转发机制,A1,A2,A3,....>B>C)
- javaEE之JPA、EJB、JSF代码分析
- 《那些年啊,那些事——一个程序员的奋斗史》——97
- sqlite安装
- Rovio非小鸟题材新游Amazing Alex即将发布
- 使用JavaFX UI控件(0)
- UML类图关系
- 简单asp.net前端代码
- linux中设置shell输出样式
- STL中queue的使用