Primefaces Spring和Hibernate集成示例教程

欢迎使用Spring Primefaces和Hibernate Integration示例。框架之间的集成是一项复杂的任务,而且大多需要花费大量时间来实现。我们 在单独的教程中讨论了  Primefaces,Spring和Hibernate框架,但这次我们将向您展示如何集成所有这些框架以创建分层(分层)应用程序。

目录[ 隐藏 ]

  • 1 Spring Primefaces Hibernate

    • 1.1 Spring Primefaces Hibernate必备工具
    • 1.2 Primefaces Spring Hibernate项目结构
    • 1.3创建数据库员工表
    • 1.4创建Employee Model Bean
    • 1.5 Spring Primefaces Hibernate Maven依赖项
    • 1.6 Spring Primefaces - 休眠配置
    • 1.7测试我们的Hibernate应用程序
    • 1.8设置弹簧
    • 1.9 Spring EmployeeService
    • 1.10 Primefaces Managed Bean - RegisterEmployee
    • 1.11 Primefaces - 注册表
    • 1.12 Spring Primefaces Hibernate示例摘要

Spring Primefaces Hibernate

分层(分层)应用程序是一种流行的设计,大多数企业应用程序都与之对齐。其中:

  1. Primefaces框架将用于处理所有UI问题并验证客户端的输入。
  2. Hibernate框架将用于传递您自己的可能是MySQL数据库的持久性存储。
  3. Spring框架将用于粘合所有这些框架。

本教程旨在使用所有这些列出的框架实现分层应用程序。

Spring Primefaces Hibernate所需的工具

在开始深入研究之前,让我们看看您需要的所需工具:

  • Eclipse Kepler 4.3。
  • Hibernate 3.x.
  • 春天4.x.
  • Primefaces 5.x.
  • JDK 1.6+。
  • MySQL 5.x.

Primefaces Spring Hibernate项目结构

我们的最终项目结构如下图所示,我们将逐个浏览每个组件。

创建数据库员工表

MySQL数据库将用于保留所有员工实例/记录。使用过的员工表如下所示:

另外,在下面找到它的SQL create-script:


