SpringMVC整合Hibernate实现增删改查之按条件查询
更多精彩文章欢迎关注公众号“Java之康庄大道”
首先我贴出我项目的结构,只完成了条件查询的相关代码,增删改没有写。
1.新建一个动态Web工程,导入相应jar包,编写web.xml配置文件
- <context-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>classpath:spring-*.xml</param-value>
- </context-param>
- <listener>
- <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
- </listener>
- <listener>
- <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>
- </listener>
- <servlet>
- <servlet-name>springMVC</servlet-name>
- <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
- <init-param>
- <param-name>contextConfigLocation</param-name>
- <param-value>classpath:springmvc.xml</param-value>
- </init-param>
- <load-on-startup>1</load-on-startup>
- </servlet>
- <servlet-mapping>
- <servlet-name>springMVC</servlet-name>
- <url-pattern>/</url-pattern>
- </servlet-mapping>
2.配置springmvc.xml
- <!-- 配置自动扫描的包 -->
- <context:component-scan base-package="com.tideway.springmvc"></context:component-scan>
- <mvc:annotation-driven/>
- <!-- 配置视图解析器 -->
- <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
- <property name="prefix" value="/views/"></property>
- <property name="suffix" value=".jsp"></property>
- </bean>
hibernate配置文件:hibernate.cfg.xml
- <?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="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
- <property name="hibernate.show_sql">true</property>
- <property name="hibernate.format_sql">true</property>
- <property name="hibernate.hbm2ddl.auto">update</property>
- <mapping class="com.tideway.springmvc.entity.User"/>
- </session-factory>
- </hibernate-configuration>
配置数据源,连接池c3p0, spring-common.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:context="http://www.springframework.org/schema/context"
- xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:tx="http://www.springframework.org/schema/tx"
- xmlns:aop="http://www.springframework.org/schema/aop"
- xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-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/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
- http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
- http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">
- <!-- 配置数据源 -->
- <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
- <property name="driverClass" value="com.mysql.jdbc.Driver" />
- <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/attendance" />
- <property name="user" value="root" />
- <property name="password" value="密码" />
- </bean>
- <!-- 配置SessionFactory 通过spring提供的LocalSessionFactoryBean进行配置 -->
- <bean id="sessionFactory"
- class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
- <!-- 配置数据源 -->
- <property name="dataSource" ref="dataSource" />
- <property name="configLocation" value="classpath:hibernate.cfg.xml"></property>
- </bean>
- <!-- 配置一个事务管理器 -->
- <bean id="transactionManager"
- class="org.springframework.orm.hibernate4.HibernateTransactionManager">
- <property name="sessionFactory" ref="sessionFactory" />
- </bean>
- <!-- 添加一个通知取别名,然后决定管理哪一个事务管理器,***只是查询的话用不到事物 -->
- <tx:advice id="txAdvice" transaction-manager="transactionManager">
- <tx:attributes>
- <tx:method name="get*" read-only="true" />
- <tx:method name="*" />
- </tx:attributes>
- </tx:advice>
- <aop:config>
- <aop:pointcut expression="execution(* com.tideway.springmvc.service.*.*(..))"
- id="txPointcut" />
- <aop:advisor advice-ref="txAdvice" pointcut-ref="txPointcut" />
- </aop:config>
- </beans>
3.创建实体类User.java
- package com.tideway.springmvc.entity;
- import java.util.Date;
- import javax.persistence.Column;
- import javax.persistence.Entity;
- import javax.persistence.GeneratedValue;
- import javax.persistence.Id;
- import javax.persistence.Table;
- import org.hibernate.annotations.GenericGenerator;
- @Entity
- @Table(name="t_attendance")
- public class User {
- private int id;
- private int enID;
- private String name;
- private Date datetime;
- @Id
- @GenericGenerator(name="id",strategy="identity")
- @GeneratedValue(generator="id")
- @Column(name="id",unique=true,nullable=false)
- public int getId() {
- return id;
- }
- public void setId(int id) {
- this.id = id;
- }
- @Column(name="EnID")
- public int getEnID() {
- return enID;
- }
- public void setEnID(int enID) {
- this.enID = enID;
- }
- @Column(name="Name")
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- @Column(name="DateTime")
- public Date getDatetime() {
- return datetime;
- }
- public void setDatetime(Date datetime) {
- this.datetime = datetime;
- }
- }
4.dao层接口
- package com.tideway.springmvc.dao;
- import java.util.List;
- import com.tideway.springmvc.entity.User;
- public interface UserDao {
- /**
- * dao层接口
- * 查询打卡记录
- * @param EnID 工号
- * @param dateafter 起止日期
- * @param datebefore 截至日期
- * @return
- */
- public List<User> getUser(String EnID,String dateafter,String datebefore);
- }
5.dao层接口实现类
- package com.tideway.springmvc.daoimpl;
- import java.util.List;
- import org.hibernate.Query;
- import org.hibernate.SessionFactory;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Repository;
- import com.tideway.springmvc.dao.UserDao;
- import com.tideway.springmvc.entity.User;
- //@Repository用于标注数据访问组件,即DAO组件
- @Repository
- public class UserDaoImpl implements UserDao {
- @Autowired
- private SessionFactory sessionFactory;
- /**
- * 查询dao层接口实现类
- * 进行动态拼接查询,拼接hql语句进行多条件查询
- */
- public List<User> getUser(String EnID, String dateafter, String datebefore) {
- String hql = "from User where 1=1";
- if(EnID!=null&&!("").equals(EnID)){
- hql=hql+" and EnID='"+EnID+"'";
- }
- if(dateafter!=null&&!("").equals(dateafter)){
- hql=hql+" and datetime>='"+dateafter+"'";
- }
- if(datebefore!=null&&!("").equals(datebefore)){
- hql=hql+" and datetime<='"+datebefore+"'";
- }
- Query query = sessionFactory.getCurrentSession().createQuery(hql);
- List<User> list=query.list();
- return list;
- }
- }
6.service层接口
- package com.tideway.springmvc.service;
- import java.util.List;
- import com.tideway.springmvc.entity.User;
- public interface UserService {
- /**
- * 查询的Service层接口
- * @param EnID 工号
- * @param dateafter 起止日期
- * @param datebefore 截至日期
- * @return
- */
- public List<User> getUser(String EnID,String dateafter,String datebefore);
- }
7.service层接口实现类
- package com.tideway.springmvc.serviceimpl;
- import java.util.List;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import com.tideway.springmvc.dao.UserDao;
- import com.tideway.springmvc.entity.User;
- import com.tideway.springmvc.service.UserService;
- @Service
- public class UserServiceImpl implements UserService {
- @Autowired
- private UserDao userDao;
- /**
- * 查询Service层接口实现类
- */
- public List<User> getUser(String EnID,String dateafter, String datebefore){
- return userDao.getUser(EnID, dateafter, datebefore);
- }
- }
8.controller层
- package com.tideway.springmvc.controller;
- import java.util.ArrayList;
- import java.util.List;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Controller;
- import org.springframework.ui.Model;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestMethod;
- import com.tideway.springmvc.entity.User;
- import com.tideway.springmvc.service.UserService;
- @Controller
- public class UserController {
- @Autowired
- private UserService userService;
- /**
- * 控制器
- * @param EnID 工号
- * @param dateafter 起止日期
- * @param datebefore 截至日期
- * @param model 返回的数据
- * @return
- */
- @RequestMapping(value="/user/getuser.do",method=RequestMethod.GET)
- public String getUser(String EnID,String dateafter, String datebefore,Model model){
- try {
- List<User> list=new ArrayList<User>();
- list=userService.getUser(EnID, dateafter, datebefore);
- model.addAttribute("lists", list);
- // System.out.println("list.size="+list.size());
- } catch (Exception e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- return "list";
- }
- }
9.index.jsp查询条件表单提交
- <body>
- <form action="/SpringMVC04/user/getuser.do">
- 工号:<input type="text" name="EnID" />
- 起止日期:<input type="date"name="dateafter" />
- 截止日期:<input type="date"name="datebefore" />
- <input type="submit" value="查询" />
- </form>
- </body>
10.显示查询结果页面list.jsp
- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
- <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <title>Insert title here</title>
- </head>
- <body>
- <table border="1" style="width: 50%">
- <tr>
- <th>ID</th>
- <th>工号</th>
- <th>名字</th>
- <th>签到时间</th>
- <th>操作</th>
- </tr>
- <c:forEach var="item" items="${lists}">
- <tr>
- <td>${item.id}</td>
- <td>${item.enID}</td>
- <td>${item.name}</td>
- <td>${item.datetime}</td>
- <td><a href="">编辑</a></td>
- </tr>
- </c:forEach>
- </table>
- </body>
- </html>
SpringMVC整合Hibernate实现增删改查之按条件查询的更多相关文章
- JavaWeb系统(增删改查、多条件查询功能)
该系统是一个简单的青年服务管理系统,主要包括了较完整的常用的增删改查以及多条件查询功能,对于初学者有很大帮助. 下面是相关的Java代码.jsp页面.以及数据库的创建和相关表的设计 java代码 首先 ...
- PHP-----练习-------租房子-----增删改查,多条件查询
练习-------租房子-----增删改查,多条件 一 .题目要求: 二 .做法: [1]建立数据库 [2]封装类文件------DBDA.class.php <?php class DBDA ...
- springmvc+spring3+hibernate4框架简单整合,简单实现增删改查功能
转自:https://blog.csdn.net/thinkingcao/article/details/52472252 C 所用到的jar包 数据库表 数据库表就不用教大家了,一张表,很简 ...
- SpringMVC之简单的增删改查示例(SSM整合)
本篇文章主要介绍了SpringMVC之简单的增删改查示例(SSM整合),这个例子是基于SpringMVC+Spring+Mybatis实现的.有兴趣的可以了解一下. 虽然已经在做关于SpringMVC ...
- ssm框架(Spring Springmvc Mybatis框架)整合及案例增删改查
三大框架介绍 ssm框架是由Spring springmvc和Mybatis共同组成的框架.Spring和Springmvc都是spring公司开发的,因此他们之间不需要整合.也可以说是无缝整合.my ...
- SpringMVC,MyBatis商品的增删改查
一.需求 商品的增删改查 二.工程结构 三.代码 1.Mapper层 (1) ItemsMapperCustom.java package com.tony.ssm.mapper; import ja ...
- 基于SpringMVC的文件(增删改查)上传、下载、更新、删除
一.项目背景 摘要:最近一直在忙着项目的事,3个项目过去了,发现有一个共同的业务,那就是附件的处理,附件包括各种文档,当然还有图片等特殊文件,由于时间的关系,每次都是匆匆忙忙的搞定上线,称这项目的空档 ...
- EasyUI + Spring MVC + hibernate实现增删改查导入导出
(这是一个故事--) 前言 作为一个JAVA开发工程师,我觉得最基本是需要懂前端.后台以及数据库. 练习的内容很基础,包括:基本增删改查.模糊查询.分页查询.树菜单.上传下载.tab页 主管发我一个已 ...
- SpringMVC4+MyBatis3+SQLServer 2014 整合(包括增删改查分页)
前言 说起整合自然离开ssm,我本身并不太喜欢ORM,尤其是MyBatis,把SQL语句写在xml里,尤其是大SQL,可读性不高,出错也不容易排查. 开发环境 idea2016.SpringMVC4. ...
随机推荐
- SOAPUI使用教程-MockServices工作原理
在soapUI的可让您只需从WSDL基础服务创建一个基于WSDL服务的符合标准的模拟.被称为“MockService”,这可以直接从内部的soapUI运行,命令行浇道,或甚至标准servlet容器. ...
- 2016-2017 ACM-ICPC, NEERC, Southern Subregional Contest
A. Toda 2 按题意模拟即可. #include <bits/stdc++.h> using namespace std ; typedef pair < int , int ...
- 从零开始山寨Caffe·零:必先利其器
工作环境 巧妇有了米炊 众所周知,Caffe是在Linux下写的,所以长久以来,大家都认为跑Caffe,先装Linux. niuzhiheng大神发起了caffe-windows项目(解决了一些编译. ...
- Cenos7 编译安装 Mariadb Nginx PHP Memcache ZendOpcache (实测 笔记 Centos 7.0 + Mariadb 10.0.15 + Nginx 1.6.2 + PHP 5.5.19)
环境: 系统硬件:vmware vsphere (CPU:2*4核,内存2G,双网卡) 系统版本:CentOS-7.0-1406-x86_64-DVD.iso 安装步骤: 1.准备 1.1 显示系统版 ...
- apache 自带的ab测试
ab -c 20 -n 2000 http://192.168.1.110:8080/index.php
- NFA转DFA - json数字识别
json的主页上,提供了number类型的符号识别过程,如下: 图片引用:http://www.json.org/json-zh.html 实际上这张图片表示的是一个状态机,只是状态没有标出来.因为这 ...
- ThinkPHP 3.2.3 使用 PHPExcel 处理 Excel 表格
下载 PHPExcel(https://github.com/PHPOffice/PHPExcel) 把下载的 zip 包解压至 ./ThinkPHP/Library/Vendor 下 一.导入 Ex ...
- java基础总结——基础语法2(语句)
1.1. 判断语句(if语句) 1.1.1. If语句的三种格式: 1.1.2. if语句特点: 每一种格式都是单条语句(单条不是单行,单条是一个整体). 第二种格式与三元运算符的区别:三 ...
- Universal Link 笔记
如何实现Universal Link? 简单地说三步,1.把一个配置文件放在指定服务器根目录 2.在Xcode中设置AssociateDomain 3.安装app时,会根据Xcode中设置的Assoc ...
- Python 中的urlencode和urldecode
python中的urlencode与urldecode 发表于2013/11/13 16:04:09 79983人阅读 分类: python 当url地址含有中文,或者参数有中文的时候,这个算是很正 ...