update

Hibernate学习---第三节:映射配置文件详解

拟墨画扇 提交于 2019-12-18 05:30:43
1、映射文件,代码如下: <?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <!-- 持久化映射文件(将java对象映射到数据库表) default-access="property" 对象属性状态操作方式设置 property 表示属性需要通过 getter / setter 方法操作(默认) field 表示可以不需要通过 getter / setter 方法就可以通过反射的方式操作属性 package 指定持久化配置文件的中 class 的包路径 default-lazy="true" 指定持久化配置文件的中 class 延迟加载策略 default-cascade="none" 指定持久化配置文件的中 class 级联操作策略 --> <hibernate-mapping package="learn.hibernate.bean" default-access="property" default-cascade="none"> <!-- 1、name (可选): 持久化类(或者接口)的Java全限定名。

如何解决多线程数据库重复插入、更新问题

爱⌒轻易说出口 提交于 2019-12-18 05:20:19
文章目录 基础概念 原因分析 解决方案 多线程插入解决: 多线程更新解决 基础概念 幂等性 : 在编程中.一个幂等操作的特点是其任意多次执行所产生的影响均与一次执行的影响相同。 简单来说:幂等就是一个操作,不论执行多少次,产生的效果和返回的结果都是一样的。 幂等性操作: 1、查询操作:查询一次和查询多次,在数据不变的情况下,查询结果是一样的。select是天然的幂等操作; 2、删除操作:删除操作也是幂等的,删除一次和多次删除都是把数据删除。(注意可能返回结果不一样,删除的数据不存在,返回0,删除的数据多条,返回结果多个) ; 3.插入操作:插入情况下默认主键唯一,所以多次插入同一个数据不是幂等的 4.更新操作: 这里分两种情况: 1、update t set money=100 where id=1 2、update t set money=money+100 where id=1 第一种则是幂等的,第二种则是不幂等的 总结: 幂等与你是不是分布式高并发还有JavaEE都没有关系。关键是你的操作是不是幂等的。 要做到幂等性,从接口设计上来说不设计任何非幂等的操作即可。譬如说需求是:当用户点击赞同时,将答案的赞同数量+1。改为:当用户点击赞同时,确保答案赞同表中存在一条记录,用户、答案。赞同数量由答案赞同表统计出来。在设计系统时,是首要考虑的问题,尤其是在像支付宝,银行

spring boot+mybatis整合

♀尐吖头ヾ 提交于 2019-12-18 00:35:38
spring boot+mybatis整合   LZ今天自己搭建了下Spring boot+Mybatis,比原来的Spring+SpringMVC+Mybatis简单好多。其实只用Spring boot也可以开发,但是对于多表多条件分页查询,Spring boot就有点力不从心了,所以LZ把Mybatis整合进去,不得不说,现在的框架搭建真的是方便。话不多说,进入正题。 一、java web开发环境搭建   网上有很多教程,参考教程: http://www.cnblogs.com/Leo_wl/p/4752875.html 二、Spring boot搭建   1、Intellij idea菜单栏File->new->project。      2、选择左侧栏中spring initializr,右侧选择jdk版本,以及默认的Service URL,点击next。      /3、然后填写项目的Group、Artifact等信息,helloworld阶段选默认就可以了,点击next。      4、左侧点击Web,中间一侧选择Web,然后左侧选择SQL,中间一侧选择JPA、Mybatis、MYSQL(LZ数据库用的是mysql,大家可以选择其他DB),点击next。      5、填写Project name 等信息,然后点击Finish。      至此,一个maven

CCActionEase

送分小仙女□ 提交于 2019-12-17 22:42:51
#ifndef __ACTION_CCEASE_ACTION_H__ #define __ACTION_CCEASE_ACTION_H__ #include "CCActionInterval.h" NS_CC_BEGIN class CCObject; class CCZone; /** * @addtogroup actions * @{ */ /** @brief Base class for Easing actions @ingroup Actions */ class CC_DLL CCActionEase : public CCActionInterval { public: virtual ~CCActionEase(void); /** initializes the action */ bool initWithAction(CCActionInterval *pAction); virtual CCObject* copyWithZone(CCZone* pZone); virtual void startWithTarget(CCNode *pTarget); virtual void stop(void); virtual void update(float time); virtual CCActionInterval* reverse(void);

MySQL之事物

て烟熏妆下的殇ゞ 提交于 2019-12-17 22:36:54
事物的简介 1.事物的概念 事物是一个操作序列,该序列中的多个操作要么都做,要么都不做 是MySQL5.5之后的存储引擎所支持 2.事物的特点 a .原子性 原子是自然界中最小的颗粒,具有不可再分的特点 事物中的所有操作可以看作是一个原子,要么全部执行,要么全不执行 b .一致性 事物执行的结果必须要保证数据库中数据的一致性 c .隔离性 隔离性指各个事物的操作是互不干扰的,任意一个事物的内部操作都对其他并发的事物都不能进行干扰 d .持久性 指事物一旦提交后,对数据库中数据做出的任何改变都会永久保存 事物的控制 1.开启事物 语法:start transaction |begin 开启一个新的事物 例如:开启新事物,完成张三给李四转账200 start transaction; update account set balance=balance-200 where username='张三'; update account set balance=balance+200 where username='李四'; 注意:使用start transaction 开启一个新事物后,该事物就不会自动提交,必须手动提交 2.提交事物 语法:commit; 例如 : 开启新事物,完成张三给李四转账 200 ,提交事物 start transaction ; update account

