开发工具分享
  • 首页
  • 计算科学
  • 文化旅游
  • 项目和网站
    • OSSEZ 计算技术
    • USRealEstate 社区
    • 地区文化
    • CWIKI.US
    • BUG.OSSEZ.COM
    • RSS.OSSEZ.COM
CWIKIUS.CN
一个有独立思考和温度的清新站
Computer Science

Spring Boot 和 Hibernate 的 H2 数据库配置来进行启动测试

希望在 Spring Boot 中配置 H2 数据库来进行功能测试。 如何进行配置能来让启动的时候自动载入数据和进行测试? Maven 依赖 如果你的 Spring 项目中没有添加 H2 的依赖,你需要在 Maven 中添加。 使用的参数为: <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>1.4.199</version> </dependency> 配置 application.properties 在 Spring 配置文件中进行一些配置能够在 Spring Boot 中载入数据并且进行调用。 我们可以使用下面的一些配置: spring.h2.console.enabled=true spring.h2.console.path=/h2-console spring.datasource.driverClassName=org.h2.Driver spring.datasource.url=jdbc:h2:mem:scodb;DB_CLOSE_ON_EXIT=FALSE spring.datasource.username=sa spring.datasource.schema=classpath:db/schema.sql 配置和参数的说明。 spring.h2.console.enabled 在 Spring Boot 后启用控制台,用户可以通过 Web 界面来访问 H2 的控制台。 spring.h2.console.path 网页界面中通过 URL 可以访问控制台的地址,这个地址可以自由和任意修改。 spring.datasource.driverClassName H2 的 JDBC 驱动名称,你需要配置这个才能够通过 JDBC 访问启动后的 H2 数据库。 spring.datasource.url Spring 项目中数据源的连接参数,在这个参数中你定义了一个数据库的名称为 scodb,在通过网页界面进行访问的时候,会提醒你输入连接参数。 在输入连接参数的时候,你需要输入和上面连接参数一致的配置。 spring.datasource.username 访问数据库的用户名,你可以输入任何名称,在通过网页访问的时候,你需要输入的用户名为这个。 如果你不指定密码参数的话,那么密码就为空。 spring.datasource.schema Spring 启动的时候需要载入的 sql 文件。这个文件将会在 Spring 启动后被执行,创建数据库表和插入测试数据等。 Hibernate 参数配置 假设我们的 Hibernate 使用的是 HikariCP 连接池。 我们需要为你的 Hibernate 配置以下的连接参数。 hibernate.properties 文件 hibernate.connection.driver_class=org.h2.Driver hibernate.connection.url=jdbc:h2:mem:scodb;DB_CLOSE_ON_EXIT=FALSE hibernate.hikari.dataSource.user=sa hibernate.dialect = org.hibernate.dialect.H2Dialect 上面的连接参数为Hibernate 需要的,你需要先进行配置,才能让 HikariCP 连接池获得数据源。 hibernate.cfg.xml Hibernate 配置参数 通过下面的配置来对 Hibernate 的连接池参数进行配置。 <property name="hibernate.connection.provider_class">com.zaxxer.hikari.hibernate.HikariConnectionProvider </property> <property name="hibernate.hikari.minimumIdle">5</property> <property name="hibernate.hikari.maximumPoolSize">10</property> <property name="hibernate.hikari.idleTimeout">30000</property> 首先你需要提供连接池的 类。 hibernate.hikari.minimumIdle 这个配置参数连接池中保持的最少的连接数。 hibernate.hikari.maximumPoolSize 连接池中保持最多的连接数 hibernate.hikari.idleTimeout 在连接池中一个连接允许最长被限制的时间。 如果一切顺利,当你启动 Spring Boot 的时候,你应该能够在控制台上看到连接池中的连接保持情况。 https://www.ossez.com/t/spring-boot-hibernate-h2/608

2020年10月23日 0Comments 939Browse 0Like Read more
Computer Science

Spring 配置的 H2 控制台 frameOptions 导致无法访问

