mysql
菊花喷射式Y
主角.
展开
-
mysql关于锁问题的延伸
乐观锁认为对同一数据的并发操作不会总发生,属于小概率事件,不用每次都对数据上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,也就是 不采用数据库自身的锁机制,而是通过 程序来实现。2. 乐观锁的时间戳机制 : 时间戳和版本号机制一样,也是在更新提交的时候,将当前数据的时间戳和更新之前取得的时间戳进行比较,如果两者一致则更新成功,否则就是版本冲突。你能看到乐观锁就是程序员自己控制数据并发操作的权限,基本是通过给数据行增加一个戳(版本号或者时间戳),从而证明当前拿到的数据是否最新。原创 2023-02-06 00:00:24 · 112 阅读 · 1 评论 -
@RestController事物@Transactional(rollbackFor = Exception.class)注解无效
例如:“下单购买”例子:购买一般涉及用户、商品库存两个概念,一般情况下,我们需要处理两个表,用户“下单购买”先修改用户表把相应的余额减除(操作1),然后商品库表把对应商品库存减1或减n(操作2);如果不加事物,由于特殊情况,可能操作1成功,操作2失败,就造成用户余额扣除,却未扣除商品库存....加上事物注解,就有回滚效果,发生了特殊情况,造成异常,会直接将操作1和操作2回滚至方法开始之前的状态.一般的请求如查询列表、查询订单这类查询请求,不涉及修改数据库的操作,一般是不会有问题的;原创 2023-02-02 10:50:44 · 377 阅读 · 0 评论 -
@ServerEndpoint 不能注入 @Autowired问题解析
ServerEndpoint修饰生成多对象,对应多个长链接;而spring是单例模式,Autowired属于spring修饰词,Autowired生成为单例,自然无用,websocket修饰Autowired的属性对象,也是null空的。解决方式:1直接创建生成对象;原创 2023-02-01 22:44:42 · 734 阅读 · 0 评论 -
java后台系统与app交互优化记录(不定时更新)
redis里缓存对应的各种实体类的变动,尤其比较重要的信息的变动,如:用户的余额,变动应先变动数据库里用户的余额,变动完之后,也要及时刷新redis缓存的用户余额信息(及token对应的用户信息)Jedis,当然jedis需要配置如:权限验证,键值码过期时间等。app经常访问的信息可以放redis缓存。后台与redis交互可以使用。原创 2023-02-01 11:13:44 · 133 阅读 · 0 评论 -
jpa的saveAll和deleteAll方法效率及优化
jpa自带的接口实现方法:saveAll和deleteAll比较慢;究其原因是因为用了for循环,for循环嵌套save或delete方法,效率自然很慢,用一万条数据实测了下:saveAll用了大约4秒,deleteAll用了大约8秒。可以通过修改jpa底层save语句拼接,代码太长,不放了;原创 2023-01-31 14:58:42 · 2723 阅读 · 0 评论 -
cascade = CascadeType.REMOVE,及联删除无效果
/ 也无效果,只会删除主类,子类不会删除;因为query执行是直接在mysql层面执行crud操作,不涉及及联相关;// 即使设置了cascade = CascadeType.REMOVE及联删除权限,//设置了cascade = CascadeType.REMOVE。//通过jpa自带的delete、deleteAll接口方法,// 可以及联删除子类;因为jpa自带了及联相关处理。//通过query语句删除记录,// 删除主实体类,service服务类删除方法如下。原创 2023-01-31 14:48:36 · 617 阅读 · 0 评论 -
@Transactional在@controller和@Component和@WebServlet不回滚处理
原因:启动程序,现根据spring监听创建spring上下文,在spring扫描包的时候,会将TransactionServiceImpl对象放进spring上下文中。问题就在这里,因为事务在spring上下文中配置,但是获取到的对象时在springmvc上下文中,所以spring无法创建代理对象,因此@Transactional注解最终不会生效。Transactional放在这几个类的方法,但是这些类生成的代理类,没有生成事物注解相关的代理类。原创 2023-01-19 14:27:39 · 457 阅读 · 0 评论 -
mysql添加外健ERROR 1824: Failed to open the referenced table
两个表引擎不一样,修改一致就可以。最好都是innoDB引擎,其他引擎功能少.原创 2023-01-12 15:40:41 · 1915 阅读 · 1 评论