当前位置: 首页 > news >正文

公司网站排名优化手段全国最好装修公司排行榜

公司网站排名优化手段,全国最好装修公司排行榜,东莞南城网络公司,加强网站信息建设今天#xff0c;我们将使用带有视图范围的托管bean的惰性列表进行JSF数据表分页。 这些单词/表达式是什么意思#xff1f; 如今#xff0c;有几个JSF框架为数据表提供现成的分页#xff0c;列排序器和其他功能。 今天#xff0c;我们将使用Primefaces数据表。 通常#… 今天我们将使用带有视图范围的托管bean的惰性列表进行JSF数据表分页。 这些单词/表达式是什么意思 如今有几个JSF框架为数据表提供现成的分页列排序器和其他功能。 今天我们将使用Primefaces数据表。 通常数据表会将显示的列表和实体放在用户http会话中。 增加用户会话中的对象将直接影响服务器性能。 每个显示数据表并在会话中保留列表的用户将在服务器中分配越来越多的内存。 为了看起来真实我们的文章将使用JPA和HSQLDB作为数据库并且将使用JPQL查询数据。 在本文的结尾您将找到下载源代码的链接。 我们将使用 JSF 2.0 – JBoss 7实施 JBoss 7.1 –本文的代码应应用于所有服务器 日食靛蓝 JPA 2.0 – JBoss 7实施 HSQLDB2.2.8– HSQL是一个内存数据库它将更易于运行。 Primefaces 3.2 这篇文章不是关于好的开发实践也不是关于添加项目建模的类层。 我只是想展示如何在没有会话托管bean的情况下进行分页。 我们只有一个实体即Player类。 下面是班级代码 package com.model;import java.io.Serializable;import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id;Entity public class Player implements Serializable{private static final long serialVersionUID 1L;IdGeneratedValue(strategy GenerationType.AUTO)private int id;private String name;private int age;public int getId() {return id;}public void setId(int id) {this.id id;}public String getName() {return name;}public void setName(String name) {this.name name;}public int getAge() {return age;}public void setAge(int age) {this.age age;}Overridepublic int hashCode() {return getId();}Overridepublic boolean equals(Object obj) {if(obj instanceof Player){Player player (Player) obj;return player.getId() getId();}return false;} } 我们将需要在“ src / META-INF”文件夹中创建一个persistence.xml文件 ?xml version1.0 encodingUTF-8?persistence version2.0xmlnshttp://java.sun.com/xml/ns/persistence xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsdpersistence-unit nameJSFPU transaction-typeJTAjta-data-sourcejava:/JSFDS/jta-data-sourcepropertiesproperty namehibernate.show_sql valuefalse /property namehibernate.dialect valueorg.hibernate.dialect.HSQLDialect /property namehibernate.connection.shutdown valuetrue /property namehibernate.hbm2ddl.auto valuecreate-drop //properties/persistence-unit /persistence 为了抽象数据库事务我们将使用一个名为MyTransaction的类 package com.connection;import java.io.Serializable;import javax.persistence.EntityManager; import javax.transaction.HeuristicMixedException; import javax.transaction.HeuristicRollbackException; import javax.transaction.NotSupportedException; import javax.transaction.RollbackException; import javax.transaction.SystemException;public class MyTransaction implements Serializable {/****/private static final long serialVersionUID 1L;private Connection connection new Connection(); public void begin() throws NotSupportedException, SystemException {connection.begin();}public void commit() throws RollbackException, HeuristicMixedException, HeuristicRollbackException, SecurityException, IllegalStateException,SystemException {connection.commit();}public int getStatus() throws SystemException {return connection.getStatus();}public void rollback() throws IllegalStateException, SecurityException, SystemException {connection.rollback();}public void setRollbackOnly() throws IllegalStateException, SystemException {connection.setRollbackOnly();}public void setTransactionTimeout(int timeout) throws SystemException {connection.setTransactionTimeout(timeout);}public static MyTransaction getNewTransaction() {return new MyTransaction();}public EntityManager getEntityManager() {return connection.getEntityManager();} } 您可以在上面的代码中看到该类只是数据库连接的抽象 它将帮助我们进行数据库查询。 您可以使用任何类型的连接甚至可以使用EJB来避免这种手动连接管理。 检查连接类代码 package com.connection;import java.io.Serializable;import javax.naming.Context; import javax.naming.InitialContext; import javax.persistence.EntityManager; import javax.transaction.HeuristicMixedException; import javax.transaction.HeuristicRollbackException; import javax.transaction.NotSupportedException; import javax.transaction.RollbackException; import javax.transaction.SystemException; import javax.transaction.UserTransaction;public class Connection implements Serializable {private static final long serialVersionUID 1L;/*** Get the user transaction by JNDI** return the user transaction*/public UserTransaction getUserTransaction() {UserTransaction ut null;try {Context c new InitialContext();ut (UserTransaction) c.lookup(java:comp/UserTransaction);} catch (Exception e) {e.printStackTrace();}return ut;}/*** Get the EntityManayger by JNDI** return the entity manager*/public EntityManager getEntityManager() {EntityManager em null;try {Context initCtx new InitialContext();// The JSFPU must be written in the web.xmlem (EntityManager) initCtx.lookup(java:comp/env/JSFPU);} catch (Exception e) {e.printStackTrace();}return em;}public void begin() throws NotSupportedException, SystemException {getUserTransaction().begin();}public void commit() throws SecurityException, IllegalStateException, RollbackException, HeuristicMixedException, HeuristicRollbackException, SystemException {getUserTransaction().commit();}public int getStatus() throws SystemException {return getUserTransaction().getStatus();}public void rollback() throws IllegalStateException, SecurityException, SystemException {getUserTransaction().rollback();}public void setRollbackOnly() throws IllegalStateException, SystemException {getUserTransaction().setRollbackOnly();}public void setTransactionTimeout(int timeout) throws SystemException {getUserTransaction().setTransactionTimeout(timeout);} } 我们可以使用JSF注入的UserTransaction但是我们选择使用JNDI查找。 有几个在JSF上下文之外调用的Primefaces调用如果尝试访问应注入的引用则可能会出现NullPointerException。 有几种方法可以解决此问题但是我们将对EntityManager和UserTransaction使用JNDI查找。 我们的最后一堂课是PlayerDAO package com.dao;import java.io.Serializable; import java.util.List;import javax.persistence.EntityManager; import javax.persistence.Query;import com.connection.MyTransaction; import com.model.Player;public class PlayerDAO implements Serializable {private static final long serialVersionUID 1L;private MyTransaction myTransaction;public PlayerDAO(MyTransaction transaction) {this.myTransaction transaction;}/*** Find players in the DB** param startingAt the first row db that the query will search* param maxPerPage the amount of records allowed per trip in the DB* return a players java.util.List*/SuppressWarnings(unchecked)public ListPlayer findPlayers(int startingAt, int maxPerPage) {EntityManager em myTransaction.getEntityManager();// regular query that will search for players in the dbQuery query em.createQuery(select p from Player p);query.setFirstResult(startingAt);query.setMaxResults(maxPerPage);return query.getResultList();}/*** Creates 100 players in the DB*/public void create100Players() {EntityManager em myTransaction.getEntityManager();Player player;for (int x 0; x 100; x) {player new Player();player.setName(Player: x);player.setAge(x);em.persist(player);}em.flush();}/*** Sum the number of players in the DB** return an int with the total*/public int countPlayersTotal() {EntityManager em myTransaction.getEntityManager();Query query em.createQuery(select COUNT(p) from Player p);Number result (Number) query.getSingleResult();return result.intValue();} } 在PlayerDAO类中只有3种方法可用于分页。 注意没有方法可以列出数据库中的所有玩家。 创建文件夹“ YOU_JBOSS / modules / org / hsqldb / main”。 在此文件夹中创建一个名为“ module.xml”的文件。 将下面的代码写在“ module.xml”文件中 module xmlnsurn:jboss:module:1.0 nameorg.hsqldbresourcesresource-root pathhsqldb.jar //resourcesdependenciesmodule namejavax.api /module namejavax.transaction.api //dependencies /module 将“ hsqldb.jar”文件复制到刚创建的文件夹“ main”中。 您可以在下载的HSQLDB jar中找到此文件其路径为“ hsqldb-2.2.8.zip/hsqldb-2.2.8/hsqldb/lib”。 编辑文件“ YOU_JBOSS / standalone / configuration / standalone.xml”然后在“数据源”节点中添加以下代码 datasource jndi-namejava:/JSFDS pool-nameJSFDS_POOLenabledtrue jtatrue use-java-contexttrue use-ccmtrueconnection-urljdbc:hsqldb:mem:jsfinmemory/connection-urldriverhsqldb/driverpoolprefillfalse/prefilluse-strict-minfalse/use-strict-minflush-strategyFailingConnectionOnly/flush-strategy/poolsecurityuser-namesa/user-namepassword/password/security /datasource 在驱动程序节点中添加 driver namehsqldb moduleorg.hsqldb/ 参考 uaiHebert博客上我们JCG合作伙伴 Hebert Coelho的懒惰JSF数据表分页Primefaces 。 翻译自: https://www.javacodegeeks.com/2012/04/lazy-jsf-primefaces-datatable.html
http://www.pierceye.com/news/155257/

