ZK7+Spring4+Hibernate4框架整合并实现基本查询
2017-08-03 10:18
435 查看
框架环境组件版本:ZK 7.0.0 、Spring 4.0.6、Hibernate 4.2.2 。
第一次将这三个版本搭配到一起,组合的过程中,解决了很多次的jar包冲突,最终以下jar包可以完美契合。
ZK7所需jar包:点击下载ZK7所需jar包
Spring4所需jar包:点击下载Spring4所需jar包
Hibernate4所需jar包:点击下载Hibernate4所需jar包
下面开始整合,开发工具用的是Eclipse,数据库用的是MySQL:
1、新建ZK Project ,/WEB-INF/lib下会自动出现一些ZK项目所必需的jar包,不用管它。将下载的所有jar包都导入lib文件夹,然后Build Path。
2、在/WEB-INF下新建Spring的配置文件:applicationContext.xml,文件详细内容如下(注意修改数据库的参数):
3、修改/WEB-INF下,ZK项目的配置文件:web.xml,详细内容如下:
4、新建Hibernate的配置文件:User.hbm.xml,详细内容如下:
5、实体类:User.java,详细代码如下:
6、业务层接口:UserService.java,详细代码如下:
7、业务层的定位类:ServiceLocator.java,详细代码如下:
8、业务层实现类:UserServiceImpl.java,详细代码如下:
9、持久层文件:UserDao.java,详细代码如下:
10、ZK的UI交互类:ListUser.java,详细代码如下:
11、资源包根目录下的日志配置文件:log4j.properties,详细代码如下:
12、前台ZUL页面:index.zul,详细代码如下:
搭好之后,整个项目的目录结构是这个样子的:
That`s all.
第一次将这三个版本搭配到一起,组合的过程中,解决了很多次的jar包冲突,最终以下jar包可以完美契合。
ZK7所需jar包:点击下载ZK7所需jar包
Spring4所需jar包:点击下载Spring4所需jar包
Hibernate4所需jar包:点击下载Hibernate4所需jar包
下面开始整合,开发工具用的是Eclipse,数据库用的是MySQL:
1、新建ZK Project ,/WEB-INF/lib下会自动出现一些ZK项目所必需的jar包,不用管它。将下载的所有jar包都导入lib文件夹,然后Build Path。
2、在/WEB-INF下新建Spring的配置文件:applicationContext.xml,文件详细内容如下(注意修改数据库的参数):
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.springframework.org/schema/beans" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:cache="http://www.springframework.org/schema/cache" xmlns:p="http://www.springframework.org/schema/p" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache-4.0.xsd"> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName"> <value>com.mysql.jdbc.Driver</value> </property> <property name="url"> <value>jdbc:mysql://127.0.0.1:3306/zsh_test</value> </property> <property name="username"> <value>root</value> </property> <property name="password"> <value>123456</value> </property> </bean> <bean id="factory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> <property name="mappingResources"> <list> <value>com/zsh/model/User.hbm.xml</value> </list> </property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> org.hibernate.dialect.MySQLDialect </prop> <prop key="hibernate.show_sql"> true </prop> <prop key="hibernate.transaction.factory_class"> org.hibernate.transaction.JDBCTransactionFactory </prop> </props> </property> <property name="dataSource"> <ref bean="dataSource"/> </property> </bean> <bean id="userDao" class="com.zsh.dao.UserDao"> <property name="sessionFactory"> <ref bean="factory" /> </property> </bean> <bean id="userService" class="com.zsh.service.impl.UserServiceImpl"> <property name="ud"> <ref bean="userDao"/> </property> </bean> </beans>
3、修改/WEB-INF下,ZK项目的配置文件:web.xml,详细内容如下:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"> <display-name>ZshTest</display-name> <listener> <description>Used to cleanup when a session is destroyed</description> <display-name>ZK Session cleaner</display-name> <listener-class>org.zkoss.zk.ui.http.HttpSessionListener</listener-class> </listener> <servlet> <description> The ZK loader for ZUML pages</description> <servlet-name>zkLoader</servlet-name> <servlet-class>org.zkoss.zk.ui.http.DHtmlLayoutServlet</servlet-class> <init-param> <param-name>update-uri</param-name> <param-value>/zkau</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet> <servlet> <description> The asynchronous update engine for ZK</description> <servlet-name>auEngine</servlet-name> <servlet-class>org.zkoss.zk.au.http.DHtmlUpdateServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>zkLoader</servlet-name> <url-pattern>*.zul</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>zkLoader</servlet-name> <url-pattern>*.zhtml</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>auEngine</servlet-name> <url-pattern>/zkau/*</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> <welcome-file>default.html</welcome-file> <welcome-file>default.htm</welcome-file> <welcome-file>default.jsp</welcome-file> <welcome-file>index.zul</welcome-file> </welcome-file-list> </web-app>
4、新建Hibernate的配置文件:User.hbm.xml,详细内容如下:
<?xml version="1.0"?> <!-- User.hbm.xml --> <!DOCTYPE hibernate-mapping SYSTEM "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd" > <hibernate-mapping package="com.zsh.model"> <class name="User" table="user" lazy="false"> <id name="id" type="int"> <generator class="increment"/> </id> <property name="name" /> <property name="surname"/> </class> </hibernate-mapping>
5、实体类:User.java,详细代码如下:
package com.zsh.model; public class User { private int id ; private String name; private String surname; 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 String getSurname() { return surname; } public void setSurname(String surname) { this.surname = surname; } }
6、业务层接口:UserService.java,详细代码如下:
package com.zsh.service; import java.util.List; import com.zsh.model.User; public interface UserService { public List getAllUsers(); }
7、业务层的定位类:ServiceLocator.java,详细代码如下:
package com.zsh.service; import org.hibernate.SessionFactory; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.zsh.service.UserService; public class ServiceLocator { private static ApplicationContext ctx; static { ctx = new ClassPathXmlApplicationContext("../applicationContext.xml"); } private ServiceLocator() { } public static SessionFactory getSessionFactory() { return (SessionFactory) ctx.getBean("factory",SessionFactory.class); } public static UserService getUserManager() { return (UserService) ctx.getBean("userService",UserService.class); } }
8、业务层实现类:UserServiceImpl.java,详细代码如下:
package com.zsh.service.impl; import com.zsh.dao.UserDao; import com.zsh.model.User; import com.zsh.service.UserService; import java.util.*; public class UserServiceImpl implements UserService { private UserDao ud; public UserDao getUd() { return ud; } public void setUd(UserDao ud) { this.ud = ud; } public List getAllUsers() { return this.ud.findAll(User.class); } }
9、持久层文件:UserDao.java,详细代码如下:
package com.zsh.dao; import java.util.List; import org.springframework.orm.hibernate4.support.HibernateDaoSupport; public class UserDao extends HibernateDaoSupport { public void saveOrUpdate(Object ob) { super.getHibernateTemplate().saveOrUpdate(ob); } public void delete(Object ob) { super.getHibernateTemplate().delete(ob); } @SuppressWarnings("unchecked") public Object find(Class clazz, Long id) { Object ob = super.getHibernateTemplate().load(clazz,id); return ob; } @SuppressWarnings("unchecked") public List findAll(Class clazz) { List list = super.getHibernateTemplate().find(" from "+clazz.getName()); return list; } }
10、ZK的UI交互类:ListUser.java,详细代码如下:
package com.zsh.ui; import com.zsh.service.ServiceLocator; import java.util.*; import com.zsh.service.UserService; import com.zsh.model.User; import org.zkoss.zul.Label; import org.zkoss.zul.Listbox; import org.zkoss.zul.Listcell; import org.zkoss.zul.Listitem; import com.zsh.model.User; import com.zsh.service.UserService; public class ListUser extends Listbox { public void onCreate() { UserService us = ServiceLocator.getUserManager(); Collection allUsers = us.getAllUsers(); Iterator it = allUsers.iterator(); while(it.hasNext()) { User user = (User) it.next(); Long id = (long) user.getId(); String name = user.getName(); String surname = user.getSurname(); Listitem listitem = new Listitem(); listitem.setValue(id); listitem.setParent(this); Listcell nameCell = new Listcell(name); nameCell.setParent(listitem); Listcell surnameCell = new Listcell(surname); surnameCell.setParent(listitem); } } }
11、资源包根目录下的日志配置文件:log4j.properties,详细代码如下:
# $Id: Action.java 502296 2007-02-01 17:33:39Z niallp $ # # Licensed to the Apache Software Foundation (ASF) under one # or more contributor license agreements. See the NOTICE file # distributed with this work for additional information # regarding copyright ownership. The ASF licenses this file # to you under the Apache License, Version 2.0 (the # "License"); you may not use this file except in compliance # with the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, # software distributed under the License is distributed on an # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. log4j.rootLogger = WARN, stdout log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.appender.stdout.Threshold = WARN log4j.appender.stdout.Target = System.out log4j.appender.stdout.layout = org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern = %d{ISO8601} %-5p [%F:%L] : %m%n
12、前台ZUL页面:index.zul,详细代码如下:
<!-- user.zul --> <vbox> <listbox id="userList" width="800px" rows="5" use="com.zsh.ui.ListUser"> <listhead> <listheader label="Name"/> <listheader label="Surname"/> </listhead> </listbox> </vbox>
搭好之后,整个项目的目录结构是这个样子的:
That`s all.
相关文章推荐
- spring整合ehcache 注解实现查询缓存,并实现实时缓存更新或删除 写在前面:上一篇博客写了spring cache和ehcache的基本介绍,个人建议先把这些最基本的知识了解了才能对今天
- Struts2+Hibernate4+Spring4框架整合搭建Java项目原型
- Spring3+Hibernate4整合(一):基本框架搭建
- 原创springmvc+spring3+hibernate4框架整合,实现增删改查功能
- springmvc+spring3+hibernate4框架简单整合,简单实现增删改查功能
- SpringMVC4+Spring4+Hibernate4框架整合
- Struts2+Hibernate4+Spring4框架整合搭建Java项目原型
- 搭建SSH整合框架步骤(Struts2+Spring4+Hibernate4)
- maven整合:最新ssm框架实现spring4.2,springmvc4.2,mybatis3.2
- 最近学习框架做了一个小网站,基本功能都实现了但是分页没办法用框架思想实现,查了资料找到一个不错的,修改了下分享下
- 机房收费系统之组合查询:基本字符串拼接方法和存储过程实现
- ASP EF框架,部分列查询。linq表达式和lamb表达式两种方式实现
- Springboot从易到难(基本页面显示到框架整合、数据交互)
- Spring整合Mybaits实现ehcache 注解查询缓存
- SSH:利用Struts2+Hibernate4+Spring4+SQLServer框架,搭建一个前后端web网站(2)
- Hibernate4实战 之第六部分:基本实现原理
- Spring Boot 整合 Elasticsearch,实现 function score query 权重分查询
- 基于SSM框架实现数据库的基本功能(一)
- 通过bboss persistent框架实现数据库分页查询功能
- MyEclipse 2017 整合SSH三大框架 到登录功能的实现(附源码)