我想知道数据库中设置主键的作用

我想知道数据库中设置主键的作用,第1张

1、保证每个实体的完整性;

2、加快数据库的 *** 作速度,更好地给用户带来体验;

3、在表中添加新记录时,DBMS会自动检查新记录的主键值,不允许该值与其他记录的主键值重复;

4、DBMS自动按主键值的顺序显示表中的记录。如果没有定义主键,则按输入记录的顺序显示表中的记录。

当创建或更改表时可通过定义 PRIMARY KEY 约束来创建主键。一个表只能有一个 PRIMARY KEY 约束,而且 PRIMARY KEY 约束中的列不能接受空值。

扩展资料

主键的使用规则介绍:

1、任意两行都不具有相同的主键值;

2、每行都必须具有一个主键值(主键列不允许NULL值);

3、可以使用多个列作为主键,但是所有列值得组合必须是唯一的(但单个列的值可以不唯一);

4、不更新主键列中的值;

5、不重用主键列的值;

6、不在主键列中使用可能会更改的值(例如,供应商的名字,如果供应商更改了名字,你就得改这个主键)。

参考资料来源:百度百科-数据库主键

这个很简单,直接上代码

这里通过一个接口去查询到user主键为10的数据,然后通过model模板保存并传递到前端,主要看前端怎么写,后台我感觉不是特别难,因为本人主要写后台,前端这些数据的展示一直都半懂半不懂的,所以特地来总结一下,方便以后查阅

@RequestMapping(value = "/objectaction") public String object(Model model) throws MessageException{ //从Mysql中查询 User user = itemServiceselectUser(10); modeladdAttribute("user",user); return "object"; }

下面是前端页面,so esay

<table> <tr> <td><input type="text" name="name" value="${userusername }" /></td> <td><input type="text" name="name" value="${userbirthday }" /></td> <td><input type="text" name="name" value="${usersex }" /></td> </tr> <tr> <td><input type="text" name="name" value="${useraddress }" /></td> </tr></table>

展示效果

Statement暴露以下方法可以访问到主键:ResultSet getGeneratedKeys() throws SQLException;

为了简化该方法的使用,轻松获得RDBMS生成的主键,Spring内置了KeyHolder接口及GeneratedKeyHolder实现者。

下面的类的内置方法中都使用到了KeyHolder,可以使用他来访问主键。

JdbcTemplate: int update(PreparedStatementCreator psc,KeyHolder generatedKeyHolder) throws DateAccessException;

NamedParameterJdbcTemplate的两个update方法

SimpleJdbcInsert辅助类。

SqlUpdate辅助类。

等。

DataFieldMaxValueIncrementer继承链。

能够返回全局唯一、递增的取值,这种特性是企业应用的常见需求,考虑到RDBMS的不同情况,Spring提供了DataFieldMaxValueIncrementer接口,这些方法返回唯一的、递增的、不同类型的取值。

各个数据库底层都以此类为接口,来实现具体的业务逻辑。

比如:Oracle:OracleSequenceMaxValueIncrementer实现类采用Oracle数据库支持的序列发生器。

HsqlMaxValueIncrementer采用HSQLDB的表实现,从而模拟了序列发生器的行为等。

类似的还有:

MysqlMaxValueIncrementer

DerbyMaxValueIncrementer

SybaseMaxValueIncrementer

SqlServerMaxValueIncrementer

PostgreSqlSequenceMaxValueIncrementer

DB2SequenceMaxValueIncrementer

H2SequenceMaxValueIncrementer等等

Spring JDBC对行集的支持:

RowSet,用于它能够以JavaBean方式同RDBMS数据进行交互,因此比ResultSet更为灵活。

JdbcTemplate内置queryForRowSet()方法集合。

NamedParameterJdbcTemplate内置的queryForRowSet()方法集合。

都可以很方便的获取到RowSet对象,方便数据库的 *** 作。

那个返回值1并不是主键,而是插入数据库的记录的条数。主键是自动赋值在对象中的。比如对象User,属性id为主键,name,ageUser user = new User();usersetName("test");usersetAge(16);调用mybatis的insert(user);返回值是1,该条记录的主键通过usergetId();即可获取。

数据库主键的意思是指一个列或者是多列的组合,它的值能唯一地标识表中的每一行,它的作用是可强制表的实体完整性。主键用于其他表的外键关联,以及本记录的修改与删除。在创建以及更改表的时候可以通过定义 PRIMARY KEY 约束来进行主键的创建。

扩展资料:

数据库主键的作用如下:

1、可以保证实体的完整性。

2、加快数据库的 *** 作速度。

3、在表中添加新记录时,DBMS会自动检查新记录的主键值。

4、DBMS自动按主键值的顺序显示表中的记录。

参考资料:

百度百科-数据库主键

以上就是关于我想知道数据库中设置主键的作用全部的内容,包括:我想知道数据库中设置主键的作用、数据库手动写一个32位主键ID如何显示在前端页面、jdbcTemplate插入MYSQL时怎么返回主键ID等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/10148280.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存