相关文章:

  • 网站投放天津塘沽爆炸事件
  • 360网站安全检测自己买个服务器做网站
  • 临汾市网站建设网站版式分类
  • 广东的一起(17)做网站东莞建工集团企业网站
  • 最佳外贸英文网站模板六安网站设计公司
  • 为啥网站打开速度慢备案域名怎么弄
  • 门户网站建设主要内容深圳网站有哪些
  • 最好看的免费网站源码龙泉驿最新消息
  • 百度建立网站需要花多少钱学校门户网站建设工作
  • 网站安全防护方案沈阳网站建设策划方案
  • php做网站需要啥技术网站每年空间域名费用及维护费
  • 商城网站建设报个人免费网站
  • 公司网站开发建设wordpress首页加图片
  • 个人网站怎么写建设工程网站广州
  • 东阿网站制作如何在国外网站做推广
  • 宣城公司做网站潍坊市住房和城乡建设局网站
  • 用自己服务器做网站用备案wordpress弹窗订阅
  • 配色相关网站省住房城乡建设厅网站
  • 做汽车配件出口用什么网站好些求百度关键词搜索网站
  • 做网站到八方资源网怎么样公司网站首页如何做
  • 东莞政务网站建设方案wordpress三栏博客主题
  • 艺友网站建设网站需要的栏目
  • 教育类网站 前置审批重庆网站建设首选卓光
  • 宁波做网站哪家好个人做论坛网站怎么做
  • 公司网站建设北京电子设计工程期刊
  • 网站前端建设都需要什么c 网站开发案例详解
  • 无锡网站无忧网站建设
  • 最火高端网站设计厂家宁波新亚建设内部网站
  • 娱乐网站建设宁波网站建设多少钱一年
  • app制作器手机版下载网站关键词优化排名怎么做