package com.lens.order.controller;
import com.lens.order.entity.TestOrderEntity;
import com.lens.order.service.ITestOrderService;
import com.lens.order.service.Impl.TestOrderService;
import org.dartframework.core.common.controller.BaseController;
import org.dartframework.core.common.model.json.AjaxJson;
import org.dartframework.core.util.ResourceUtil;
import org.dartframework.web.system.pojo.base.TSUser;
import org.dartframework.web.system.service.SystemService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.TransactionDefinition;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.support.DefaultTransactionDefinition;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
@Controller
@RequestMapping("/TestOrderController")
public class TestOrderController extends BaseController {
// @Override
@Resource
private PlatformTransactionManager transactionManager;
@Autowired
//private TestOrderService orderService;
private ITestOrderService orderService;
@Autowired
private SystemService systemService;
@RequestMapping(params = "Hello")
@ResponseBody
public String Hello() {
return "Hello,Lily";
}
@RequestMapping(params = "getData")
@ResponseBody
public AjaxJson getData(String id) { //测试OK
AjaxJson aj = new AjaxJson();
//CpsSaleSendoutPage cpsSaleSendoutPage = new CpsSaleSendoutPage();
//TestOrderEntity orderEntity = orderService.get() .co . .commonDao.get(TestOrderEntity.class, id);
TestOrderEntity orderEntity = orderService.get(TestOrderEntity.class, id);
if ( orderEntity==null)
{
orderEntity= new TestOrderEntity();
orderEntity.id="test001";
}
orderEntity.order_sn="v02";
orderService.save( orderEntity);
//this.get(CpsSaleSendoutEntity.class, id);
aj.setMsg("获取发货信息成功");
//aj.setObj(cpsSaleSendoutPage);
return aj;
}
@RequestMapping(params = "insertorder")
@ResponseBody
public AjaxJson InsertOrder(String id) { //测试OK
AjaxJson j = new AjaxJson();
TestOrderEntity orderEntity = new TestOrderEntity() ; //orderService.get(TestOrderEntity.class, id);
orderEntity.id="test_" + id; //人工指定,保存后还是会被覆盖
orderEntity.create_name="tany";
try {
//systemService.saveOrUpdate(orderEntity); //用此方法没有成功
systemService.save(orderEntity);
j.setSuccess(true);
j.setMsg("操作成功!");
}
catch (Exception ex){
j.setSuccess(false);
j.setMsg("error:" + ex.getMessage());
}
return j;
}
@RequestMapping(params = "updateorder")
@ResponseBody
public AjaxJson UpdateOrder(String id){ //更新
AjaxJson j = new AjaxJson();
TSUser u = ResourceUtil.getSessionUser();
//String sql1 = "update test_orders set update_by = ?, update_date = sysdate() where id = ?";
String sql1 = "update test_orders set memo = ? where id = ?";
systemService.executeSql(sql1,u.getRealName(),id);
j.setSuccess(true);
j.setMsg("操作成功!");
return j;
}
@RequestMapping(params = "updateorder2")
@ResponseBody
public AjaxJson UpdateOrder2(String id){ //更新 ,测试OK
AjaxJson j = new AjaxJson();
TestOrderEntity orderEntity = systemService.getEntity( TestOrderEntity.class, id);
if (orderEntity!=null) {
try {
//orderEntity.memo="updateorder2 v2";
systemService.saveOrUpdate(orderEntity);
j.setSuccess(true);
j.setMsg("操作成功!");
}
catch (Exception ex){
j.setSuccess(false);
j.setMsg("error:" + ex.getMessage());
}
}
else {
j.setSuccess(false);
j.setMsg("not found record");
}
return j;
}
@Transactional //控制器中写此行,事务控制不到,tany
@RequestMapping(params = "deleteorder1")
@ResponseBody
public AjaxJson DeleteOrder1(String id) { //测试不通过!
AjaxJson j = new AjaxJson();
TestOrderEntity orderEntity = orderService.get(TestOrderEntity.class, id);
if (orderEntity!=null){
systemService.delete(orderEntity);
j.setSuccess(true);
j.setMsg("操作成功!");
int a=0,b=0,c=0;
c = a / b;
}
else {
j.setSuccess(!true);
j.setMsg("记录不存在!");
}
return j;
}
@RequestMapping(params = "deleteorder2") //测试OK,但实体类中的int要改成Integer,否则为null时会出错
@ResponseBody
public AjaxJson DeleteOrder2(String id) {
String msg="";
AjaxJson j = new AjaxJson();
TestOrderEntity orderEntity=null ;
try {
orderEntity=orderService.get(TestOrderEntity.class, id);
}
catch (Exception ex){
msg= ex.getMessage();
}
DefaultTransactionDefinition defaultTransactionDefinition = new DefaultTransactionDefinition();
defaultTransactionDefinition.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
TransactionStatus status = transactionManager.getTransaction(defaultTransactionDefinition);
//原文链接:https://blog.youkuaiyun.com/quwenzhe/article/details/60308999
//
//
if (orderEntity!=null){
try {
systemService.delete(orderEntity);
j.setSuccess(true);
j.setMsg("操作成功!");
int a=0,b=0,c=0;
c = a / b;
transactionManager.commit(status);
}
catch (Exception ex){
j.setSuccess(false);
j.setMsg("error:" + ex.getMessage());
transactionManager.rollback(status);
ex.printStackTrace();
//log.error("sava *** error" + ex.toString());
}
}
else {
j.setSuccess(!true);
j.setMsg("记录不存在!");
}
return j;
}
//@Transactional //控制器中写此行,事务控制不到,tany
@RequestMapping(params = "deleteorderok")
@ResponseBody
public AjaxJson DeleteOrderOK(String id) { //测试OK
AjaxJson j = new AjaxJson();
try {
boolean yn= orderService.tranDelete(id); //在service中控制,可以成功
j.setSuccess(yn);
}
catch (Exception ex){
j.setSuccess(false);
j.setMsg("error:" + ex.getMessage());
}
return j;
}
@RequestMapping(params = "twotrandeleteorder")
@ResponseBody
public AjaxJson TwoTranDeleteOrder(String id) { //测试OK,双层事务嵌套
String msg="";
AjaxJson j = new AjaxJson();
TestOrderEntity orderEntity=null ;
try {
orderEntity=orderService.get(TestOrderEntity.class, id);
}
catch (Exception ex){
msg= ex.getMessage();
}
DefaultTransactionDefinition defaultTransactionDefinition = new DefaultTransactionDefinition();
defaultTransactionDefinition.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
TransactionStatus status = transactionManager.getTransaction(defaultTransactionDefinition);
//原文链接:https://blog.youkuaiyun.com/quwenzhe/article/details/60308999
try {
orderService.tranDelete("11");
}
catch (Exception ex){
msg= ex.getMessage();
}
//
if (orderEntity!=null){
try {
systemService.delete(orderEntity); //01 此处Service中的事务本身是提交的
j.setSuccess(true);
j.setMsg("操作成功!");
transactionManager.rollback(status); //02 在控制器中的事务又回滚,最终service中的事务也被回滚
return j;
// int a=0,b=0,c=0;
// c = a / b;
//
// transactionManager.commit(status);
}
catch (Exception ex){
j.setSuccess(false);
j.setMsg("error:" + ex.getMessage());
transactionManager.rollback(status);
ex.printStackTrace();
//log.error("sava *** error" + ex.toString());
}
}
else {
j.setSuccess(!true);
j.setMsg("记录不存在!");
}
return j;
}
@RequestMapping(params = "selectorder")
@ResponseBody //测试OK 关联查询
public AjaxJson SelectOrder(String id){
String sql = " select a.* , b.order_sn, b.ccode, b.cname\n" +
"from test_orderdetail a\n" +
"left join test_orders b on a.oid=b.id\n" +
"where a.oid='" + id + "'\n" ;
List<Map<String, Object>> mapList=systemService.findForJdbc(sql);
AjaxJson j = new AjaxJson();
j.setSuccess(true);
j.setObj( mapList );
j.setMsg("操作成功!");
return j;
}
//URL调用方法:http://localhost:8080/jinying02/TestOrderController.do?getSendoutInfo2a&id=2
@RequestMapping(params = "getSendoutInfo2")
@ResponseBody
public AjaxJson getSendoutInfo2(String id){
AjaxJson aj = new AjaxJson();
aj.setMsg("获取发货信息成功");
//aj.setObj(cpsSaleSendoutPage);
return aj;
// try {
// CpsSaleSendoutPage cpsSaleSendoutPage = cpsSaleService.getSendoutInfo(id);
// aj.setMsg("获取发货信息成功");
// aj.setObj(cpsSaleSendoutPage);
// return aj;
// } catch (Exception e) {
// e.printStackTrace();
// aj.setSuccess(false);
// aj.setMsg("获取发货信息失败!"+e.getMessage());
// return aj;
// }
}
}
相关推荐
Spring MVC高频面试题总结,面试再也不怕了
1、什么是Spring MVC? Spring MVC是一个基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,通过把模型-视图-控制器分离,将web层进行职责解耦,把复杂的web应用分成逻辑清晰的几部分,简化开发,减少出错,方便组内开发人员之间的配合。 2、Spring MVC的优点? 可以支持各种视图技术,而不仅仅局限于JSP 与Spring 框架继承(IOC、AOP) 清晰的角色分配:前端控制器(DispatcherServlet),请求到处理器映射(HandleMapping
SpringMVC-controller
controller
深入解析Spring MVC案例
本文还有配套的精品资源,点击获取 简介:Spring MVC是一个基于Java的MVC架构框架,用于创建高性能的Web应用程序。本案例详细介绍了如何使用Myeclipse搭建一个简单的Spring MVC项目,包括环境配置、项目创建、HelloWorld示例、视图解析、数据库配置及运行测试。本案例旨在帮助初学者掌握Spring MVC的基本用法,并理解其在Web开发中的应用...
事务
事务是恢复和并发控制的基本单位。 事务应该具有4个属性:原子性、一致性、隔离性、持久性。这四个属性通常称为ACID特性。 原子性(atomicity)。一个事务是一个不可分割的工作单位,事务中包括的诸操作要么都做,要么都不做。 一致性(consistency)。事务必须是使数据库从一个一致性状态变到另一个一致性状态。一致性与原子性是密切相关的。 隔离性(isolation)
python爬取淘宝数据
python爬取淘宝数据淘宝评论 淘宝评论 打开淘宝,选择打开需要爬取的商品的评论。在谷歌浏览器选择开发者工具,选择network,找到list_detail_rate.htm?itemId=624466733121,点击headers、previews,可以看见相应的评论数据。 爬取一页屏评论代码如下 import re import requests headers = { 'Referer': '在headers中', 'User-Agent': '在
从原理到实践:手把手教你用XY2-100协议控制激光振镜(含引脚定义图)
本文详细解析了XY2-100协议在激光振镜控制中的应用,从硬件接口定义到时序分析,再到Verilog硬件逻辑实现,提供了完整的开发指南。通过实际案例和优化策略,帮助开发者快速掌握高精度激光振镜控制技术,提升加工质量和效率。
SpringMVC 中的控制器的使用
文章目录1 直接通过Bean配置Controller2 使用注解 实现Controller3 RestFul风格4 接收对象 1 直接通过Bean配置Controller 在Spring配置文件中设置控制器类的xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001
ESP32IDF 通过 PCA9685控制舵机的程序bug处理
esp32 PCA9685 bug 舵机
spring springmvc 将事物管理(@Transactional)分别加在 controller和service层
spring springmvc 将事物管理(@Transactional)分别加在 controller和service层 标签: spring事物管理Transactionalcontroller和service层 2016-11-24 18:34 6322人阅读 评论(0) 收藏 举报 分类: spring springmvc
【Matlab】多旋翼无人机视觉伺服跟踪控制程序
本文介绍了基于Matlab的多旋翼无人机视觉伺服跟踪控制程序开发方法。该系统采用视觉感知、坐标转换、伺服控制和仿真验证四个核心模块,通过HOG+SVM目标检测、Shi-Tomasi特征提取和PID双闭环控制算法实现动态目标跟踪。详细阐述了相机标定、目标检测、坐标转换及伺服控制等关键环节的Matlab实现代码,并进行了仿真验证。结果表明该系统在±0.1m的跟踪精度下可实现100Hz的实时处理,适用于室内外复杂场景。文章还提出了工程应用中的优化建议,为无人机视觉伺服系统的开发提供了完整的技术方案。
Android-Zygote进程的诞生—从init到Zygote启动
Android Zygote进程启动流程解析 Android系统的Zygote进程是所有应用进程的父进程,由init进程创建。启动流程分为: 内核阶段:加载init进程(PID=1) init进程阶段: 挂载基础文件系统(tmpfs、proc等) 设置SELinux安全策略 解析init.rc配置文件 Zygote启动:init进程通过app_process启动Zygote,预加载系统资源 SystemServer:Zygote fork出系统服务进程 关键点: init是用户空间第一个进程......
Spring MVC : 控制器方法中获取当前请求对象的用法总结
1. 将请求对象作为当前控制器bean组件的属性注入,在控制器方法中可以操作请求对象 ; 例子 @Controller public class DemoController { @Autowired ServletRequest request; @RequestMapping(value = "/") public String myControlle...
【用unity实现100个游戏之2】复刻实现经典2d平台跳跃游戏《蔚蓝 Celeste》(附工程源码)
蔚蓝》是一款备受好评的独立游戏,由游戏开发工作室开发并由发行。这款游戏于2016年首次发布,并在玩家和评论界收获了广泛赞誉。蔚蓝以其独特的艺术风格和引人入胜的故事而著称。游戏以深海为背景,玩家将扮演一个能够探索水下世界的神秘生物。游戏通过惊人的视觉表现和动态的海洋生态系统为玩家带来了令人难忘的游戏体验。无论是广阔的水下景观还是充满生机的海洋生物,蔚蓝都让玩家感受到深海的神秘和美丽。蔚蓝在玩法上注重探索和解谜。玩家可以在海底环境中自由游动,发现隐藏的地点和秘密,与各种生物互动,并解决环境谜题以继续前进。
Spring MVC测试框架入门–第1部分
最新推出的主要Spring框架是Spring MVC测试框架,Spring Guys声称它是“一流的JUnit支持,可通过流畅的API测试客户端和服务器端Spring MVC代码” 1 。 在这个博客以及下一个博客中,我将看一看Spring的MVC测试框架,并将其应用于我现有的一些示例代码中,以弄清它是否能如其所愿。 已使用两种设置服务器端测试的方式来设计API。 首先,它们带有Spri...
C#实现低通和高通滤波算法
低通滤波器允许通过低于某个截止频率的信号成分,并且抑制高于该频率的成分。而高通滤波器则允许通过高于某个截止频率的信号成分,并抑制低于该频率的成分。巴特沃斯滤波器是一种对称的滤波器,具有平坦的幅度响应和最小的群延迟。低通和高通滤波是数字信号处理中常用的滤波技术,用于滤除或增强信号中的特定频率成分。在本篇文章中,我们将使用C#编程语言来实现低通和高通滤波算法。以上就是使用C#实现低通和高通滤波算法的示例代码。你可以根据自己的需求调整截止频率和采样率,将这些代码应用于你的项目中。是滤波器的截止频率,
使用 MATLAB/Simulink 对风光互补发电系统进行建模
随着全球对清洁能源的需求日益增长,风力发电和光伏发电作为两种主要的可再生能源形式,在电力供应中的占比越来越高。然而,由于风电和光伏的间歇性和不确定性,单独依赖其中任何一种能源都会给电网带来挑战。因此,风光互补发电系统(Wind-PV Hybrid System)应运而生,通过合理配置风力发电机和光伏电池板的数量,可以有效提高系统的稳定性和可靠性。此外,为了确保整个电力系统的安全稳定运行,还需要研究风光互补发电系统与主网之间的协调调度策略。本教程将详细介绍如何使用。
Spring MVC的常用注解
此注解说明Spring类的实例是一个控制器,使用@Controller注解的类不需要继承特定的父类或者实现特定的接口,相对实现Controller接口变得更加简单,而且Controller接口的实现类只能处理一个单一的请求动作。Spring使用扫描机制查找应用程序中的所有基于注解的控制...
蓝牙模块HM-10手册
蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。
Spring Framework MVC控制器方法参数详解
你是否曾经在使用Spring MVC时对控制器方法的参数感到困惑?为什么有些参数需要注解,有些不需要?Spring是如何自动将HTTP请求中的数据绑定到方法参数的?本文将深入解析Spring MVC控制器方法参数的处理机制,帮助你全面掌握这一核心功能。 通过本文,你将学到: - Spring MVC参数解析的完整工作机制 - 30+种内置参数解析器的分类和使用 - 常用注解参数的详细用法和最佳实...
TMS_WebGMaps_1.9.8.0_Full_Source
TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder
老版QQ原生表情gif动态
这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。
spring boot控制器的使用
一:1.注解 2.control注解 @Controller public class HelloController { @Value("${cupSize}") private String cupSize; @Value("${age}") private Integer age; @Value("${content}") privat...
ET2012新版免狗免安装绿色软件
ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,
Spring MVC的@ControllerAdvice应用
一 点睛 通过@ControllerAdvice,我们可以对于控制器的全局配置放在同一个位置,注解了@Controller的类的方法可使用@ExceptionHandler、@ModelAttribute、@InitBinder注解到方法上,这对所有注解了@RequestMapping的控制器内的方法有效。 @ExceptionHandler:用于全局处理控制器里的异常。 @ModelAtt...
Spring MVC中控制器方法的返回值
原文链接:http://www.yiidian.com/springmvc/return-value.html Spring MVC的控制器方法返回值可以支持多种写法,每种写法的场景和效果都不一样。下面分别来看看每种返回值的使用。 普通字符串 转发字符串 重定字符串 void ModelAndView Java对象 1 普通字符串 返回普通字符串这种情况比较常见,主要用在我们处理完业务逻辑后,...
Spring MVC中@PathVariable的用法详解
@PathVariable是Spring MVC的核心注解,用于从URL路径中提取变量值并绑定到控制器方法参数。它通过URI模板(如/users/{userId})定义占位符,支持自动类型转换和名称匹配,默认必需且常用于RESTful API的资源标识。与@RequestParam不同,@PathVariable处理路径段而非查询参数,适用于资源定位场景。该注解简化了动态URL处理,是构建语义化RESTful服务的关键工具。使用时需注意变量必需性、类型匹配以及与@RequestParam的适用场景区分。
Spring MVC 框架搭建及详解
现在主流的Web MVC框架除了Struts这个主力 外,其次就是Spring MVC了,因此这也是作为一名程序员需要掌握的主流框架,框架选择多了,应对多变的需求和业务时,可实行的方案自然就多了。不过要想灵活运用Spring MVC来应对大多数的Web开发,就必须要掌握它的配置及原理。 一、Spring MVC环境搭建:(Spring 2.5.6 + H...
spring mvc常见注解:后台接收参数
一:@RequestMapping 前台访问后台时,根据@RequestMapping内容进行控制器层的对应与函数对应 1.@RequestMapping(“exp”) 一般写于类或函数上,完全匹配,可匹配exp,可能匹配exp.json 2.@RequestMapping(“expnewword { index } /{ dbid } .html”) 一般写于函数上,index和db...
Spring MVC Controller 支持的返回类型
Spring MVC Controller中@RequestMapping的返回类型
290



被折叠的 条评论
为什么被折叠?



