springboot 集成hibernate 集成struts2
springboot集成hibernate
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-jpa</artifactId></dependency>
如果引入以上依赖报错的话还可以引入spring-boot-starter-jdbc
entity类代码:
package cn.et.ssha.entity;import java.io.Serializable;
import java.util.Date;import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;@Entity
public class Emp implements Serializable{@Id@GeneratedValue(strategy = GenerationType.AUTO)private Short empno;@private String ename;private String job;private Short mgr;private Date hiredate;private Double sal;private Double comm;private Short deptno;public Short getEmpno() {return empno;}public void setEmpno(Short empno) {this.empno = empno;}public String getEname() {return ename;}public void setEname(String ename) {this.ename = ename;}public String getJob() {return job;}public void setJob(String job) {this.job = job;}public Short getMgr() {return mgr;}public void setMgr(Short mgr) {this.mgr = mgr;}public Date getHiredate() {return hiredate;}public void setHiredate(Date hiredate) {this.hiredate = hiredate;}public Double getComm() {return comm;}public void setComm(Double comm) {this.comm = comm;}public Double getSal() {return sal;}public void setSal(Double sal) {this.sal = sal;}public Short getDeptno() {return deptno;}public void setDeptno(Short deptno) {this.deptno = deptno;}
}
dao层需要继承一个类 extends CrudRepository<Emp, Short>
dao层代码
package cn.et.ssha.dao;import java.util.List;import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.query.Param;import cn.et.ssha.entity.Emp;public interface EmpDao extends CrudRepository<Emp, Short>{@Query("select count(*) from Emp where ename like :ename")public int total(@Param("ename") String ename);/** nativeQuery=true 意思是将sql语句交给jdbc* */@Query(value="select * from (select t.*,rownum rn from emp t where ename like :en) where rn>=:startIndex and rn<=:endIdx",nativeQuery=true)public List<Emp> query(@Param("en")String ename,@Param("startIndex")int startIndex,@Param("endIdx")int endIdx);}
service代码
package cn.et.ssha.service.impl;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;import cn.et.ssha.dao.EmpDao;
import cn.et.ssha.entity.Emp;
import cn.et.ssha.service.EmpService;
import cn.et.ssha.util.PagerEntity;
import cn.et.ssha.util.PagerUtils;
//表示使用事物
@Transactional
@Service
public class EmpAjaxServiceImpl implements EmpService {@Autowiredprivate EmpDao dao;/* 查询*/@Transactional(readOnly=true) //事物只读 其它默认使用事物 这个是只读public PagerEntity query(Emp emp,int curpage){if(emp.getEname()==null || emp.getEname()==""){emp.setEname("%%");}else{emp.setEname("%"+emp.getEname()+"%");}int sizetotal = dao.total(emp.getEname());//当前页数 每页今条 总条数PagerEntity pe = PagerUtils.calc(curpage, 10, sizetotal);List<Emp> list = dao.query(emp.getEname(), pe.getStartIndex(),pe.getEndIndex());pe.setData(list);return pe;}/* *添加 */public void add(Emp emp){dao.save(emp);}/* * 删除*/public void dele(Emp emp){dao.delete(emp);}/* * 修改*/public void update(Emp emp){dao.save(emp);}}
springboot集成struts2
依赖
<dependency><groupId>org.apache.struts</groupId><artifactId>struts2-core</artifactId><version>2.3.28</version>
</dependency>
<dependency><groupId>org.apache.struts</groupId><artifactId>struts2-spring-plugin</artifactId><version>2.3.28</version>
</dependency>
<dependency><groupId>org.apache.struts</groupId><artifactId>struts2-convention-plugin</artifactId><version>2.3.28</version>
</dependency>
相当于生成web的java代码如下
package cn.et.ssha.util;import java.util.ArrayList;
import java.util.List;import org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;/*** * 相当于一个web的配置文件。* */
@Configuration
public class WebXmlConfig {/*** * 根据官网提供的方法我们可以通过以下的方法配置一个web里的过滤器。* 相当于在web文件中配置了一个过滤器叫StrutsPrepareAndExecuteFilter* * 我们也可以直接返回StrutsPrepareAndExecuteFilter 这里默认拦截的就是所有。* * 也可以直接返回一个过滤器 * @Bean * public StrutsPrepareAndExecuteFilter filterRegistrationBean(){* return new StrutsPrepareAndExecuteFilter();* * }* * *///官网的方法配置过滤器@Beanpublic FilterRegistrationBean filterRegistrationBean() {FilterRegistrationBean frgb = new FilterRegistrationBean();frgb.setFilter(new StrutsPrepareAndExecuteFilter());List list = new ArrayList();list.add("/*");list.add("*.action");frgb.setUrlPatterns(list);return frgb;}
}
struts.xml
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN""http://struts.apache.org/dtds/struts-2.3.dtd"><struts><!-- Struts2创建bean交给spring来创建 --><constant name="struts.objectFactory" value="spring"></constant> <!-- 扫描struts2的注解 还有一个默认是扫描以Action结尾的 如果需要修改的话我们可以配置<constant name="struts.convention.action.suffix" value="Action"/> --><constant name="struts.convention.package.locators.basePackage" value="cn"/><constant name="struts.convention.package.locators" value="cn"/> <!-- struts2默认是不扫描我们tomcar加载的类 所以我们要将类加载器改为false --><constant name="struts.convention.exclude.parentClassLoader" value="false" />
</struts>
配置完成之后使用struts2 的方式取值 可以使用属性驱动也可以使用模型驱动
controller 此处用的是模型驱动
package cn.et.ssha.controller;import java.io.IOException;
import java.io.UnsupportedEncodingException;import javax.servlet.ServletOutputStream;import net.sf.json.JSONObject;import org.apache.struts2.ServletActionContext;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.Result;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;import cn.et.ssha.entity.Emp;
import cn.et.ssha.service.EmpService;
import cn.et.ssha.util.PagerEntity;import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import com.opensymphony.xwork2.Preparable;@Controller
@Namespace("/")
public class EmpAjaxAction extends ActionSupport implements ModelDriven<Emp>,Preparable{@Autowiredprivate EmpService es;private Emp emp;private Integer curpage;public Integer getCurpage() {return curpage;}public void setCurpage(Integer curpage) {this.curpage = curpage;}@Action(value="/query")public String query() throws IOException{if(emp==null || curpage==null){emp=new Emp();curpage=1;}PagerEntity pe = es.query(emp,curpage);String json = JSONObject.fromObject(pe).toString();ServletOutputStream os = ServletActionContext.getResponse().getOutputStream();os.write(json.getBytes("utf-8"));return NONE;}/** * json方法*public void query(Emp emp,OutputStream os){if(emp==null || curpage==null){emp=new Emp();curpage=1;}String json=JSONObject.fromObject(pe).toString();os.write(json);}* * */@Action("addmybaits")public void add() throws IOException{ServletOutputStream os = ServletActionContext.getResponse().getOutputStream();try {es.add(emp);os.write("1".getBytes("utf-8"));} catch (Exception e) {os.write("0".getBytes("utf-8"));}}@Action("delemybaits")public void dele() throws IOException{ServletOutputStream os = ServletActionContext.getResponse().getOutputStream();try {es.dele(emp);os.write("1".getBytes("utf-8"));} catch (Exception e) {os.write("0".getBytes("utf-8"));}}@Action("upmybaits")public void update() throws UnsupportedEncodingException, IOException{ServletOutputStream os = ServletActionContext.getResponse().getOutputStream();try {es.update(emp);os.write("1".getBytes("utf-8"));} catch (Exception e) {os.write("0".getBytes("utf-8"));}}@Overridepublic Emp getModel() {return emp; }@Overridepublic void prepare() throws Exception {emp = new Emp();}}
springboot 集成hibernate 集成struts2相关推荐
- Struts2 Hibernate集成示例教程
Struts2 Hibernate集成示例教程 Struts2和Hibernate都是各自领域中广泛使用的框架.今天我们将学习如何将Struts2 Web应用程序框架与Hibernate ORM框架集 ...
- SpringBoot集成Hibernate
Hibernate是什么? Hibernate与MyBatis都是流行的持久层开发框架,只不过Hibernate是全自动ORM框架,不需要关心sql编写. Hibernate 是一个高性能的对象/关系 ...
- SpringBoot 中JPA集成PostgreSql(详细步骤)避坑!
SpringBoot 中JPA集成PostgreSql(详细步骤) 什么是JPA?(Java Persistence API) Spring Data JPA, part of the larger ...
- SpringBoot12 QueryDSL01之QueryDSL介绍、springBoot项目中集成QueryDSL、利用QueryDSL实现单表RUD、新增类初始化逻辑...
1 QueryDSL介绍 1.1 背景 QueryDSL的诞生解决了HQL查询类型安全方面的缺陷:HQL查询的扩展需要用字符串拼接的方式进行,这往往会导致代码的阅读困难:通过字符串对域类型和属性的不安 ...
- IntelliJ IDEA Spring Boot(5) 集成Hibernate
上一篇集成了mybatis.这一篇我来集成hibernate,顺道把ehcache缓存也集成进去.下篇我们再讲 mybatis与ehcache集成 pom依赖增加 <dependency> ...
- Eclipse juno 中安装 JBoss Tools,集成Hibernate
在Eclipse中集成Hibernate工具可以帮助开发者根据数据库生成映射文件.注释代码以及反向工程. Hibernate Tools作为JBoss Tools的核心组件,已经被捆绑在JBoss T ...
- SpringBoot 2.x 集成 Redis
SpringBoot 2.x 集成 Redis windows上搭建redis环境 添加依赖 此处redis客户端使用jedis. <!-- redis --> <dependenc ...
- jsf集成spring_JSF – PrimeFaces和Hibernate集成项目
jsf集成spring 本文介绍了如何使用JSF,PrimeFaces和Hibernate开发项目. 下面是一个示例应用程序: 二手技术: JDK 1.6.0_21 Maven的3.0.2 JSF 2 ...
- springboot security 权限校验_十二、SpringBoot 优雅的集成Spring Security
前言 至于什么是Spring security ,主要两个作用,用户认证和授权.即我们常说的,用户只有登录了才能进行其他操作,没有登录的话就重定向到登录界面.有的用户有权限执行某一操作,而有的用户不能 ...
最新文章
- KVM中Virtio网络的演化之路
- html设置团偏跟着移动,雷阵雨云团向东偏南移动,北京两地将有强降雨+7级大风+冰雹!...
- echarts无数据时显示无数据_钣金无腻子数据还原
- winform空间批量控制
- Date函数基础知识整理
- 它利用计算机和现代通信技术,现代通信技术复习概论
- Visinets:一个可以让你的信号通路图动起来的网站!
- 【今日CS 视觉论文速览】1 Jan 2019
- 广度优先搜索(BFS)——抓住那头牛(POJ 4001)
- 罗永浩或将找陈冠希做代言人
- 201671010128 2017-10-08《Java程序设计》之接口与内部类
- 转载Java 反射机制
- javascript 弹出层(警告框)的制作(css元素居中、javascript元素居中)
- 【4-11】读书笔记 |《推荐系统实践》- 个性化推荐系统总结
- STM32MP157AAA3裸机点灯(汇编)
- 开关插头插座寿命试验机标准
- linux系统安装word,如何在Linux中安装FreeOffice 2018
- Google首页电吉他Doodle源代码
- 【STM32】STM32F103C8T6+nrf24l01收发示例
- eggjs框架学习心得