Java学习笔记:数据校验
在后台开发过程中,需要对参数进行校验。
validation bean 是基于JSR-303标准开发出来的,使用注解的方式实现,是一套规范,可以实现参数的校验。
Hibernate Validator 实现了 validation bean,同时进行了扩展,功能强大。
看看官方文档 https://www.oracle.com/technetwork/java/api-141528.html ,在Java Enterprise Edition版中,在 Javax.validation.constraints 包下。

可以看到这个包下,都是注解类型,作用在变量上面,可以对值进行校验。
一般来说,在使用Hibernate框架时,在一些实体类的属性上面加上上面的这些注解就可以对数据的值进行校验。
Hibernate是实现了JPA(Java Persistence API)的框架,JPA 是JDK 5.0注解或者XML描述对象-关系表的映射关系(ORM),并将运行时的实体对象持久化到数据库中。通俗来说就是将Java对象存到数据库中。
ORM 对象关系映射(Object Relational Mapping)是一种程序技术,用于实现面向对象编程语言里不同类型系统的数据之间的转换。
其中 javax.persistence 包中是 用于持久性和对象/关系映射管理的API,这个包中 https://javaee.github.io/javaee-spec/javadocs/ 有 interface class enum exception annotation 等类型,其中常用的注解有@Entity表示此类是一个实体。@Column 用于指定持久属性或字段的映射列,会影响到数据库约束,这个注解中有一些属性(可以通过源码了解到,源码详细说明了每个属性的作用),可以用于设置映射到数据库字段的属性,例如长度、是否为空、精确度等。
总结一下就是:对于数据的校验分为两种,一种是在代码层面的校验,就是指数据在保存在数据库之前这个状态的的校验;另外一种是保存到数据库时,数据库会对数据进行校验,例如直接在数据库修改数据。(这为本人理解,如有错误,感谢指正)。
Java学习笔记:数据校验的更多相关文章
- GO学习笔记 - 数据校验
本文主题:基于asaskevich/govalidator实现Golang数据校验 小慢哥的原创文章,欢迎转载 目录 ▪ 一. asaskevich/govalidator介绍 ▪ 二. 字符串匹配 ...
- Java学习笔记:基本输入、输出数据操作实例分析
Java学习笔记:基本输入.输出数据操作.分享给大家供大家参考,具体如下: 相关内容: 输出数据: print println printf 输入数据: Scanner 输出数据: JAVA中在屏幕中 ...
- Java学习笔记4
Java学习笔记4 1. JDK.JRE和JVM分别是什么,区别是什么? 答: ①.JDK 是整个Java的核心,包括了Java运行环境.Java工具和Java基础类库. ②.JRE(Java Run ...
- 0032 Java学习笔记-类加载机制-初步
JVM虚拟机 Java虚拟机有自己完善的硬件架构(处理器.堆栈.寄存器等)和指令系统 Java虚拟机是一种能运行Java bytecode的虚拟机 JVM并非专属于Java语言,只要生成的编译文件能匹 ...
- 0028 Java学习笔记-面向对象-Lambda表达式
匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ ...
- 《Java学习笔记(第8版)》学习指导
<Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...
- 20145330第十周《Java学习笔记》
20145330第十周<Java学习笔记> 网络编程 网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定的位置,或者接收到指定的数据,这个就 ...
- 20145330第九周《Java学习笔记》
20145330第九周<Java学习笔记> 第十六章 整合数据库 JDBC入门 数据库本身是个独立运行的应用程序 撰写应用程序是利用通信协议对数据库进行指令交换,以进行数据的增删查找 JD ...
- 20145330第六周《Java学习笔记》
20145330第六周<Java学习笔记> . 这周算是很忙碌的一周.因为第六周陆续很多实验都开始进行,开始要准备和预习的科目日渐增多,对Java分配的时间不知不觉就减少了,然而第十和十一 ...
- 20145330第五周《Java学习笔记》
20145330第五周<Java学习笔记> 这一周又是紧张的一周. 语法与继承架构 Java中所有错误都会打包为对象可以尝试try.catch代表错误的对象后做一些处理. 使用try.ca ...
随机推荐
- SSM的例子-参考
ssm的例子:http://blog.csdn.net/double030/article/details/63683613
- C# sqlserver ExecuteNonQuery()方法详解
关于ExecuteNonQuery() 方法以前对这个一直都没在意,基本上都没有用其返回值,查了一下MSDN,如下:SqlCommand.ExecuteNonQuery 方法对连接执行 Transac ...
- vue 调用第三方接口配置
1.配置proxyTable 3.调用接口,将接口地址替换为配置的‘/api’
- 【centos】centos安装g++
gcc在Centos下的安装:使用的是以下语句:yum install gcc 以为安装g++,类似的应该使用:yum install g++ 可是提示:command is not found 查询 ...
- 使用python语言计算n的阶乘
计算“1x2x3x4” def factorial(n): result = n ,n): result *= i return resultdef main(): print factorial(4 ...
- setTimeout设置为0的意义
今天再看 Promise 代码时,有个地方用到了setTimeOut函数,但是第2个参数设为0,顿时懵逼了,这是啥意思? function resolve(newValue) { value = ne ...
- vue-router2
六,导航钩子 导航钩子函数主要是在导航跳转的时候做一些操作,比如跳转页面之前,进行判断 进而选择跳转到哪里 钩子函数根据生效范围根据其生效范围可以分为全局钩子函数,路由独享钩子函数 和 组件钩子函数. ...
- Comparing Code Playgrounds Codepen, JSFiddle, JS Bin, Dabblet, CSS Deck, and Liveweave
What is a code playground? Codepen, JSFiddle, JS Bin, Dabblet, CSS Deck, and Liveweave are HTML, CSS ...
- [z]一分钟教你知道乐观锁和悲观锁的区别
悲观锁(Pessimistic Lock), 顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到它拿到锁.传统的关系型数据 ...
- netcore webapi 用户 'IIS APPPOOL\无托管代码' 登录失败
配置在iis上,除了环境配置错误的原因还有一种可能是连接字符串的问题,iis要求使用sql server的sa或者其他登录用户. ps:连接字符串: "Default": &qu ...