jsf学习四(添。删 。改)
新建个dal层 专门操作数据库的一些方法,由于是测试学习。。没有考虑代码的规范和其他的问题。运行只看效果。
新建from 类 前途jsf都是掉这类的方法
实体
前台
faces-config.xml
hibernate 实体配置文件
hibernate 配置文件
运行。。
package
jsftest.dal;
import org.hibernate. * ;
import org.hibernate.cfg. * ;
import org.apache.log4j. * ;
import jsftest.vo.ArticleVO;
import java.util. * ;
public class ArticleDAL {
org.apache.log4j.Logger log = Logger.getLogger( this .getClass());
private Session session = null ;
public ArticleDAL() {
}
public void saveArticle(ArticleVO vo)
{
try
{
session = this .getSession();
session.saveOrUpdate(vo);
session.flush();
session.connection().commit();
session.close();
}
catch (Exception ee)
{
log.error(ee);
}
}
public void deleteArticle( int articleID)
{
session = this .getSession();
ArticleVO vo = (ArticleVO)session.get(ArticleVO. class ,articleID);
session.delete(vo);
}
public void deleteArticle(ArticleVO vo)
{
session = this .getSession();
session.delete(vo);
session.flush();
}
public List LoadArticleAll()
{
session = this .getSession();
Query query = session.createQuery( " FROM ArticleVO " );
List list = query.list();
session.close();
return list;
}
public Session getSession()
{
try
{
Configuration cfg = new Configuration().configure();
SessionFactory sf = cfg.buildSessionFactory();
return sf.openSession();
} catch (Exception ee)
{
log.error( " error: " + ee.getMessage());
}
return null ;
}
}
import org.hibernate. * ;
import org.hibernate.cfg. * ;
import org.apache.log4j. * ;
import jsftest.vo.ArticleVO;
import java.util. * ;
public class ArticleDAL {
org.apache.log4j.Logger log = Logger.getLogger( this .getClass());
private Session session = null ;
public ArticleDAL() {
}
public void saveArticle(ArticleVO vo)
{
try
{
session = this .getSession();
session.saveOrUpdate(vo);
session.flush();
session.connection().commit();
session.close();
}
catch (Exception ee)
{
log.error(ee);
}
}
public void deleteArticle( int articleID)
{
session = this .getSession();
ArticleVO vo = (ArticleVO)session.get(ArticleVO. class ,articleID);
session.delete(vo);
}
public void deleteArticle(ArticleVO vo)
{
session = this .getSession();
session.delete(vo);
session.flush();
}
public List LoadArticleAll()
{
session = this .getSession();
Query query = session.createQuery( " FROM ArticleVO " );
List list = query.list();
session.close();
return list;
}
public Session getSession()
{
try
{
Configuration cfg = new Configuration().configure();
SessionFactory sf = cfg.buildSessionFactory();
return sf.openSession();
} catch (Exception ee)
{
log.error( " error: " + ee.getMessage());
}
return null ;
}
}
新建from 类 前途jsf都是掉这类的方法
package
jsftest.from;
import java.util.ArrayList;
import java.util.List;
import javax.faces.component.UIData;
import javax.faces.event.ActionEvent;
import jsftest.dal.ArticleDAL;
import jsftest.vo.ArticleVO;
import java.util.Collection;
public class ArticleForm {
private int id = 0 ;
private String title;
private String body;
private ArrayList articles;
public ArticleForm() {
loadall();
}
private ArticleDAL dal = new ArticleDAL();
public void save()
{
ArticleVO vo = new ArticleVO();
vo.setBody( this .getBody());
vo.setTitle( this .getTitle());
if ( this .getId() != 0 )
{
vo.setId( this .getId());
}
dal.saveArticle(vo);
}
public void edit(ActionEvent event)
{
UIData table = (UIData) event.getComponent().getParent().getParent();
ArticleVO vo = new ArticleVO();
vo = (ArticleVO)table.getRowData();
this .setBody(vo.getBody());
this .setId(vo.getId());
this .setTitle(vo.getTitle());
}
public void delete(ActionEvent event)
{
UIData table = (UIData) event.getComponent().getParent().getParent();
ArticleVO vo = (ArticleVO)table.getRowData();
dal.deleteArticle(vo);
dal.LoadArticleAll();
}
public void loadall()
{
this .setArticles((ArrayList)dal.LoadArticleAll());
}
public String getBody() {
return body;
}
public int getId() {
return id;
}
public String getTitle() {
return title;
}
public Collection getArticles() {
// this.loadall();
if (articles == null )
{
articles = new ArrayList();
}
return articles;
}
public void setBody(String body) {
this .body = body;
}
public void setId( int id) {
this .id = id;
}
public void setTitle(String title) {
this .title = title;
}
public void setArticles(ArrayList articles) {
this .articles = articles;
}
}
import java.util.ArrayList;
import java.util.List;
import javax.faces.component.UIData;
import javax.faces.event.ActionEvent;
import jsftest.dal.ArticleDAL;
import jsftest.vo.ArticleVO;
import java.util.Collection;
public class ArticleForm {
private int id = 0 ;
private String title;
private String body;
private ArrayList articles;
public ArticleForm() {
loadall();
}
private ArticleDAL dal = new ArticleDAL();
public void save()
{
ArticleVO vo = new ArticleVO();
vo.setBody( this .getBody());
vo.setTitle( this .getTitle());
if ( this .getId() != 0 )
{
vo.setId( this .getId());
}
dal.saveArticle(vo);
}
public void edit(ActionEvent event)
{
UIData table = (UIData) event.getComponent().getParent().getParent();
ArticleVO vo = new ArticleVO();
vo = (ArticleVO)table.getRowData();
this .setBody(vo.getBody());
this .setId(vo.getId());
this .setTitle(vo.getTitle());
}
public void delete(ActionEvent event)
{
UIData table = (UIData) event.getComponent().getParent().getParent();
ArticleVO vo = (ArticleVO)table.getRowData();
dal.deleteArticle(vo);
dal.LoadArticleAll();
}
public void loadall()
{
this .setArticles((ArrayList)dal.LoadArticleAll());
}
public String getBody() {
return body;
}
public int getId() {
return id;
}
public String getTitle() {
return title;
}
public Collection getArticles() {
// this.loadall();
if (articles == null )
{
articles = new ArrayList();
}
return articles;
}
public void setBody(String body) {
this .body = body;
}
public void setId( int id) {
this .id = id;
}
public void setTitle(String title) {
this .title = title;
}
public void setArticles(ArrayList articles) {
this .articles = articles;
}
}
实体
package
jsftest.vo;
public class ArticleVO {
private int id;
private String title;
private String body;
public ArticleVO() {
}
// getter setter
public class ArticleVO {
private int id;
private String title;
private String body;
public ArticleVO() {
}
// getter setter
前台
<%
@ page contentType
=
"
text/html; charset=GBK
"
%>
<% @taglib uri = " http://java.sun.com/jsf/html " prefix = " h " %>
<% @taglib uri = " http://java.sun.com/jsf/core " prefix = " f " %>
< f:view >
< head >
< title >
jsp1
</ title >
</ head >
< body bgcolor ="#ffffff" >
< h1 >
JBuilder Generated JSP
</ h1 >
< h:form >
< div align ="left" >
标题 < h:inputText id ="title" value ="#{article.title}" />< br >
内容 < h:inputTextarea id ="currentMessage" value ="#{article.body}" rows ="10" cols ="60" />
< h:inputHidden value ="#{article.id}" />
</ div >
< div align ="center" >
< h:commandButton value ="save" action ="#{article.save}" />
</ div >
< div align ="center" >
< h:commandButton value ="clear" type ="reset" />
</ div >
*************************************************************
< h:dataTable id ="table" rowClasses ="list-row" value ="#{article.articles}" var ="articles" >
< h:column >
< h:outputText styleClass ="small" value ="#{articles.id}" />
</ h:column >
< h:column >
< h:commandLink id ="editLink" actionListener ="#{article.edit}" >
< h:outputText value ="edit" />
</ h:commandLink >
</ h:column >
< h:column >
< h:commandLink id ="deleteLink" actionListener ="#{article.delete}" >
< h:outputText value ="delete" />
</ h:commandLink >
</ h:column >
< h:column >
< h:outputText value ="#{articles.title}" />
</ h:column >
< h:column >
< h:outputText value ="#{articles.body}" />
</ h:column >
</ h:dataTable >
</ h:form >
</ body >
</ f:view >
<% @taglib uri = " http://java.sun.com/jsf/html " prefix = " h " %>
<% @taglib uri = " http://java.sun.com/jsf/core " prefix = " f " %>
< f:view >
< head >
< title >
jsp1
</ title >
</ head >
< body bgcolor ="#ffffff" >
< h1 >
JBuilder Generated JSP
</ h1 >
< h:form >
< div align ="left" >
标题 < h:inputText id ="title" value ="#{article.title}" />< br >
内容 < h:inputTextarea id ="currentMessage" value ="#{article.body}" rows ="10" cols ="60" />
< h:inputHidden value ="#{article.id}" />
</ div >
< div align ="center" >
< h:commandButton value ="save" action ="#{article.save}" />
</ div >
< div align ="center" >
< h:commandButton value ="clear" type ="reset" />
</ div >
*************************************************************
< h:dataTable id ="table" rowClasses ="list-row" value ="#{article.articles}" var ="articles" >
< h:column >
< h:outputText styleClass ="small" value ="#{articles.id}" />
</ h:column >
< h:column >
< h:commandLink id ="editLink" actionListener ="#{article.edit}" >
< h:outputText value ="edit" />
</ h:commandLink >
</ h:column >
< h:column >
< h:commandLink id ="deleteLink" actionListener ="#{article.delete}" >
< h:outputText value ="delete" />
</ h:commandLink >
</ h:column >
< h:column >
< h:outputText value ="#{articles.title}" />
</ h:column >
< h:column >
< h:outputText value ="#{articles.body}" />
</ h:column >
</ h:dataTable >
</ h:form >
</ body >
</ f:view >
faces-config.xml
<?
xml version="1.0" encoding="UTF-8"
?>
<! DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN" "http://java.sun.com/dtd/web-facesconfig_1_1.dtd" >
< faces-config >
< managed-bean >
< description > this first jsf </ description >
< managed-bean-name > article </ managed-bean-name >
< managed-bean-class > jsftest.from.ArticleForm </ managed-bean-class >
< managed-bean-scope > request </ managed-bean-scope >
</ managed-bean >
</ faces-config >
<! DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.1//EN" "http://java.sun.com/dtd/web-facesconfig_1_1.dtd" >
< faces-config >
< managed-bean >
< description > this first jsf </ description >
< managed-bean-name > article </ managed-bean-name >
< managed-bean-class > jsftest.from.ArticleForm </ managed-bean-class >
< managed-bean-scope > request </ managed-bean-scope >
</ managed-bean >
</ faces-config >
hibernate 实体配置文件
<?
xml version="1.0" encoding="UTF-8"
?>
<! DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
< hibernate-mapping >
< class name ="jsftest.vo.ArticleVO" table ="articles" >
< id name ="id" column ="id" unsaved-value ="0" >
< generator class ="native" />
</ id >
< property name ="title" column ="title" />
< property name ="body" column ="body" />
</ class >
</ hibernate-mapping >
<! DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" >
< hibernate-mapping >
< class name ="jsftest.vo.ArticleVO" table ="articles" >
< id name ="id" column ="id" unsaved-value ="0" >
< generator class ="native" />
</ id >
< property name ="title" column ="title" />
< property name ="body" column ="body" />
</ class >
</ hibernate-mapping >
hibernate 配置文件
<?
xml version='1.0' encoding='UTF-8'
?>
<! DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd" >
< hibernate-configuration >
< session-factory >
< property name ="connection.driver_class" > org.gjt.mm.mysql.Driver </ property >
< property name ="connection.url" > jdbc:mysql://localhost:3306/test </ property >
< property name ="connection.username" > root </ property >
< property name ="connection.password" ></ property >
< property name ="connection.pool_size" > 1 </ property >
< property name ="dialect" > org.hibernate.dialect.MySQLDialect </ property >
< property name ="show_sql" > true </ property >
< property name ="hibernate.use_outer_join" > true </ property >
< property name ="hibernate.transaction.factory_class" >
org.hibernate.transaction.JDBCTransactionFactory
</ property >
< mapping resource ="ArticleVO.hbm.xml" />
</ session-factory >
</ hibernate-configuration >
<! DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd" >
< hibernate-configuration >
< session-factory >
< property name ="connection.driver_class" > org.gjt.mm.mysql.Driver </ property >
< property name ="connection.url" > jdbc:mysql://localhost:3306/test </ property >
< property name ="connection.username" > root </ property >
< property name ="connection.password" ></ property >
< property name ="connection.pool_size" > 1 </ property >
< property name ="dialect" > org.hibernate.dialect.MySQLDialect </ property >
< property name ="show_sql" > true </ property >
< property name ="hibernate.use_outer_join" > true </ property >
< property name ="hibernate.transaction.factory_class" >
org.hibernate.transaction.JDBCTransactionFactory
</ property >
< mapping resource ="ArticleVO.hbm.xml" />
</ session-factory >
</ hibernate-configuration >
运行。。