CREATE TABLE `employee` (`EMP_ID` int(11) NOT NULL AUTO_INCREMENT,`EMP_NAME` varchar(45) DEFAULT NULL,`EMP_HIRE_DATE` datetime DEFAULT NULL,`EMP_SALARY` decimal(11,4) DEFAULT NULL,PRIMARY KEY (`EMP_ID`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;

创建员工模型Bean

在我们创建了一个Employee Table之后,现在是时候看看Employee类的样子了:


package com.journaldev.hibernate.data;import java.util.Date;public class Employee {private long employeeId;private String employeeName;private Date employeeHireDate;private double employeeSalary;public long getEmployeeId() {return employeeId;}public void setEmployeeId(long employeeId) {this.employeeId = employeeId;}public String getEmployeeName() {return employeeName;}public void setEmployeeName(String employeeName) {this.employeeName = employeeName;}public Date getEmployeeHireDate() {return employeeHireDate;}public void setEmployeeHireDate(Date employeeHireDate) {this.employeeHireDate = employeeHireDate;}public double getEmployeeSalary() {return employeeSalary;}public void setEmployeeSalary(double employeeSalary) {this.employeeSalary = employeeSalary;}
}

Spring Primefaces Hibernate Maven依赖项

Maven是一个构建工具,主要用于管理项目依赖项。因此,无需像通常那样下载JAR并将其附加到项目中。MySQL JDBC驱动程序hibernate核心Spring核心框架Primefaces以及Spring Hibernate Primefaces集成所需的许多库。我们的最终pom.xml文件如下所示。


<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.journaldev</groupId><artifactId>Primefaces-Hibernate-Spring-Integration-Sample</artifactId><packaging>war</packaging><version>0.0.1-SNAPSHOT</version><name>Primefaces-Hibernate-Spring-Integration-Sample Maven Webapp</name><build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-compiler-plugin</artifactId><configuration><source>1.6</source><target>1.6</target></configuration></plugin></plugins></build><url>http://maven.apache.org</url><repositories><repository><id>prime-repo</id><name>PrimeFaces Maven Repository</name><url>http://repository.primefaces.org</url><layout>default</layout></repository></repositories><dependencies><!-- Servlet --><dependency><groupId>javax.servlet</groupId><artifactId>servlet-api</artifactId><version>2.5</version><scope>provided</scope></dependency><!-- Faces Implementation --><dependency><groupId>com.sun.faces</groupId><artifactId>jsf-impl</artifactId><version>2.2.4</version></dependency><!-- Faces Library --><dependency><groupId>com.sun.faces</groupId><artifactId>jsf-api</artifactId><version>2.2.4</version></dependency><!-- Primefaces Version 5 --><dependency><groupId>org.primefaces</groupId><artifactId>primefaces</artifactId><version>5.0</version></dependency><!-- JSP Library --><dependency><groupId>javax.servlet.jsp</groupId><artifactId>javax.servlet.jsp-api</artifactId><version>2.3.1</version></dependency><!-- JSTL Library --><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId><version>1.1.2</version></dependency><!-- Primefaces Theme Library --><dependency><groupId>org.primefaces.themes</groupId><artifactId>blitzer</artifactId><version>1.0.10</version></dependency><!-- Hibernate library --><dependency><groupId>org.hibernate</groupId><artifactId>hibernate-core</artifactId><version>3.6.10.Final</version></dependency><!-- MySQL driver connector library --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.31</version></dependency><!-- Spring ORM --><dependency><groupId>org.springframework</groupId><artifactId>spring-orm</artifactId><version>4.0.3.RELEASE</version></dependency><!-- Spring Web --><dependency><groupId>org.springframework</groupId><artifactId>spring-webmvc</artifactId><version>4.0.3.RELEASE</version></dependency><!-- Required By Hibernate --><dependency><groupId>commons-dbcp</groupId><artifactId>commons-dbcp</artifactId><version>1.4</version></dependency><dependency><groupId>javassist</groupId><artifactId>javassist</artifactId><version>3.12.1.GA</version></dependency></dependencies>
</project>

Spring Primefaces - Hibernate配置

Hibernate是一种标准的对象关系映射(ORM)解决方案,它用于将对象域映射到关系表格公式。Hibernate配置过程需要以下步骤:

  • 在hibernate配置文件中指定所有相关的数据库信息,如驱动程序,JDBC URL,hibernate方言和hibernate会话上下文,主要使用  hibernate.cfg.xml。Hibernate实现本身将使用Dialect,以确保有效地完成映射过程的执行。该文件应位于项目的src / main / resources文件夹下。
  • 指定hibernate的映射文件。映射文件将包含所有映射信息,如对象表,属性列和关联关系,domain-classes.hbm.xml文件主要用于此目的。此文件应位于项目的src / main / resources文件夹下,以便它位于应用程序的类路径中。
  • 重要的是要说当我们要使用Spring时需要进行一些修改。

hibernate.cfg.xml


<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"><hibernate-configuration><session-factory><!-- Database connection settings --><property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property><property name="hibernate.connection.url">jdbc:mysql://localhost:3306/journaldev</property><property name="hibernate.connection.username">root</property><property name="hibernate.connection.password">root</property><!-- SQL dialect --><property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property><!-- Specify session context --><property name="hibernate.current_session_context_class">org.hibernate.context.internal.ThreadLocalSessionContext</property><!-- Show SQL --><property name="hibernate.show_sql">true</property><!-- Referring Mapping File --><mapping resource="domain-classes.hbm.xml"/></session-factory></hibernate-configuration>

domain-classes.hbm.xml


<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping
PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-2.0.dtd">
<hibernate-mapping><class name="com.journaldev.hibernate.data.Employee" table="employee"><id name="employeeId" column="EMP_ID" type="long"><generator class="native" /></id><property name="employeeName" column="EMP_NAME" type="string"/><property name="employeeHireDate" column="EMP_HIRE_DATE" type="date"/><property name="employeeSalary" column="EMP_SALARY" type="double"/></class>
</hibernate-mapping>

测试我们的Hibernate应用程序

到目前为止,我们已经创建了一个配置了所需依赖项的Eclipse Web项目,创建了数据库Employee Table并创建了hibernate框架。

在开始使用Spring集成并开发Primefaces UI表单之前,让我们看看如何使用简单的Java Application来获取针对我们自己的数据库保存的Employee实例。鉴于Java应用程序将帮助我们确定我们将获得的好处,特别是在以后使用Spring框架时。


package com.journaldev;import java.util.Date;import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import com.journaldev.hibernate.data.Employee;public class Main {public static void main(String [] args){// Create a configuration instanceConfiguration configuration = new Configuration();// Provide configuration fileconfiguration.configure("hibernate.cfg.xml");// Build a SessionFactorySessionFactory factory = configuration.buildSessionFactory(new StandardServiceRegistryBuilder().configure().build());// Get current session, current session is already associated with ThreadSession session = factory.getCurrentSession();// Begin transaction, if you would like save your instances, your calling of save must be associated with a transactionsession.getTransaction().begin();// Create employeeEmployee emp = new Employee();emp.setEmployeeName("Peter Jousha");emp.setEmployeeSalary(2000);emp.setEmployeeHireDate(new Date());// Savesession.save(emp);// Commit, calling of commit will cause save an instance of employeesession.getTransaction().commit();}
}

以下是对上述代码的详细说明:

  • Hibernate需要一个定义的上下文来使您获得的会话受到影响。标准Java应用程序上下文可以通过提供hibernate的属性hibernate.current_session_context_class来实现  。org.hibernate.context.internal.ThreadLocalSessionContext的值将被绑定到当前执行的线程的上下文。这意味着,如果您在活动事务中针对会话对象调用了任何类型的CRUD操作  ,则一旦提交了事务,它们将执行到您自己的数据库中。在我们的示例中,已保存新的员工实例。如果您使用过hibernate 3,则此属性应该是  线程而不是使用ThreadLocalSessionContext。
  • Hibernate 4用于测试目的,这个版本的hibernate在与Spring 4集成时不适用。要与Spring 4集成,你已经要求使用Hibernate 3。
  • 使用最新版本的hibernate需要您使用StandardServiceRegistryBuilder构建SessionFactory。

设置弹簧

Spring是一个综合框架,它主要用于控制反转(IoC),它考虑了众所周知的概念依赖注入的更一般类别。

但是,提供的简单Java应用程序使您能够根据自己的数据库保存Employee实例,但通常情况下,这不是大多数应用程序用于配置自己的hibernate持久层的方式。

使用Spring将帮助您避免所有创建和关联对象的东西。创建所需对象,关联其他对象主要是Spring作业。以下是Spring上下文配置文件,更新的hibernate配置,更新的Maven pom.xml和我们的部署描述符文件。让我们看看如何配置所有这些以正确使用Spring。

applicationContext.xml


<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:tx="http://www.springframework.org/schema/tx"xmlns:context="http://www.springframework.org/schema/context"xmlns:aop="http://www.springframework.org/schema/aop" xmlns:util="http://www.springframework.org/schema/util"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd http://www.springframework.org/schema/context  http://www.springframework.org/schema/context/spring-context-3.2.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd"><!-- Enable Spring Annotation Configuration --><context:annotation-config /><!-- Scan for all of Spring components such as Spring Service --><context:component-scan base-package="com.journaldev.spring.service"></context:component-scan><!-- Create Data Source bean --><bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"destroy-method="close"><property name="driverClassName" value="com.mysql.jdbc.Driver" /><property name="url" value="jdbc:mysql://localhost:3306/journaldev" /><property name="username" value="root" /><property name="password" value="root" /></bean><!-- Define SessionFactory bean --><bean id="sessionFactory"class="org.springframework.orm.hibernate3.LocalSessionFactoryBean"><property name="dataSource" ref="dataSource" /><property name="mappingResources"><list><value>domain-classes.hbm.xml</value></list></property><property name="configLocation"><value>classpath:hibernate.cfg.xml</value></property></bean><!-- Transaction Manager --><bean id="transactionManager"class="org.springframework.orm.hibernate3.HibernateTransactionManager"><property name="sessionFactory" ref="sessionFactory" /></bean><!-- Detect @Transactional Annotation --><tx:annotation-driven transaction-manager="transactionManager" />
</beans>

hibernate.cfg.xml


<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC"-//Hibernate/Hibernate Configuration DTD 3.0//EN""http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration><session-factory><!-- SQL dialect --><property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property></session-factory>
</hibernate-configuration>

web.xml


<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"xsi:schemaLocation="http://java.sun.com/xml/ns/javaeehttp://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"id="WebApp_ID" version="2.5" metadata-complete="true"><servlet><servlet-name>Faces Servlet</servlet-name><servlet-class>javax.faces.webapp.FacesServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>Faces Servlet</servlet-name><url-pattern>/faces/*</url-pattern></servlet-mapping><servlet-mapping><servlet-name>Faces Servlet</servlet-name><url-pattern>*.xhtml</url-pattern></servlet-mapping><context-param><description>State saving method: 'client' or 'server' (=default). See JSF Specification 2.5.2</description><param-name>javax.faces.STATE_SAVING_METHOD</param-name><param-value>client</param-value></context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener</listener-class></listener><listener><listener-class>com.sun.faces.config.ConfigureListener</listener-class></listener>
</web-app>

以下是上面给出的代码的详细说明:

  • 我们通过实例化一个名为sessionFactory的Spring Bean创建了一个SessionFactory  。实例化SessionFactory确实需要传递一个数据源实例的瞬间,传递映射文件(domain-classes.hbm.xml原样),通过使用hibernate.cfg.xml传递所有必需的Hibernate属性。正如您所注意到的,hibernate.cfg.xml不包含数据库信息,因为它立即被定义 - 数据源Bean - 并且不需要hibernate会话上下文,因为它由Apache Tomcat丰富。甚至Apache Tomact也不是托管服务器,但它包含帮助创建上下文会话的工具。
  • 事务管理器将帮助您消除使用一段代码,如  session.getTransaction()。begin() 和  commit()。@Transactional注释将被替代使用。这意味着,执行任何使用@Transactional注释的Spring Service方法都将以跨国方式完成。如果您在诸如session.save()之类的跨国范围内  针对您的会话 调用了CRUD操作  ,它将在被调用方法结束时直接执行到您自己的数据库中。这就是所谓的交易分界。
  • 您可以使用@Component定义自己的Spring服务。这将自动扫描。
  • 我们的pom.xml  maven依赖项文件  中添加了一个新库   ,hibernate 3需要common-dbcp 和  javassist。如果您注意到,Hibernate 4不需要这些库。
  • 必须为web.xml文件添加Spring上下文加载器侦听器。此侦听器需要  在WEB-INF / 文件夹下定义applicationContext.xml 。这是Spring配置上下文文件的默认位置和名称。如果您要更改其位置和名称,则必须在下面添加所需路径提供的代码段。

配置非默认的Spring Context Location:


<context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/spring/SpringContext.xml</param-value></context-param>

注意:如果您正在寻找Spring 4和Hibernate 4集成,我们需要在Spring Bean配置文件中进行一些小的更改,您可以在Spring Hibernate Integration Example中获得有关它的更多详细信息。

Spring EmployeeService

在像我们这里所做的那样的分层应用程序中,所有业务操作都必须通过服务来实现。Spring为您提供了定义自己的服务的能力,这些服务将包含您自己的业务规则。EmployeeService将包含创建Employee所需的业务。


package com.journaldev.spring.service;import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.transaction.annotation.Transactional;import com.journaldev.hibernate.data.Employee;@Component
public class EmployeeService {@Autowiredprivate SessionFactory sessionFactory;public SessionFactory getSessionFactory() {return sessionFactory;}public void setSessionFactory(SessionFactory sessionFactory) {this.sessionFactory = sessionFactory;}@Transactionalpublic void register(Employee emp){// Acquire sessionSession session = sessionFactory.getCurrentSession();// Save employee, saving behavior get done in a transactional mannersession.save(emp);}
}

以下是上述代码的详细说明:

  • EmployeeService是一个Spring服务,@ Component注释用于定义Spring Service。默认情况下,Spring将扫描您提到的包,以便根据上下文定位您的服务:component-scan  Tag。
  • @Autowired将帮助您获得所需的实例注入。这是依赖注入或IoC(控制反转)概念。这是一个重要的概念,它意味着不要让开发人员控制创建实例的过程,也需要进行必要的关联。它使所有这些创造和关联在后面看到。这是Spring令人难以置信的力量。@Autowired用于注入一个SessionFactory实例,如果您担心性能问题,可以将SessionFactory bean定义为单例范围。有关自动装配的完整信息,请阅读Spring自动装配示例。
  • @Transactional注释用于事务划分目的。事务划分用于将上下文会话与活动事务相关联。这将导致CRUD操作针对您自己的数据库执行。您应该通过Spring声明事务管理示例。

Primefaces Managed Bean - RegisterEmployee

Managed Bean是一个JSF工具,它用于处理所有必需的用户界面验证。在分层应用程序中,Managed Bean用于调用业务服务。您可能想知道,一旦您知道将EmployeeService Spring bean注入您自己的Managed Bean就适用了。如果您使用@ManagedProperty注释,那将成为现实。

faces-config.xml


<?xml version="1.0" encoding="UTF-8"?>
<faces-config xmlns="http://xmlns.jcp.org/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd"version="2.2">
<application><el-resolver>org.springframework.web.jsf.el.SpringBeanFacesELResolver</el-resolver>
</application>
</faces-config>

package com.journaldev.prime.faces.beans;import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ManagedProperty;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;import com.journaldev.hibernate.data.Employee;
import com.journaldev.spring.service.EmployeeService;@ManagedBean
@SessionScoped
public class RegisterEmployee {@ManagedProperty("#{employeeService}")private EmployeeService employeeService;private Employee employee = new Employee();public EmployeeService getEmployeeService() {return employeeService;}public void setEmployeeService(EmployeeService employeeService) {this.employeeService = employeeService;}public Employee getEmployee() {return employee;}public void setEmployee(Employee employee) {this.employee = employee;}public String register() {// Calling Business ServiceemployeeService.register(employee);// Add messageFacesContext.getCurrentInstance().addMessage(null, new FacesMessage("The Employee "+this.employee.getEmployeeName()+" Is Registered Successfully"));return "";}
}

以下是上述代码的详细说明:

  • RegisterEmployee Managed Bean是使用@ManagedProperty注释开发的,它将帮助您注入Spring EmployeeService实例。如果您不提供包含新添加的Spring的el-resolver 的特殊faces-config.xml文件,则该关联将不适用。
  • Primefaces UI表单将帮助您收集有关已注册员工的所有必需信息。
  • 注册操作将询问EmployeeService保存给定的员工实例。

Primefaces - 注册表格

index.xhtml


<html xmlns="http://www.w3.org/1999/xhtml"xmlns:ui="http://java.sun.com/jsf/facelets"xmlns:h="http://java.sun.com/jsf/html"xmlns:f="http://java.sun.com/jsf/core"xmlns:p="http://primefaces.org/ui">
<h:head><script name="jquery/jquery.js" library="primefaces"></script><title>Register Employee</title>
</h:head>
<h:form><p:growl id="messages"></p:growl><p:panelGrid columns="2"><p:outputLabel value="Enter Employee Name:"></p:outputLabel><p:inputText value="#{registerEmployee.employee.employeeName}"></p:inputText><p:outputLabel value="Enter Employee Hire Date:"></p:outputLabel><p:calendar value="#{registerEmployee.employee.employeeHireDate}"></p:calendar><p:outputLabel value="Enter Employee Salary:"></p:outputLabel><p:inputText value="#{registerEmployee.employee.employeeSalary}"></p:inputText>                        </p:panelGrid><p:commandButton value="Register" action="#{registerEmployee.register}" update="messages"></p:commandButton>
</h:form>
</html>

Spring Primefaces Hibernate示例摘要

Hibernate与Spring和Primefaces的集成是一项流行的开发任务。本教程将指导您彻底将Hibernate与Spring和Primeface集成,这将导致您让员工坚持使用您的数据库。有意提到了一些技术细节。通过下面的评论为我们做贡献,并找到下载目的的源代码。

下载Primefaces Spring Hibernate集成项目

转载来源:https://www.journaldev.com/4096/primefaces-spring-hibernate-integration-example-tutorial

Primefaces Spring和Hibernate集成示例教程相关推荐

  1. primefaces教程_Primefaces Spring和Hibernate集成示例教程

    primefaces教程 Welcome to the Spring Primefaces and Hibernate Integration example. Integration between ...

  2. Spring Hibernate集成示例教程

    Spring Hibernate集成示例教程(Spring 4 + Hibernate 3和Hibernate 4) Spring是最常用的Java EE Framework之一,而Hibernate ...

  3. JSF Spring Hibernate集成示例教程

    JSF Spring Hibernate集成示例教程 欢迎使用JSF Spring Hibernate Integration示例教程.在上一篇教程中,我们了解了如何将JSF和Spring框架集成在一 ...

  4. Struts2 Hibernate集成示例教程

    Struts2 Hibernate集成示例教程 Struts2和Hibernate都是各自领域中广泛使用的框架.今天我们将学习如何将Struts2 Web应用程序框架与Hibernate ORM框架集 ...

  5. jsf集成spring_JSF Spring Hibernate集成示例教程

    jsf集成spring Welcome to JSF Spring Hibernate Integration example tutorial. In our last tutorial, we s ...

  6. Spring MVC3 Hibernate CRUD示例应用程序

    学习从HelloWorld应用程序开始的任何Web框架都是一个好主意. 一旦我们熟悉了框架配置,最好做一个CRUD(创建,读取,更新,删除)应用程序,该应用程序涵盖Web框架的各个方面,例如验证,请求 ...

  7. HQL - Hibernate查询语言 - 示例教程

    HQL - Hibernate查询语言 - 示例教程 HQL或Hibernate查询语言是Hibernate Framework的面向对象查询语言.HQL与SQL非常相似,只是我们使用Objects而 ...

  8. Hibernate Criteria示例教程

    Hibernate Criteria示例教程 欢迎使用Hibernate Criteria示例教程.今天我们将研究Hibernate中的Criteria. Hibernate Criteria 大多数 ...

  9. adalm pluto_Apache Pluto和PHP集成示例教程

    adalm pluto Creating of PHP Portlet isn't an easy mission as no standard specification created for. ...

最新文章

  1. pycharm 运行控制台中文乱码解决办法
  2. MyEclipse将Java项目打包成jar文件的三种方法
  3. Gulp 前端自动化构建
  4. ajax布林德,布林德重返阿贾克斯引热议,多面手为何在穆帅手里无作为
  5. ActiveMQ点对点通讯,生产者-消费者
  6. j2ee和mysql怎么连接_J2EE数据库连接不再烦恼
  7. 《Python编程从入门到实践》记录之类存储在模块及其导入
  8. c++使用单向链表存储一组有序数据_初试攻略丨计算机考研中数据结构知识点总结,硬核!...
  9. C语言计算文件MD5
  10. 模块化配电系统在高密度数据中心的应用
  11. 图论--最短路径--观光旅游
  12. split方法在低版本IE浏览器上无法解析的问题
  13. swotppt模板_swot分析ppt(最好swot模板)20285.ppt
  14. 晶振匹配电容如何计算?--转载
  15. Python每日一记127文本型数字转化为数值型数字(eval函数)
  16. 我们吵的百分之九十的架都是同一个原因
  17. AttributeError: module ‘torch.distributed‘ has no attribute ‘_all_gather_base‘
  18. 走过了十年,亚信安全用什么引领云安全发展?
  19. 什么是Tomcat?用最简单的语言描述它
  20. 中文文本纠错神器Pycorrector是如何收获2000 Star的?

热门文章

  1. 利用 Cache_Lite代替codeigniter中的cache功能
  2. linux struct input_event结构体详解
  3. Linux(debian7)操作基础(五)之per调用shell命令
  4. C++——多进程并发与多线程并发
  5. HTML——初识html,元素 属性 段落 文本格式化 链接 头部入门
  6. Nginx学习之十一-Nginx启动框架处理流程
  7. 装箱与拆箱 java 1615211150
  8. django-模型类的修改-添加与删除字段
  9. python-类的装饰器
  10. django-演练-英雄-作品-对应关系