Spring H2 控制台访问登录以后的内容无法显示。 访问的时候会看到下面的情况。     解决办法 这个主要是 Spring 安全设置的问题。 在 Spring 中的 frameOptions 配置为 iframe 的安全配置。 X-Frame-Options 头主要是为了防止站点被别人劫持,所以 iframe 将会在 Spring Security 中默认是拒绝设置的。以防止点击劫持攻击。 要修改这个配置,你可以在 Spring 安全配置中进行下面的配置: httpSecurity.headers().frameOptions().disable(); 上面的选项是完全允许 iframe 。 或者你也可以配置下面: httpSecurity.headers().frameOptions().sameOrigin(); X-Frame-Options 有三个值: DENY 表示该页面不允许在 frame 中展示,即便是在相同域名的页面中嵌套也不允许。 SAMEORIGIN 表示该页面可以在相同域名页面的 frame 中展示。 ALLOW-FROM uri 表示该页面可以在指定来源的 frame 中展示。     因为我们的控制台配置的是 localhost, 因此我们可以使用 sameOrigin(),因此产生的效果是一样。 https://www.ossez.com/t/spring-h2-frameoptions/607

2020年10月23日 0Comments 910Browse 0Like Read more
Computer Science

H2 数据库插入时间的方法

如果希望向 H2 中插入时间,你可以使用下面的方法插入: ('CWIKIUS.CN', 'client-name-01.csv', '65', 'NEW','2020-10-22 12:47:52.690', CURRENT_TIMESTAMP()), 需要注意的是,上面有 2 个字符串。 如果你希望插入字符串定义的时间。你需要的格式: '2020-10-22 12:47:52.690' 如果你希望插入当前的时间,你可以用时间函数 CURRENT_TIMESTAMP()     上面的时间函数,将会向数据库表中插入当前的时间。 https://www.ossez.com/t/h2/606

2020年10月23日 0Comments 642Browse 0Like Read more
Computer Science

Spring 数据初始 H2 后进行数据查询提示 Schema not found 错误

在运行测试的错误有提示下面的错误: Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Schema "DBO" not found; SQL statement: select myscofile0_.id as id1_1_0_, myscofile0_.dateC as datec2_1_0_, myscofile0_.dateM as datem3_1_0_, myscofile0_.uuid as uuid4_1_0_, myscofile0_.client_id as client_i5_1_0_, myscofile0_.file_name as file_nam6_1_0_, myscofile0_.file_row_count as file_row7_1_0_, myscofile0_.file_status as file_sta8_1_0_ from dbo.MYSCOFILE myscofile0_ where myscofile0_.id=? [90079-200] at org.h2.message.DbException.getJdbcSQLException(DbException.java:576) at org.h2.message.DbException.getJdbcSQLException(DbException.java:429) at org.h2.message.DbException.get(DbException.java:205) at org.h2.message.DbException.get(DbException.java:181) at org.h2.command.Parser.readTableFilter(Parser.java:1940) at org.h2.command.Parser.parseSelectFromPart(Parser.java:2827) 问题和解决 出现上面的问题是在 JPA 实例的时候配置了 schema = "dbo, 但是 H2 数据库进行初始化的时候没有创建 schema。     针对上面的问题,你需要在你的 H2 初始化的时候创建一个 schema。 创建 schema 的脚本为: CREATE SCHEMA IF NOT EXISTS DBO; SET SCHEMA DBO; 通过添加下面的脚本,将会在 H2 中创建 Schema,然后可以通过控制台中查看创建的情况。     在完成上面的配置后,再重新运行你的测试,你就会看到上面的错误已经没有错误了。 https://www.ossez.com/t/spring-h2-schema-not-found/605

2020年10月22日 0Comments 949Browse 0Like Read more
Computer Science

Spring 数据初始化的时候没有执行 SQL

Spring Boot 项目在启动的时候可以对 H2 中的数据库进行初始化。 一般来说我们会定义下面的参数: spring.datasource.data=classpath:h2-data.sql 但是在 Spring Boot 项目运行以后,我们通过 H2 的控制台查看数据库的时候,发现 SQL 脚本没有执行。 问题原因和解决 我们都知道 Spring 数据库有下面 2 个配置参数:spring.datasource.schema 和 spring.datasource.data。 spring.datasource.schema 中定义的是数据库执行脚本,包括创建数据库表和关系等 DDL 脚本。 Spring 中这里有个小坑,如果在配置参数中不定义 spring.datasource.schema, 而直接spring.datasource.data 定义的话,spring.datasource.data 中定义的脚本是不会执行的。 因此你需要先定义 spring.datasource.schema,可以做的是: 在 resources 文件夹中定义一个空的 schema.sql 文件。 将所有的创建数据库脚本和插入数据的脚本放到 spring.datasource.schema 中定义     然后通过控制台可以查看根据数据库创建脚本创建的数据库表。   https://www.ossez.com/t/spring-sql/603