可持久化数据结构题目泛做。

我只是一个虾纸丫 提交于 2019-12-17 18:15:18
个人理解: 每个新的线段树的一个结点保存的是1...位置 i中的数字在相应的区间上有几个。 然后我们用r-(l-1)得到的就是l...r上的中字在相应的区间中出现了几个。 题目1 POJ2104 题目大意:静态查询区间第K小值。 裸的可持久化线段树。 1 #include <cstdlib> 2 #include <iostream> 3 #include <algorithm> 4 #include <cstdio> 5 #include <cstring> 6 7 using namespace std; 8 const int N = 100000 + 5; 9 10 struct SegTree { 11 int l, r, size; 12 }Node[N * 30]; 13 14 struct data { 15 int v, pos; 16 bool operator < (const data &k) const { 17 return v < k.v; 18 } 19 }a[N]; 20 21 int n, m, rank[N], l, r, k, root[N], tot; 22 23 void build(int &o, int l, int r) { 24 o = ++ tot; 25 Node[o].l = Node[o].r = Node[o].size

PHP设计模式:观察者模式

谁都会走 提交于 2019-12-17 11:10:23
示例代码详见 https://github.com/52fhy/design_patterns 观察者模式 观察者模式(Observer)是对象的行为模式,又叫发布-订阅(Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。 观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动更新自己。 观察者模式UML图: 观察者模式需要有4个角色: Observer观察者抽象接口,只有一个待实现方法 update() ; 具体观察者(ConcreteObserver)角色:实现了抽象接口,实际应用里可能是日志观察者、短信推送观察者等等; 主题(Subject)抽象类,用于添加观察者、触发观察者; 具体主题的实现类(ConcreteSubject),通过change触发nodifyObservers方法。实际change和nodifyObservers可以合成一个。 下面以订单为例:当状态变化,需要进行相关处理,例如写日志、短信通知。 Observer观察者抽象接口: namespace Yjc\Observer; interface IObserver { public function

字典(dict)

倖福魔咒の 提交于 2019-12-17 05:57:53
字典是无序的 value可以是任意的数据对象,key必须是唯一的,必须是可hash的,大多数情况以数字和字符串的方式构成 --常见方法 查询/访问 get,[] 初始化/赋值 =,setdefault,fromkeys,zip,dict(),copy() 修改/更新 =,update 排序 sorted,sort() 删除 pop,popitem,clear,del 遍历 for key in d/d.iterkeys()/d.keys()/iter(d): for key,val in d.items()/d.viewitems(): for val in d.values()/d.viewvalues(): --初始化 >>> a={} >>> a=dict() >>> b=dict(zip(['name','age'],['qiz',20])) >>> b {'age': 20, 'name': 'qiz'} >>> b=dict(name='qiz',age=20) >>> b=dict((['name','qiz'],['age',20])) >>> bb=b.fromkeys(['first_name','last_name'],'chen') {'first_name': 'chen', 'last_name': 'chen'} >>> bb=b.fromkeys([

InnoDB——锁、事务和复制

两盒软妹~` 提交于 2019-12-17 02:14:55
锁 数据库系统使用锁是为了支持对共享资源进行并发访问,提供数据的完整性和一致性。 InnoDB存储引擎中的锁 共享锁(S Lock),允许事务读一行数据 排他锁(X Lock),允许事务删除或更新一行数据 兼容性: S与S可以兼容 X不与任何锁兼容 InnoDB支持多粒度锁定,也就是允许行级和表级的锁同时存在。实现方式为通过意向锁(Intention Lock):如果需要对最细粒度进行加锁,需要在上层粒度加意向锁。 具体举例,如果需要对行加X锁,需要对表、页依次加IX锁。当意向锁遇到等待时,必须等待结束后才能继续对下级加锁。如准备加对一行有S锁的行加S锁,行记录因为原来就有S锁,所以表和页都已经存在了IS锁,首先新的IS锁加在表上,因为IS、IS锁兼容,可以加上;然后再看页锁,同样IS、IS兼容,可以加上;最后看行锁IS与S兼容,那么行记录可以加上S锁。对同样这行有S锁的行加X锁,先加表IX锁,IX与IS兼容,可以加上,页同样,最后IX锁与行记录上的S锁不兼容,因此要等待S锁释放后才能加上X锁。 一致性非锁定读 一致性非锁定读(consistent nonlocking read)是指InnoDB存储引擎通过行多版本控制(multi version)的方式来读取当前执行时间数据库中行的数据。在行记录正在执行DELETE或UPDATE时执行读操作,不会等待锁释放

ubuntu永久进入命令行模式

徘徊边缘 提交于 2019-12-16 19:25:59
在文本编辑器中打开默认的GRUB配置文件。 sudo gedit /etc/default/grub 查找以GRUB_CMDLINE_LINUX_DEFAULT开头的行,并用“#”注释这行。这会禁止初始屏幕,而启动详细模式。 更改 GRUBCMDLINELINUX="" 成: GRUB_CMDLINE_LINUX="text" 接下来取消 “#GRUB_TERMINAL=console” 的注释。 更新后的GRUB配置看上去像下面这样。 最后,使用 update-grub 命令来基于这些更改重新生成/boot下的GRUB2配置文件。 sudo update-grub 来源: https://www.cnblogs.com/songxiaonan/p/7357613.html