Primefaces Spring和Hibernate集成示例教程
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
分层(分层)应用程序是一种流行的设计,大多数企业应用程序都与之对齐。其中:
- Primefaces框架将用于处理所有UI问题并验证客户端的输入。
- Hibernate框架将用于传递您自己的可能是MySQL数据库的持久性存储。
- 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集成示例教程相关推荐
- primefaces教程_Primefaces Spring和Hibernate集成示例教程
primefaces教程 Welcome to the Spring Primefaces and Hibernate Integration example. Integration between ...
- Spring Hibernate集成示例教程
Spring Hibernate集成示例教程(Spring 4 + Hibernate 3和Hibernate 4) Spring是最常用的Java EE Framework之一,而Hibernate ...
- JSF Spring Hibernate集成示例教程
JSF Spring Hibernate集成示例教程 欢迎使用JSF Spring Hibernate Integration示例教程.在上一篇教程中,我们了解了如何将JSF和Spring框架集成在一 ...
- Struts2 Hibernate集成示例教程
Struts2 Hibernate集成示例教程 Struts2和Hibernate都是各自领域中广泛使用的框架.今天我们将学习如何将Struts2 Web应用程序框架与Hibernate ORM框架集 ...
- jsf集成spring_JSF Spring Hibernate集成示例教程
jsf集成spring Welcome to JSF Spring Hibernate Integration example tutorial. In our last tutorial, we s ...
- Spring MVC3 Hibernate CRUD示例应用程序
学习从HelloWorld应用程序开始的任何Web框架都是一个好主意. 一旦我们熟悉了框架配置,最好做一个CRUD(创建,读取,更新,删除)应用程序,该应用程序涵盖Web框架的各个方面,例如验证,请求 ...
- HQL - Hibernate查询语言 - 示例教程
HQL - Hibernate查询语言 - 示例教程 HQL或Hibernate查询语言是Hibernate Framework的面向对象查询语言.HQL与SQL非常相似,只是我们使用Objects而 ...
- Hibernate Criteria示例教程
Hibernate Criteria示例教程 欢迎使用Hibernate Criteria示例教程.今天我们将研究Hibernate中的Criteria. Hibernate Criteria 大多数 ...
- adalm pluto_Apache Pluto和PHP集成示例教程
adalm pluto Creating of PHP Portlet isn't an easy mission as no standard specification created for. ...
最新文章
- pycharm 运行控制台中文乱码解决办法
- MyEclipse将Java项目打包成jar文件的三种方法
- Gulp 前端自动化构建
- ajax布林德,布林德重返阿贾克斯引热议,多面手为何在穆帅手里无作为
- ActiveMQ点对点通讯,生产者-消费者
- j2ee和mysql怎么连接_J2EE数据库连接不再烦恼
- 《Python编程从入门到实践》记录之类存储在模块及其导入
- c++使用单向链表存储一组有序数据_初试攻略丨计算机考研中数据结构知识点总结,硬核!...
- C语言计算文件MD5
- 模块化配电系统在高密度数据中心的应用
- 图论--最短路径--观光旅游
- split方法在低版本IE浏览器上无法解析的问题
- swotppt模板_swot分析ppt(最好swot模板)20285.ppt
- 晶振匹配电容如何计算?--转载
- Python每日一记127文本型数字转化为数值型数字(eval函数)
- 我们吵的百分之九十的架都是同一个原因
- AttributeError: module ‘torch.distributed‘ has no attribute ‘_all_gather_base‘
- 走过了十年,亚信安全用什么引领云安全发展?
- 什么是Tomcat?用最简单的语言描述它
- 中文文本纠错神器Pycorrector是如何收获2000 Star的?