2020年10月22日 0Comments 853Browse 0Like Read more
Computer Science

Discourse 邮件被垃圾的检查程序

Discourse 高度依赖电子邮件,但是在很多时候你的网站可能也会因为发送的邮件频率过高而被邮件收件箱定义为垃圾邮件。 使用第三方的邮件发送工具能够有效的帮你解决这些问题,但如何检查你邮件发送后被垃圾的情况,从而做出调整让你的系统保持在正常并且健康的状态? MailGun 给的一个工具 首先声明,我们不是利益相关,我们只是单独觉得这个工具还挺好,所以推荐给大家。 这个工具的来源是我们使用的一个邮件服务商推荐的。网址是:https://www.mail-tester.com/ 你可用通过使用 Discourse 发送一个测试邮件到他们提供的地址,然后 mail-tester 这个网站将会根据你发送邮件的状况告诉你还有什么需要改进的地方,并且给出评分。 发送测试邮件 你并不需要注册才能使用他们的服务,在访问他们的地址后,他们会给出一个邮件地址,如下图所示: 拷贝上面的邮件地址,并且保存。 然后进入 Discourse 后台,然后选择 Emails(电子邮件)标签页。 在这个标签页下面有一个输入框,在输入框中,输入邮件测试网站提供给你的电子邮件地址,然后单击按钮发送。 在你单击按钮发送后,你会看到一个提示发送已经成功的标志。 检查结果 在邮件发送成功后,返回到邮件测试网站的页面中,然后单击页面下方的检查你的邮件成绩。 对方的系统会根据你的邮件发送情况,邮件信息分析出你的情况,并且给出你需要改进的地方。 结果如下图: 通过上面的配置和运行,你就应该能对你当前系统中有关邮件配置的情况有所了解并作出必要的改进。   https://www.ossez.com/t/discourse/602

2020年10月22日 0Comments 755Browse 0Like Read more
文化旅游

新罕布什尔州的怀特山(White Mountains)

新罕布什尔州的 White Mountains 经常被称为白山,不知道是翻译的问题还是其他的问题。 反而白山的翻译显得比 怀特山 更加容易让人接受和理解。 山上充满各种景点。开车上山,周围美丽的风景令人愉快。 乘坐慢慢的火车沿着康威风景铁路和华盛顿山齿轮铁路游览,乘坐加农山空中缆车和龙山天际缆车冲上山顶,再向下走到极地洞穴公园和福鲁姆峡谷,还可以去阿迪塔什滑雪度假村和夏季游乐场。 冬天和夏天都有很多户外活动,白山一整年都是旅游胜地。 Mt Washington Auto Road 如果想上山看看的话,Mt Washington Auto Road 这个绝对是应该首推的。边上悬崖有点陡峭。如果和我们的青藏高原比起来真的也不算是什么。 但沿途风景不错,值得一去。每年开放的时间其实并不长,只要下雪了,基本上也就上不去了。 今年算是等了一个上山的尾巴,看看车流。和上山已经开始积雪了,现在才 10 月上旬耶。     入口处的招牌。 想上山的人还是挺多的,最好 9 月份来吧,天气不错还能欣赏到树叶。     沿途的风景 不可想象的是 10月份就已经有积雪了。据天气预报说是因为昨天下了 20 公分的雪。有点遗憾的是没有上到山顶。只要下雪这条路就会封山了。   https://www.ossez.com/t/white-mountains/601

2020年10月21日 0Comments 1004Browse 0Like Read more
Computer Science

Discourse 如何指派用户管理员权限

与所有的系统用户分类是一致的,Discourse 也会分类使用用户和用户组。 但是 Discourse 的管理员用户组是没有办法从用户组上添加用户的,你需要登录 Discourse 的后台后,找到你希望指派的用户,然后将这个用户指定为管理员。 Discourse 希望通过这个操作来提高安全性。 操作路径 登录你的管理员后台后选择用户(Users)然后找到你需要操作的用户。     在权限部分有一个指派管理员权限。 你需要单击选择(Grant Admin)这个的意思是将这个用户的管理员权限指派上了。     当你完成上面的操作后,你的用户就具有管理员权限了。 这个就是 Discourse 可以将用户指派为管理员的地方。   https://www.ossez.com/t/discourse/600

