根据不同的主键产生方式,可能需要配置表名、主键字段名或序列名等信息。下面,我们以Oracle和MySql为例分别讲解使用序列及表字段产生主
键值的方式。
DataFieldMaxValueIncrementer接口定义了3个获取下一个主键值的方法:
l
int nextIntValue():获取下一个主键值,主键数据类型为int;
l
long nextLongValue():获取下一个主键值,主键数据类型为long;
l
String nextStringValue():获取下一个主键值,主键数据类型为String;
一般数据库都提供了自增键的功能,如MySql的auto_increment、SqlServerr的identity字段等。Spring允许你在应
用层产生主键值,为此定义了
org.springframework.jdbc.support.incrementer.DataFieldMaxValueIncrementer
接口,提供两种产生主键的方案:第一,通过序列产生主键;第二,通过表产生主键。
Oracle
:
<bean
id="incre"
class="org.springframework.jdbc.support.incrementer.OracleSequenceMaxValueIncrementer">
<property
name="incrementerName" value="seq_post_id"/> ①指定序列名
<property
name="dataSource" ref="dataSource"/> ②设置数据源
</bean>
MySQL
:
<bean
id="incre"
class="org.springframework.jdbc.support.incrementer.MySQLMaxValueIncrementer">
<property
name="incrementerName" value="t_post_id"/> ①设置维护主键的表名
<property
name="columnName" value="sequence_id"/>②用于生成主键值的列名
<property
name="cacheSize" value="10"/> ③缓存大小
<property
name="dataSource" ref="dataSource"/>
</bean>
分享到:
相关推荐
本文将深入探讨如何在SQL Server 2008环境下解决自增型主键的问题,以及如何在Spring框架下进行有效的主键生成策略配置。 ### SQL Server 2008自增型主键问题 SQL Server 2008中的自增型主键,通常通过设置列属性...
db-meta 是关系型数据库元数据获取工具,把数据库->schema->表->列,主键、外键、索引,触发器、存储过程、函数等抽象为对象,易于使用方便序列化。 1、 提供丰富的接口,能够获取常见的所有数据库元数据。...
在SSH(Spring、Struts、Hibernate)架构中,Hibernate作为持久层框架,主键生成策略的正确选择对系统的稳定性和可扩展性有直接影响。 1. **assigned**策略: 这种策略要求开发者在调用`save()`方法之前手动设置主...
- @SequenceGenerator:标注在主键属性上,用于设置序列生成器。 - @Length:标注在字符串类型的字段上,设置字段的最大长度。 - @NotEmpty:标注在字段上,确保字段不为null且长度不为零。 7. 示例解析: - 在...
如果你想利用Spring Data的Repository抽象,可以创建一个接口继承`RedisRepository`,并指定实体类和主键类型: ```java public interface MyRepository extends RedisRepository, String> { } ``` 这样,你就...
另外,`@GeneratedValue`用于指定主键生成策略,如自动增长、序列等。 事务管理是数据库操作的关键部分,Spring Data JPA与Spring的事务管理机制紧密结合。通过`@Transactional`注解,我们可以声明方法需要在事务...
2. **SEQUENCE**:使用数据库序列生成主键,适用于支持序列的数据库,如Oracle。 3. **TABLE**:通过数据库表生成主键,适用于不支持序列的数据库,如MySQL。 4. **UUID**:生成全局唯一的UUID字符串作为主键。 5. *...
6. **第三方库**:在编程语言层面,有许多库和框架提供了主键生成的功能,如Java的Hibernate或Spring框架,它们可以与数据库交互,自动处理主键生成。 使用"SQL主键产生器"工具的优点在于,它可以帮助开发者避免...
- **MongoConverter**:源码中可以看到,MongoConverter 负责对象与 MongoDB 文档之间的转换,包括序列化和反序列化过程。 - **SimpleMongoRepository**:这是 Spring Data 默认实现的基础 Repository,其内部调用...
同时,为了实现主键自增,我们使用了Oracle数据库的序列(sequence)和触发器(trigger)机制。序列`pda2_user_sequence`用于生成主键值,触发器`id_auto_increment_triger`则在插入新记录时自动填充ID字段。 接着...
你可以创建自己的Repository接口,扩展`RedisRepository`,然后通过注解`@RepositoryDefinition`定义实体类型和主键类型。 5. **RedisTemplate的使用** 在业务代码中,可以通过@Autowired注入`RedisTemplate`,...
10. **序列(Sequence)**:Oracle中使用序列生成唯一ID,如USER_SEQ,这是主键ID的来源。 在实际开发中,为了确保项目的顺利进行,开发者需要熟悉这些技术的使用,同时关注版本兼容性问题,避免因版本过新或过旧...
- JSON序列化与反序列化:Spring Boot默认集成了Jackson库,用于JSON数据的处理。`@ResponseBody`注解将方法返回值转换为HTTP响应体,而`@RequestBody`注解将请求体内容转换为方法参数。 - Swagger集成:为了方便...
Struts2 Spring3 Hibernate3.3框架整合,增删改查,包含有数据库建表语句,包含有JAR包,包含有源代码。...使用的是Oracle的序列来提供的主键自增,建表和建立序列的sql语句,已经放在工程里面的WEBROOT目录下面了。
本文将详细探讨如何在SSH框架(Spring、Struts、Hibernate)中的实体类使用`@IdClass`注解来定义复合主键,并阐述其使用方法及注意事项。 #### 二、复合主键的定义与应用场景 复合主键是指由两个或两个以上的字段...
- 测试数据集中的主键应与实际数据库的主键生成策略一致,以避免冲突。 - 如果有复杂的数据关系,可能需要使用更复杂的Dbunit功能,如联合查询、序列化数据等。 通过以上步骤,我们可以有效地在Spring中结合...
8. **@GeneratedValue**: 用于定义主键生成策略,例如序列、UUID、自增等。@SequenceGenerator配合使用,定义具体的序列生成器。 9. **@Column**: 用于指定实体属性与数据库表字段的映射关系,包括字段的长度、是否...
通过使用JSON,可以高效地序列化和反序列化Java对象,使得数据在服务器和客户端之间轻松传递。在描述中提到的“SSH2+JSO”可能是指SSH2框架下,利用JSON对象进行数据通信的方法。 主键和外键是数据库设计中的关键...
其次,对于`<generator class="sequence"/>`,在某些数据库(如Oracle)中,我们通常使用序列作为主键生成策略。但在MySQL这样的数据库中,应将其更改为`identity`,因为MySQL使用自动增长的ID字段作为主键。这样,...