Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
howtodoinjava-zh
提交
7c2b76f0
H
howtodoinjava-zh
项目概览
OpenDocCN
/
howtodoinjava-zh
大约 1 年 前同步成功
通知
1
Star
82
Fork
8
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
H
howtodoinjava-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
7c2b76f0
编写于
6月 04, 2020
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
2020-06-04 21:51:28
上级
12efdee8
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
34 addition
and
31 deletion
+34
-31
docs/misc/146.md
docs/misc/146.md
+10
-10
docs/misc/147.md
docs/misc/147.md
+14
-11
docs/misc/148.md
docs/misc/148.md
+7
-7
docs/misc/149.md
docs/misc/149.md
+2
-2
docs/misc/150.md
docs/misc/150.md
+1
-1
未找到文件。
docs/misc/146.md
浏览文件 @
7c2b76f0
...
...
@@ -2,9 +2,9 @@
> 原文: [https://howtodoinjava.com/hibernate/hibernate-4-using-in-memory-database-with-hibernate/](https://howtodoinjava.com/hibernate/hibernate-4-using-in-memory-database-with-hibernate/)
在我们工作的组织中,朋友经常不允许甚至访问必要的开发人员工具,例如本地数据库安装。 这也可能是由于相当正当的原因(有时似乎只是荒谬的)。 在此
**Hiberate 内存数据库**
教程中,我提供了一个无需安装任何数据库即可测试您的 Hiberate 代码的示例。
在我们工作的组织中,朋友经常不允许甚至访问必要的开发人员工具,例如本地数据库安装。 这也可能是由于相当正当的原因(有时似乎只是荒谬的)。 在此
**Hiberate 内存数据库**
教程中,我提供了一个无需安装任何数据库即可测试您的 Hiberate 代码的示例。
This can help you in writing your application’s unit-testcases as database access could be seen as dependency by some architects.
这可以帮助您编写应用程序的单元测试用例,因为某些架构师将数据库访问视为依赖。
## 1\. 内存数据库实现
...
...
@@ -28,11 +28,11 @@ Connection c = DriverManager.getConnection("jdbc:hsqldb:mem:howtodoinjava", "sa"
```
这里要注意的主要事情是“
**mem:howtodoinjava**
”。 这里
***mem**
*
表示使用内存数据库,而不是任何物理数据库。
这里要注意的主要事情是“
`mem:howtodoinjava`
”。 这里
`mem`
表示使用内存数据库,而不是任何物理数据库。
#### 1.3 需要默认的用户名和密码
请注意,尽管您将必须提供默认的用户名“
sa
”和一个空白密码才能连接到数据库,否则将出现以下异常。
请注意,尽管您将必须提供默认的用户名“
`sa`
”和一个空白密码才能连接到数据库,否则将出现以下异常。
```
java
Caused
by:
java
.
sql
.
SQLException
:
Access
is
denied
...
...
@@ -49,7 +49,7 @@ Caused by: java.sql.SQLException: Access is denied
现在,在下面的源代码文件中查找使用 hibernate 进行内存数据库访问的示例。
#### 2.1
hibernate.cfg.xml
#### 2.1
`hibernate.cfg.xml`
```
java
<?
xml
version
=
"1.0"
encoding
=
"utf-8"
?>
...
...
@@ -72,7 +72,7 @@ Caused by: java.sql.SQLException: Access is denied
```
#### 2.2\.
HibernateUtil.java
#### 2.2\.
`HibernateUtil.java`
```
java
package
com.howtodoinjava.demo.util
;
...
...
@@ -119,7 +119,7 @@ public class HibernateUtil
```
#### 2.3\.
EmployeeEntity.java
#### 2.3\.
`EmployeeEntity.java`
```
java
package
com.howtodoinjava.demo.entity
;
...
...
@@ -193,7 +193,7 @@ public class EmployeeEntity implements Serializable
现在测试上面的代码。
#### 2.4\.
TestHibernate.java
#### 2.4\.
`TestHibernate.java`
```
java
package
com.howtodoinjava.test
;
...
...
@@ -236,9 +236,9 @@ Hibernate: insert into Employee (EMAIL, FIRST_NAME, LAST_NAME, ID) values (?, ?,
![
hibernate-hsqldb-in-memory-database-example
](
img/d11655b353131fc3858837f22c91b16a.png
)
如果在设置本示例的 maven 依赖项方面需要任何帮助,请遍历
pom.xml
文件。
如果在设置本示例的 maven 依赖项方面需要任何帮助,请遍历
`pom.xml`
文件。
#### 3.1
pom.xml
#### 3.1
`pom.xml`
```
java
<
project
xmlns
=
"http://maven.apache.org/POM/4.0.0"
xmlns:
xsi
=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:
schemaLocation
=
"
http:
//maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd;
...
...
docs/misc/147.md
浏览文件 @
7c2b76f0
# Hibernate
Validator
– Java Bean 验证示例
# Hibernate
验证器
– Java Bean 验证示例
> 原文: [https://howtodoinjava.com/hibernate/hibernate-validator-java-bean-validation/](https://howtodoinjava.com/hibernate/hibernate-validator-java-bean-validation/)
使用
**Hiberate 验证器**
验证 Java bean 字段的 Java 示例。
**Bean 验证 API 2**
(
`JSR-380`
)提供了一些流行的注释,可以将这些注释附加到每个 Bean 属性,以保持数据完整性。
使用
**Hiberate 验证器**
验证 Java bean 字段的 Java 示例。
**Bean 验证 API 2**
(
`JSR-380`
)提供了一些流行的注释,可以将这些注释附加到每个 Bean 属性,以保持数据完整性。
## 1\. Maven 依赖
以下是必需的
**Hiberate 验证器 maven 依赖项**
。
以下是必需的
**Hiberate 验证器 maven 依赖项**
。
Bean 验证允许错误消息中包含表达式。 要解析这些表达式,我们必须添加对表达式语言 API 以及该 API 实现的依赖。 我使用 Jboss 的
`javax.el`
中实现的
`javax.el-api`
规范添加了它们。
...
...
@@ -48,7 +48,7 @@ Bean 验证允许错误消息中包含表达式。 要解析这些表达式,
```
## 2\. Hibernate
Validator
示例
## 2\. Hibernate
验证器
示例
#### 2.1 带有验证注释的模型
...
...
@@ -85,7 +85,7 @@ public class User {
```
#### 2.2
讯息资源
#### 2.2
消息属性
默认情况下,所有消息都是从类路径中的
`ValidationMessages.properties`
文件解析的。 如果文件不存在,则不会发生
[
消息解析
](
https://howtodoinjava.com/spring-core/resolving-text-messages-in-spring-resourcebundlemessagesource-example/
)
。
...
...
@@ -214,15 +214,16 @@ Validator validator = Validation.byDefaultProvider()
现在,当我们知道如何以编程方式使用 Hiberate 验证器时。 让我们看一下可以在 bean 类中使用的所有注释。
#### 5.1 Bean 验证注
释
#### 5.1 Bean 验证注
解
| 注解 | 描述 |
| --- | --- |
|
`@Digits(integer=, fraction=)`
| 检查注释的值是否为最多
`integer`
位和小数
`fractional`
位的数字。 |
|
`@Email`
| 检查指定的字符序列是否为有效的电子邮件地址。 |
|
`@Max(value=)`
| 检查带注释的值是否小于或等于指定的最大值。 |
|
`@Min(value=)`
| 检查带注释的值是否大于或等于指定的最小值 |
|
`@NotBlank`
| 检查带注释的字符序列不为空,并且修剪后的长度大于 0。 |
|
`@NotEmpty`
| 检查带注释的元素是否不为
null
或为空。 |
|
`@NotEmpty`
| 检查带注释的元素是否不为
`null`
或为空。 |
|
`@Null`
| 检查带注释的值是否为空 |
|
`@NotNull`
| 检查带注释的值不为空 |
|
`@Pattern(regex=, flags=)`
| 考虑给定的
`flag`
匹配项,检查带注释的字符串是否与正则表达式
`regex`
匹配 |
...
...
@@ -233,11 +234,12 @@ Validator validator = Validation.byDefaultProvider()
|
`@FutureOrPresent`
| 检查带注释的日期是现在还是将来。 |
|
`@PastOrPresent`
| 检查带注释的日期是过去还是现在。 |
#### 5.2 Hiberate 验证器特定的注
释
#### 5.2 Hiberate 验证器特定的注
解
除了 Bean
Validation API 定义的约束之外,Hibernate Validator
还提供了以下有用的自定义约束。
除了 Bean
验证 API 定义的约束之外,Hibernate 验证器
还提供了以下有用的自定义约束。
| Annotation | Description |
| 注解 | 描述 |
| --- | --- |
|
`@CreditCardNumber( ignoreNonDigitCharacters=)`
| 检查带注释的字符序列是否通过了
[
Luhn 校验和
](
https://en.wikipedia.org/wiki/Luhn_algorithm
)
测试。 请注意,此验证旨在检查用户错误,而不是信用卡有效性! |
|
`@Currency(value=)`
| 检查带注释的
`javax.money.MonetaryAmount`
的货币单位是否为指定货币单位的一部分。 |
|
`@EAN`
| 检查带注释的字符序列是否为有效的
[
EAN
](
https://en.wikipedia.org/wiki/International_Article_Number_%28EAN%29
)
条形码。 默认值为 EAN-13。 |
...
...
@@ -254,4 +256,5 @@ Validator validator = Validation.byDefaultProvider()
参考文献:
[
Bean 验证 2.0
](
https://beanvalidation.org/
)
[
Hiberate 验证器注释处理器
](
http://hibernate.org/validator/tooling/
)
\ No newline at end of file
[
Hiberate 验证器注解处理器
](
http://hibernate.org/validator/tooling/
)
\ No newline at end of file
docs/misc/148.md
浏览文件 @
7c2b76f0
# Hibernate
Validator CDI – @HibernateValidator
示例
# Hibernate
验证器 CDI – `@HibernateValidator`
示例
> 原文: [https://howtodoinjava.com/hibernate/hibernate-validator-cdi/](https://howtodoinjava.com/hibernate/hibernate-validator-cdi/)
注入默认 Java bean 验证类实现的 Hiberate 验证器 CDI 的 Java 示例。
`javax.validation.ValidatorFactory`
和
[
`javax.validation.Validator`
](
https://docs.oracle.com/javaee/7/api/javax/validation/Validator.html
)
具有
**hibernate-validator-cdi**
依赖性。 如果应用具有多个
[
`org.hibernate.validator.cdi.HibernateValidator`
](
https://docs.jboss.org/hibernate/validator/5.1/api/org/hibernate/validator/cdi/HibernateValidator.html
)
之类的验证器实现,还应该学习注入专门的验证器。
注入默认 Java bean 验证类实现的 Hiberate 验证器 CDI 的 Java 示例。
`javax.validation.ValidatorFactory`
和
[
`javax.validation.Validator`
](
https://docs.oracle.com/javaee/7/api/javax/validation/Validator.html
)
具有
`hibernate-validator-cdi`
依赖性。 如果应用具有多个
[
`org.hibernate.validator.cdi.HibernateValidator`
](
https://docs.jboss.org/hibernate/validator/5.1/api/org/hibernate/validator/cdi/HibernateValidator.html
)
之类的验证器实现,还应该学习注入专门的验证器。
请注意,如果您的应用在开箱即用的环境中运行,那么您无需添加其他依赖项即可运行此示例。 例如,Spring 框架隐式提供了此类 CDI 基础结构,因此请不要在 Spring 框架中使用
[
Hiberate 验证器 CDI
](
http://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/#section-integration-with-cdi
)
。
请注意,如果您的应用在开箱即用的环境中运行,那么您无需添加其他依赖项即可运行此示例。 例如,Spring 框架隐式提供了此类 CDI 基础结构,因此请不要在 Spring 框架中使用
[
Hiberate 验证器 CDI
](
http://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/#section-integration-with-cdi
)
。
对于其他应用,例如独立的 Java 应用,可能需要它才能使用注释创建
`HibernateValidator`
。
## 1\. Hibernate
Validator
CDI Maven 依赖关系
## 1\. Hibernate
验证器
CDI Maven 依赖关系
下面列出了与 Hiberate 验证器一起使用的所有必需依赖项。
...
...
@@ -66,7 +66,7 @@
```
## 2\.
用验证注释注释
的模型类
## 2\.
带有验证注解
的模型类
一个带有字段验证注释的简单 Java 类。
...
...
@@ -108,7 +108,7 @@ public class User {
```
## 3\. 注入默认
值并 Hiberate javax.validation.Validator
## 3\. 注入默认
的和 Hiberate `javax.validation.Validator`
使用
`@Inject`
注释注入
`ValidatorFactory`
和
`Validator`
。 注入的 Bean 是默认的验证器工厂实例和验证器实例。
...
...
@@ -121,7 +121,7 @@ private static Validator validator;
```
如果您正在使用多个 Bean 验证供应器,则可以通过使用
`@HibernateValidator`
限定符注释注入点来确保注入了 Hibernate
Validator 的 factory 和 validator
。
如果您正在使用多个 Bean 验证供应器,则可以通过使用
`@HibernateValidator`
限定符注释注入点来确保注入了 Hibernate
验证器的工厂和验证器
。
```
java
import
org.hibernate.validator.cdi.HibernateValidator
;
...
...
docs/misc/149.md
浏览文件 @
7c2b76f0
# [已解决]
– UnexpectedTypeException-
找不到约束验证器
# [已解决]
`UnexpectedTypeException` -
找不到约束验证器
> 原文: [https://howtodoinjava.com/hibernate/unexpectedtypeexception-error/](https://howtodoinjava.com/hibernate/unexpectedtypeexception-error/)
...
...
@@ -26,7 +26,7 @@ Exception in thread "main" javax.validation.UnexpectedTypeException: HV000030: N
```
例如,您收到上述错误,您尝试将
`@NotBlank`
注释放在任何非字符串类型的字段中,例如
`java.lang.Long`
类型。
例如,您收到上述错误,您尝试将
`@NotBlank`
注释放在任何非字符串类型的字段中,例如
`java.lang.Long`
类型。
```
java
public
class
User
{
...
...
docs/misc/150.md
浏览文件 @
7c2b76f0
# Hiberate 注释
\ No newline at end of file
# Hiberate 注解
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录