2020年10月21日 0Comments 701Browse 0Like Read more
Computer Science

Spring 日志输出错误字符 -e[0;39m e[2m[

Spring 的日志在输出的时候,出现了类似 -e[0;39m e[2m[ 的错误。     原因和问题解决 能够出现上面的原因是你的控制台输出工具不支持 ANSI 彩色字符,但是你的 Spring 配置文件中又强制了使用彩色字符。 查找你的 Spring 配置文件:application.properties 中的配置: spring.output.ansi.enabled=ALWAYS 如果你看到上面的参数是 ALWAYS 的话,你需要调整使用为:DETECT 这个配置选项有 3 个参数: ALWAYS:总是输出彩色日志 DETECT:根据控制台的情况确定是否输出彩色日志 NEVER:永远不输出彩色日志 修改后的配置参数应该为: spring.output.ansi.enabled=DETECT     然后重新编译后重新运行。 然后检查日志后,你就可以发现你的日志能够显示正常,而不是显示错误的字符了。     其实上面的特殊字符就是 Spring 日志文件中的配色, ANSI 会根据上面的配色来进行显示。   https://www.ossez.com/t/spring-0-39m-2m/599

2020年10月21日 0Comments 735Browse 0Like Read more
Computer Science

作为一位计算机专业的大学生,大学四年毕业时怎样才算合格

学无止境,学海无涯。 这东西没有个头,今年出这个框架,明年出那个框架,永远没有个头。 光缓存部分的内容就能熬白少年头。好在很多东西都已经有人做了。你不需要过于操心这个。 主要的是能看得懂文档,API ,知道别人为什么这样做,实在不知道也没有关系,能够找到需要的东西和代码示例,自己调通也行。 对基础数据结构比较了解。 对存储结构比较了解。 对基础算法比较清楚,能搞明白树,B+,以及一些查找算法就更好了。 至少熟悉一个 IDE 工具,了解一些常用的快捷键。 如果要做软件领域,软件的一些思维方式,开发模式,代码管理方式,团队组织形式这些有个大致的印象。   如果你检查下觉得自己都还差不多了解了,恭喜你,可以顺利出去忽悠工作了。

2020年10月21日 0Comments 719Browse 0Like Read more
1…177178179180181…304
Archives
  • June 2026
  • May 2026
  • April 2026
  • March 2026
  • February 2026
  • January 2026
  • December 2025
  • November 2025
  • October 2025
  • September 2025
  • August 2025
  • July 2025
  • June 2025
  • May 2025
  • April 2025
  • March 2025
  • February 2025
  • January 2025
  • December 2024
  • November 2024
  • October 2024
  • September 2024
  • August 2024
  • July 2024
  • June 2024
  • May 2024
  • April 2024
  • March 2024
  • February 2024
  • January 2024
  • December 2023
  • November 2023
  • October 2023
  • September 2023
  • August 2023
  • July 2023
  • June 2023
  • May 2023
  • April 2023
  • December 2022
  • November 2022
  • October 2022
  • September 2022
  • August 2022
  • May 2022
  • April 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • August 2021
  • July 2021
  • June 2021
  • May 2021
  • April 2021
  • March 2021
  • February 2021
  • January 2021
  • December 2020
  • November 2020
  • October 2020
  • September 2020
  • August 2020
  • July 2020
  • June 2020
  • May 2020
  • April 2020
  • March 2020
  • February 2020
  • January 2020
  • December 2019
  • November 2019
  • October 2019
  • September 2019
  • August 2019
  • July 2019
  • June 2019
  • May 2019
  • April 2019
  • March 2019
  • February 2019
  • January 2019
  • December 2018
  • November 2018
  • October 2018
  • September 2018
  • August 2018
  • July 2018
  • June 2018
  • May 2018
  • April 2018
  • March 2018
Categories
  • Computer Science (2,367)
    • Confluence (663)
    • Gradle (12)
  • U.S. (524)
  • 文化旅游 (146)

COPYRIGHT © 2020 CWIKIUS. ALL RIGHTS RESERVED.

THEME KRATOS MADE BY VTROIS

湘ICP备2020018253号-1