四
今日目标
- 事务处理
概念介绍
什么是事务处理?
事务处理就是要保持数据库的安全性。
事务要么完全地执行,要么完全地不执行。
事务处理可以确保除非事务性单元内的所有操作都成功完成。
IDEA操作
事务处理
第一步
事务处理是保持数据库的安全性的一种处理方法,所以SpringBoot中,要部署好了Mybatis和MybatisGenerator。
SpringBoot中要完成xml,properties,dao,entity,mapper/*.xml,mybatisGeneratorConfig.xml的配置,可以参考上面的文章。
底层的数据库和表也要建好。
第二步
事务一般不放在controller文件夹中,新建src/main/java/com/example/demo/service/TransactionTestService.java,代码如下:
package com.example.demo.service; import com.example.demo.dao.UserDao; import com.example.demo.entity.User; import com.sun.org.apache.xpath.internal.operations.Bool; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; @Service public class TransactionTestService { @Resource UserDao userDao; public Boolean test1(){ User user=new User(); user.setPassword("test1-password"); user.setName("test1"); userDao.insertUser(user); System.out.println(1/0); return true; } @Transactional public Boolean test2(){ User user=new User(); user.setPassword("test2-password"); user.setName("test2"); userDao.insertUser(user); System.out.println(1/0); return true; } }
可以看到test1和test2函数的区别就在于一个有@Transactional,一个没有。
这也就决定了一个可以test1的插入可以执行,是不安全的。
test2是事务性的,数据库表中不会出现name=test2的数据。
第三步
编写TransactionTestController.java,代码如下:
package com.example.demo.controller; import com.example.demo.service.TransactionTestService; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; @Controller public class TransactionTestController { @Resource private TransactionTestService transactionTestService; @GetMapping("/transactionTest") @ResponseBody public String transactionTest(){ transactionTestService.test1(); transactionTestService.test2(); return "done"; } }
通过访问/transactionTest执行test1方法和test2方法。
第四步
访问localhost:8080/transactionTest会发现报错,不过只观察数据库中的变化就可以了。
可以发现:test1中即使发生了错误,数据还是被插入了。而test2中发生了错误,事务回滚,插入没有执行。
Ajax
Ajax 技术使得网站与用户间有了更友好的交互效果,比较常见的借助 Ajax 技术实现的功能有列表上拉加载分页数据、省市区三级联动、进度条更新等等,这些都是借助 Ajax 技术在当前页面即可完成的功能,即使有数据交互也不会跳转页面,整体交互效果有了很大的提升。
RESTful
目前比较流行的一套接口规范就是 RESTful api,REST(Representational State Transfer),中文翻译叫"表述性状态转移"
重温Bootstrap和JQuery
敬请期待
AdminLTE
可能要做一些SpringBoot实操教程的改变了,像我这样的初学者还是应该跟着教程然后一步一步来
如果图片无法加载,可以访问我的原博客