
这两个互相不可取代,不存在设置了一个就不需要另一个道理。
详细解释:
unique=true是指这个字段的值在这张表里不能重复,所有记录值都要唯一,就像主键那样。
nullable=false是这个字段在保存时必需有值,不能还是null值就调用save去保存入库。
这两个用法是不同的,需要看个人需要,互相不可取代,根据个人需要可以两个都设置也可以只设置其中一个。
hibernate常用方法介绍:
delete(Object entity) 删除指定的持久化实例
在程序中一般先用 AssertnotNull和 AssertisTrue断言entity是否为空 和 entity的id是否大于0,否则事务回滚。再用get(Class entityClass,Serializable id,LockMode lockMode)加锁查询出持久化实例,一般用lockModeupdate悲观锁,最后用delete(Object entity)来删除此实例。
deleteAll(Collection entities) 删除集合内全部持久化实例entities必须为持久化实例,否则报数据库异常错误。
find(String queryString) 根据HQL查询字符串来返回实例集合find方法在执行时会先查找缓存,如果缓存找不到再查找数据库,如果再找不到就会返回null。
get(Class entityClass,Serializable id)根据主键加载特定持久化实例在程序中一般先用 AssertisTrue断言id是否大于0,若大于0继续执行,若查到数据则返回实例,否则返回空
不同于load,load若有数据则返回实例,否则报出ObjectNotFoundEcception异常,相比来说get效率高些。
save(Object entity) 保存新的实例,在程序中一般先用 AssertnotNull断言实体是否为空,在进行保存。
1、说明:创建数据库 Create DATABASE database-name 2、说明:删除数据库 drop database dbname 3、说明:备份sql server --- 创建 备份数据的 device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1dat' --- 开始 备份 BACKUP DATABASE pubs TO testBack 4、说明:创建新表 create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],) 根据已有的表创建新表: A:create table tab_new like tab_old (使用旧表创建新表) B:create table tab_new as select col1,col2… from tab_old definition only 5、说明:删除新表 drop table tabname 6、说明:增加一个列 Alter table tabname add column col type 注:列增加后将不能删除。DB2中列加上后数据类型也不能改变,唯一能改变的是增加varchar类型的长度。 7、说明:添加主键: Alter table tabname add primary key(col) 说明:删除主键: Alter table tabname drop primary key(col) 8、说明:创建索引:create [unique] index idxname on tabname(col…) 删除索引:drop index idxname on tabname 注:索引是不可更改的,想更改必须删除重新建。 9、说明:创建视图:create view viewname as select statement 删除视图:drop view viewname 10、说明:几个简单的基本的sql语句 选择:select from table1 where 范围 插入:insert into table1(field1,field2) values(value1,value2) 删除:delete from table1 where 范围 更新:update table1 set field1=value1 where 范围 查找:select from table1 where field1 like ’%value1%’ (所有包含‘value1’这个模式的字符串)---like的语法很精妙,查资料! 排序:select from table1 order by field1,field2 [desc] 总数:select count as totalcount from table1 求和:select sum(field1) as sumvalue from table1 平均:select avg(field1) as avgvalue from table1 最大:select max(field1) as maxvalue from table1 最小:select min(field1) as minvalue from table1[separator] 11、说明:几个高级查询运算词 A: UNION 运算符 UNION 运算符通过组合其他两个结果表(例如 TABLE1 和 TABLE2)并消去表中任何重复行而派生出一个结果表。当 ALL 随 UNION 一起使用时(即 UNION ALL),不消除重复行。两种情况下,派生表的每一行不是来自 TABLE1 就是来自 TABLE2。 B: EXCEPT 运算符 EXCEPT 运算符通过包括所有在 TABLE1 中但不在 TABLE2 中的行并消除所有重复行而派生出一个结果表。当 ALL 随 EXCEPT 一起使用时 (EXCEPT ALL),不消除重复行。 C: INTERSECT 运算符 INTERSECT 运算符通过只包括 TABLE1 和 TABLE2 中都有的行并消除所有重复行而派生出一个结果表。当 ALL 随 INTERSECT 一起使用时 (INTERSECT ALL),不消除重复行。 注:使用运算词的几个查询结果行必须是一致的。 12、说明:使用外连接 A、left outer join: 左外连接(左连接):结果集几包括连接表的匹配行,也包括左连接表的所有行。 SQL: select aa, ab, ac, bc, bd, bf from a LEFT OUT JOIN b ON aa = bc B:right outer join: 右外连接(右连接):结果集既包括连接表的匹配连接行,也包括右连接表的所有行。 C:full outer join: 全外连接:不仅包括符号连接表的匹配行,还包括两个连接表中的所有记录。 select语句:[()表示空格 以下表的名称以 表1 为例] 1,select from 表的名称[表1] 意思是:从表1中查询它的全部内容。 其中:表示全部内容。如果不查询表1中的全部内容,那么查询什么就把什么发在的位置上。例如: select name from 表1 其中的name就是要查询的一项内容。 如果要查询的内容是多项那么用逗号隔开,例如: select name,age from 表1 2,select top 一个数字 from 表1 意思是:从表1中查询前 X 项的全部内容。 可以用表1中的内容表示。意思是:从表1中查询前 X 项某一项的内容。而不是全部内容。 3,select from 表1 where 表中某一项满足的条件。例如: Select from 表1 where submit_date<#2003-11-1#意思是: 从表1中查询满足sumit_date在2003-11-1之前的全部内容。 select from 表1 where 表中某一项满足的条件 and 另一项内容满足的条件。例如: Select from 表1 where submit_date<#2003-11-1# and real_name=“建波” 。意思是: 从表1中查询满足sumit_date在2003-11-1之前和real_name="建波"的全部内容 4,select from 表1 where 表1中某一项满足的条件 like "关键字"。例如: select form 表1 where real_name like "勇"。意思是: 从表1中查询real_name中有 关键字 “勇”的全部内容。 5,select from 表1 order by order 某一项内容 升降顺序。例如: Select from 表1 order by real_name asc 升序排列 Select from 表1 order by real_name desc 降序排列 意思是 从表1中按照 real_name 的升降顺序查询 6,Select from 表1 order by real_name desc,submit_date asc 如果有按多个字段排序,中间用逗号隔开 7,查询满足条件的记录的总数 select count () as total from 表1 where 某一项内容满足的条件 (计数) (总数) Select count () as total from 表1 where submit_date<#2003-11-1#。意思是: 从表1中查询满足sumit_date在2003-11-1之前的总数 8,select sum (某一项) as total 某一项,average(某一项) as average 某一项 from 表1 group by class。例如: Select sum (grade) as total_grade,average(grade) as average_grade from 表1 group by class。意思是: 从表1中查询这个班 grade 的总数 和 这个班 grade 的平均数 Insert语句 主要的功能是向数据库添加新的信息 语法是:insert into 表1 (字段1,字段2,……) value (字段1德值,字段2的值,……) 例如: (1)插入user_name字段: Insert into users(user_name)values("wuyuanzhi") (2)只插入user_name和real_name字段 Insert into users (user_name,real_name) values("yuanzhi","远志") 说明:user_name 是主键,必须插入值,而且还不能跟原来的用户名 重复。 (3)只插入user_name 和 submit_date 字段 insert into users (user_name,submit_date) value ("yuanzhi",#2007-01-01#) (4)假如在users表中增加一个年龄字段age,为数字类型,则为:insert into users (user_name,age) value ("yuanzhi",23) (5)在users表中增加一条完整的记录: insert into users (user_name,password,real_name,tel,email,submit-date) value("yuanzhi","2468912340","远 志","15001016610","wuyuanzhi226@163com",#2007-01-02#) Delete 语句 作用是:可以删去表中无用德记录 语法:delete from 表1 [where 条件] 说明:1,where 条件与select中的用法是一样的,凡是符合条件的记录都会被删除,如果没有符合条件的记录则不删除 2,如果省略where条件,将删除所有数据。 下面是常用的例子: (1)删除user_name为"yuanzhi"的用户 delete from 表1 where user_name="yuanzhi" (2)删除2003年1月1日前注册,并real_name为 "李亚" 的用户 Delete from 表1 where submit_date<#2003-01-01# and real_name="李亚" (3)删除表中所有的数据 Delete from 表1 Update 语句 在实际生活中,数据信息在不断变化,例如用户表中,电话可能会经常变化,在这个时候就可以使用update语句来实现更新数据的功能。 语法:update 数据库名 set 字段1=字段值1,字段2=字段2,……[where 条件] 例如(1)修改user_name为 "yuanzhi" 的用户的电话和e-mail地址。 update 表1 set tel="15001016610",e-mail="wuyuanzhi226@163com" where user_name="yuanzhi" (2)将所有2003年一月一日前注册日期统一更改为2003年一月一日。 update users set submit_date=#2003-01-01# where submit_date<#2003-01-01# (3)假如有年龄字段age,将所有的人的年龄增加10岁 update 表1 set age=age+10这些都是常用的,找你有用的慢慢看哈
unique英 [juˈni:k] 美 [juˈnik]
adj唯一的,仅有的; 独一无二的,独特的; 不平常的,特别的; 超绝;
[例句]For indexes that are not unique, the number of index keys is less than
the number of records
对于那些不是唯一的索引,索引键的数量要少于记录的数量。
[其他]形近词: comique perique
vector,stack,quere,list是STL里的容器,本质上都是模板类。它们实现了方便易用且安全性高的数据结构。经典用法有push(),pop(),insert()什么的。而unique()则是STL里的泛型算法,可以对vector,stack,queue这些数据结构里的元素进行去重复 *** 作。还有很多其他的泛型算法,什么排序啊(sort()),合并啊等等。对不起楼主,我是凭记忆组织语言,所以比较口语化,不够严谨,只是可以给你启发或者线索
altertable的是一个附加的约束[IX_aUNIQUE
(
[A1]
VV1]
)
在表中的列AA1VV1添加一个UNIQUE约束,约束命名IX_a的
以上就是关于hibernate如果设置了unique=true,还有必要设置nullable=false吗全部的内容,包括:hibernate如果设置了unique=true,还有必要设置nullable=false吗、求数据库常用语句。。。最好有解析的。、unique是什么意思等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)