Spring boot 使ってみた

Spring Tool Suiteのダウンロード

Spring Tool Suiteは64bit版のJavaを使用している場合32bit版では動作しません。下記URLのページのトップのダウンロードでは、32bit版がダウンロードされるので、「See all version」から64bit版を探してダウンロードしましょう。

【Spring Tool Suite ダウンロード先】
URL : http://spring.io/tools

解凍すると「sts-bundle」というフォルダができるので、その中の「sts-*.*.*.RELEASE」⇒「STS.exe」を実行しましょう。

今回は空きのあるDドライブとしました。

早速起動しました

Spring Boot MYSQLエラー発生 2021.07.20

急にMYSQLと接続できなくなりました

src/main/resourcesフォルダのapplication.propertiesの内容変更シないと対応できませんでした。皆さんの参考になればと思い記載いたしました

1.事象

下記エラーが急に発生した



  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::                (v2.5.2)

2021-07-20 00:38:18.589  INFO 27032 --- [           main] c.t.TutorialDevelopApplication           : Starting TutorialDevelopApplication using Java 15 on DESKTOP-1FEFSKI with PID 27032 (C:\Users\user\Dropbox\My PC (DESKTOP-1FEFSKI)\Downloads\TutorialDevelop\target\classes started by user in C:\Users\user\Dropbox\My PC (DESKTOP-1FEFSKI)\Downloads\TutorialDevelop)
2021-07-20 00:38:18.592  INFO 27032 --- [           main] c.t.TutorialDevelopApplication           : No active profile set, falling back to default profiles: default
2021-07-20 00:38:19.206  INFO 27032 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode.
2021-07-20 00:38:19.270  INFO 27032 --- [           main] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 54 ms. Found 1 JPA repository interfaces.
2021-07-20 00:38:19.805  INFO 27032 --- [           main] o.s.b.w.embedded.tomcat.TomcatWebServer  : Tomcat initialized with port(s): 8082 (http)
2021-07-20 00:38:19.815  INFO 27032 --- [           main] o.apache.catalina.core.StandardService   : Starting service [Tomcat]
2021-07-20 00:38:19.822  INFO 27032 --- [           main] org.apache.catalina.core.StandardEngine  : Starting Servlet engine: [Apache Tomcat/9.0.48]
2021-07-20 00:38:20.001  INFO 27032 --- [           main] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring embedded WebApplicationContext
2021-07-20 00:38:20.001  INFO 27032 --- [           main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1369 ms
2021-07-20 00:38:20.207  INFO 27032 --- [           main] o.hibernate.jpa.internal.util.LogHelper  : HHH000204: Processing PersistenceUnitInfo [name: default]
2021-07-20 00:38:20.272  INFO 27032 --- [           main] org.hibernate.Version                    : HHH000412: Hibernate ORM core version 5.4.32.Final
2021-07-20 00:38:20.438  INFO 27032 --- [           main] o.hibernate.annotations.common.Version   : HCANN000001: Hibernate Commons Annotations {5.1.2.Final}
2021-07-20 00:38:20.569  INFO 27032 --- [           main] com.zaxxer.hikari.HikariDataSource       : HikariPool-1 - Starting...
2021-07-20 00:38:21.744 ERROR 27032 --- [           main] com.zaxxer.hikari.pool.HikariPool        : HikariPool-1 - Exception during pool initialization.

java.sql.SQLNonTransientConnectionException: Could not create connection to database server.
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110) ~[mysql-connector-java-8.0.25.jar:8.0.25]
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) ~[mysql-connector-java-8.0.25.jar:8.0.25]
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89) ~[mysql-connector-java-8.0.25.jar:8.0.25]
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63) ~[mysql-connector-java-8.0.25.jar:8.0.25]
	at com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:1006) ~[mysql-connector-java-8.0.25.jar:8.0.25]
	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:823) ~[mysql-connector-java-8.0.25.jar:8.0.25]
	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:453) ~[mysql-connector-java-8.0.25.jar:8.0.25]
	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246) ~[mysql-connector-java-8.0.25.jar:8.0.25]
	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198) ~[mysql-connector-java-8.0.25.jar:8.0.25]
	at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138) ~[HikariCP-4.0.3.jar:na]
	at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:364) ~[HikariCP-4.0.3.jar:na]
	at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:206) ~[HikariCP-4.0.3.jar:na]
	at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:476) ~[HikariCP-4.0.3.jar:na]
	at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:561) ~[HikariCP-4.0.3.jar:na]
	at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115) ~[HikariCP-4.0.3.jar:na]
	at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112) ~[HikariCP-4.0.3.jar:na]
	at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:122) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
	at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcEnvironmentInitiator.java:180) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
	at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:68) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
	at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:35) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
	at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:101) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
	at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
	at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:237) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
	at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
	at org.hibernate.id.factory.internal.DefaultIdentifierGeneratorFactory.injectServices(DefaultIdentifierGeneratorFactory.java:152) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
	at org.hibernate.service.internal.AbstractServiceRegistryImpl.injectDependencies(AbstractServiceRegistryImpl.java:286) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
	at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:243) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
	at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
	at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.<init>(InFlightMetadataCollectorImpl.java:176) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
	at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:127) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
	at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:1224) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
	at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1255) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
	at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:58) ~[spring-orm-5.3.8.jar:5.3.8]
	at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:365) ~[spring-orm-5.3.8.jar:5.3.8]
	at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409) ~[spring-orm-5.3.8.jar:5.3.8]
	at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396) ~[spring-orm-5.3.8.jar:5.3.8]
	at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:341) ~[spring-orm-5.3.8.jar:5.3.8]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1845) ~[spring-beans-5.3.8.jar:5.3.8]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1782) ~[spring-beans-5.3.8.jar:5.3.8]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:602) ~[spring-beans-5.3.8.jar:5.3.8]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) ~[spring-beans-5.3.8.jar:5.3.8]
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.8.jar:5.3.8]
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.8.jar:5.3.8]
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.8.jar:5.3.8]
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.8.jar:5.3.8]
	at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1154) ~[spring-context-5.3.8.jar:5.3.8]
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:908) ~[spring-context-5.3.8.jar:5.3.8]
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) ~[spring-context-5.3.8.jar:5.3.8]
	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:145) ~[spring-boot-2.5.2.jar:2.5.2]
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-2.5.2.jar:2.5.2]
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:434) ~[spring-boot-2.5.2.jar:2.5.2]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:338) ~[spring-boot-2.5.2.jar:2.5.2]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1343) ~[spring-boot-2.5.2.jar:2.5.2]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1332) ~[spring-boot-2.5.2.jar:2.5.2]
	at com.techacademy.TutorialDevelopApplication.main(TutorialDevelopApplication.java:10) ~[classes/:na]
Caused by: java.time.zone.ZoneRulesException: Unknown time-zone ID: JST
	at java.base/java.time.zone.ZoneRulesProvider.getProvider(ZoneRulesProvider.java:279) ~[na:na]
	at java.base/java.time.zone.ZoneRulesProvider.getRules(ZoneRulesProvider.java:234) ~[na:na]
	at java.base/java.time.ZoneRegion.ofId(ZoneRegion.java:121) ~[na:na]
	at java.base/java.time.ZoneId.of(ZoneId.java:409) ~[na:na]
	at java.base/java.time.ZoneId.of(ZoneId.java:357) ~[na:na]
	at com.mysql.cj.protocol.a.NativeProtocol.configureTimeZone(NativeProtocol.java:2191) ~[mysql-connector-java-8.0.25.jar:8.0.25]
	at com.mysql.cj.protocol.a.NativeProtocol.initServerSession(NativeProtocol.java:2218) ~[mysql-connector-java-8.0.25.jar:8.0.25]
	at com.mysql.cj.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:1315) ~[mysql-connector-java-8.0.25.jar:8.0.25]
	at com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:964) ~[mysql-connector-java-8.0.25.jar:8.0.25]
	... 50 common frames omitted

2021-07-20 00:38:21.744  WARN 27032 --- [           main] o.h.e.j.e.i.JdbcEnvironmentInitiator     : HHH000342: Could not obtain connection to query metadata

java.sql.SQLNonTransientConnectionException: Could not create connection to database server.
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110) ~[mysql-connector-java-8.0.25.jar:8.0.25]
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) ~[mysql-connector-java-8.0.25.jar:8.0.25]
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89) ~[mysql-connector-java-8.0.25.jar:8.0.25]
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63) ~[mysql-connector-java-8.0.25.jar:8.0.25]
	at com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:1006) ~[mysql-connector-java-8.0.25.jar:8.0.25]
	at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:823) ~[mysql-connector-java-8.0.25.jar:8.0.25]
	at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:453) ~[mysql-connector-java-8.0.25.jar:8.0.25]
	at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:246) ~[mysql-connector-java-8.0.25.jar:8.0.25]
	at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198) ~[mysql-connector-java-8.0.25.jar:8.0.25]
	at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138) ~[HikariCP-4.0.3.jar:na]
	at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:364) ~[HikariCP-4.0.3.jar:na]
	at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:206) ~[HikariCP-4.0.3.jar:na]
	at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:476) ~[HikariCP-4.0.3.jar:na]
	at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:561) ~[HikariCP-4.0.3.jar:na]
	at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115) ~[HikariCP-4.0.3.jar:na]
	at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112) ~[HikariCP-4.0.3.jar:na]
	at org.hibernate.engine.jdbc.connections.internal.DatasourceConnectionProviderImpl.getConnection(DatasourceConnectionProviderImpl.java:122) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
	at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcEnvironmentInitiator.java:180) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
	at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:68) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
	at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:35) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
	at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:101) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
	at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
	at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:237) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
	at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
	at org.hibernate.id.factory.internal.DefaultIdentifierGeneratorFactory.injectServices(DefaultIdentifierGeneratorFactory.java:152) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
	at org.hibernate.service.internal.AbstractServiceRegistryImpl.injectDependencies(AbstractServiceRegistryImpl.java:286) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
	at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:243) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
	at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
	at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.<init>(InFlightMetadataCollectorImpl.java:176) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
	at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:127) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
	at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:1224) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
	at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1255) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
	at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:58) ~[spring-orm-5.3.8.jar:5.3.8]
	at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:365) ~[spring-orm-5.3.8.jar:5.3.8]
	at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409) ~[spring-orm-5.3.8.jar:5.3.8]
	at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396) ~[spring-orm-5.3.8.jar:5.3.8]
	at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:341) ~[spring-orm-5.3.8.jar:5.3.8]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1845) ~[spring-beans-5.3.8.jar:5.3.8]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1782) ~[spring-beans-5.3.8.jar:5.3.8]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:602) ~[spring-beans-5.3.8.jar:5.3.8]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) ~[spring-beans-5.3.8.jar:5.3.8]
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.8.jar:5.3.8]
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.8.jar:5.3.8]
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.8.jar:5.3.8]
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.8.jar:5.3.8]
	at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1154) ~[spring-context-5.3.8.jar:5.3.8]
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:908) ~[spring-context-5.3.8.jar:5.3.8]
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) ~[spring-context-5.3.8.jar:5.3.8]
	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:145) ~[spring-boot-2.5.2.jar:2.5.2]
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-2.5.2.jar:2.5.2]
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:434) ~[spring-boot-2.5.2.jar:2.5.2]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:338) ~[spring-boot-2.5.2.jar:2.5.2]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1343) ~[spring-boot-2.5.2.jar:2.5.2]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1332) ~[spring-boot-2.5.2.jar:2.5.2]
	at com.techacademy.TutorialDevelopApplication.main(TutorialDevelopApplication.java:10) ~[classes/:na]
Caused by: java.time.zone.ZoneRulesException: Unknown time-zone ID: JST
	at java.base/java.time.zone.ZoneRulesProvider.getProvider(ZoneRulesProvider.java:279) ~[na:na]
	at java.base/java.time.zone.ZoneRulesProvider.getRules(ZoneRulesProvider.java:234) ~[na:na]
	at java.base/java.time.ZoneRegion.ofId(ZoneRegion.java:121) ~[na:na]
	at java.base/java.time.ZoneId.of(ZoneId.java:409) ~[na:na]
	at java.base/java.time.ZoneId.of(ZoneId.java:357) ~[na:na]
	at com.mysql.cj.protocol.a.NativeProtocol.configureTimeZone(NativeProtocol.java:2191) ~[mysql-connector-java-8.0.25.jar:8.0.25]
	at com.mysql.cj.protocol.a.NativeProtocol.initServerSession(NativeProtocol.java:2218) ~[mysql-connector-java-8.0.25.jar:8.0.25]
	at com.mysql.cj.jdbc.ConnectionImpl.initializePropsFromServer(ConnectionImpl.java:1315) ~[mysql-connector-java-8.0.25.jar:8.0.25]
	at com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:964) ~[mysql-connector-java-8.0.25.jar:8.0.25]
	... 50 common frames omitted

2021-07-20 00:38:21.749 ERROR 27032 --- [           main] j.LocalContainerEntityManagerFactoryBean : Failed to initialize JPA EntityManagerFactory: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]
2021-07-20 00:38:21.750  WARN 27032 --- [           main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]
2021-07-20 00:38:21.752  INFO 27032 --- [           main] o.apache.catalina.core.StandardService   : Stopping service [Tomcat]
2021-07-20 00:38:21.764  INFO 27032 --- [           main] ConditionEvaluationReportLoggingListener : 

Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2021-07-20 00:38:21.782 ERROR 27032 --- [           main] o.s.boot.SpringApplication               : Application run failed

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1786) ~[spring-beans-5.3.8.jar:5.3.8]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:602) ~[spring-beans-5.3.8.jar:5.3.8]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) ~[spring-beans-5.3.8.jar:5.3.8]
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) ~[spring-beans-5.3.8.jar:5.3.8]
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.3.8.jar:5.3.8]
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) ~[spring-beans-5.3.8.jar:5.3.8]
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) ~[spring-beans-5.3.8.jar:5.3.8]
	at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1154) ~[spring-context-5.3.8.jar:5.3.8]
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:908) ~[spring-context-5.3.8.jar:5.3.8]
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) ~[spring-context-5.3.8.jar:5.3.8]
	at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:145) ~[spring-boot-2.5.2.jar:2.5.2]
	at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-2.5.2.jar:2.5.2]
	at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:434) ~[spring-boot-2.5.2.jar:2.5.2]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:338) ~[spring-boot-2.5.2.jar:2.5.2]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1343) ~[spring-boot-2.5.2.jar:2.5.2]
	at org.springframework.boot.SpringApplication.run(SpringApplication.java:1332) ~[spring-boot-2.5.2.jar:2.5.2]
	at com.techacademy.TutorialDevelopApplication.main(TutorialDevelopApplication.java:10) ~[classes/:na]
Caused by: org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]
	at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:275) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
	at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:237) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
	at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
	at org.hibernate.id.factory.internal.DefaultIdentifierGeneratorFactory.injectServices(DefaultIdentifierGeneratorFactory.java:152) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
	at org.hibernate.service.internal.AbstractServiceRegistryImpl.injectDependencies(AbstractServiceRegistryImpl.java:286) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
	at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:243) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
	at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
	at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.<init>(InFlightMetadataCollectorImpl.java:176) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
	at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:127) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
	at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:1224) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
	at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1255) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
	at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:58) ~[spring-orm-5.3.8.jar:5.3.8]
	at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:365) ~[spring-orm-5.3.8.jar:5.3.8]
	at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409) ~[spring-orm-5.3.8.jar:5.3.8]
	at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396) ~[spring-orm-5.3.8.jar:5.3.8]
	at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:341) ~[spring-orm-5.3.8.jar:5.3.8]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1845) ~[spring-beans-5.3.8.jar:5.3.8]
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1782) ~[spring-beans-5.3.8.jar:5.3.8]
	... 16 common frames omitted
Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set
	at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.determineDialect(DialectFactoryImpl.java:100) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
	at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:54) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
	at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:137) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
	at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:35) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
	at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:101) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
	at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263) ~[hibernate-core-5.4.32.Final.jar:5.4.32.Final]
	... 33 common frames omitted

2.原因


Connector/JというMySQL用のJDBC Driverのバージョンが原因.

8.0.23からタイムゾーンに関する仕様に変更が入ったようです。
タイムゾーン指定の方法に変更があったことで、以前指定必須だった serverTimezone のパラメータが指定できなくなったようです

3.非推奨となったパラメータ

また下記が非推奨となりました

spring.datasource.initialization-mode=always
spring.datasource.sql-script-encoding=UTF-8

https://dev.mysql.com/doc/relnotes/connector-j/8.0/en/news-8-0-23.html

4.対策

&connectionTimeZone=JST → &connectionTimeZone=SERVER
spring.datasource.initialization-mode=always → spring.sql.init.mode=never
spring.datasource.sql-script-encoding=UTF-8 → spring.sql.init.encoding=UTF-8
 へ変更する

まとめると下記です

spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=create
spring.datasource.url=jdbc:mysql://localhost:3306/tutorial_db?characterEncoding=UTF-8&connectionTimeZone=SERVER
spring.datasource.username=root
spring.datasource.password=★★rootのパスワード★★
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.sql.init.mode=never
spring.sql.init.encoding=UTF-8

JPA入門(hibernate)

こんにちは。スタルヒンです。

本日はJava言語のなかでよくJPQLがわからないと聞きますので

基本的な意味合いを説明し致します。

皆さんの参考になれば良いかなと思い書きましたのでご活用くださいね。

はじめに

皆さんは、JPAはなぜ作成されてかご存じですか?MicrosoftのLinqと同様な発想です。JDBCのように”SELECT * FROM テーブル名”などのSQL文字列をデータベースに渡して構文解析を行っていただいて、次々にデータを受けといったり環境をCloseしたりと大変な作業で実行してみないとSQLが正しいかどうか半弟できない点が問題です。ORマッピングという言葉は知ってますか?テーブルとオブジェクトをマッピングしてくれる点もコーディング量を少なくし、コーディング時にエラーとなってくれる即時性を行ってくれるものがJSPなのです。覚えてしまえば、開発効率は一目瞭然なのです。私から見れば涙が出るぐらい楽なコーディングなのです。

JPAといっても、あくまでも永続化管理のためのAPI仕様なので、実際はJPAの参照実装である、Hibernate、EclipseLinkを使って行います。

サンプルモデル

では、早速初めていきましょう。

説明していくにあたり、以下のテーブルを使っていきます。

m_user:ユーザマスタ
idユーザIDPK
name氏名
age年齢
birthday誕生日
company_id会社FK
m_company:会社マスタ
id会社IDPK
name勤務先名
address住所
tel_no電話番号

準備編

  エンティティを作成しよう

まず、上記で定義したテーブルのエンティティを作成します。

ユーザマスタのエンティティ

@Table(name="m_user")
@Entitypublic 
class User{    
@Id    
@GeneratedValue(strategy = GenerationType.IDENTITY) 
     private Integer id;
     private String name;
     private Integer age;
     ~getter/setter~
}

@ マークがついているものがいくつか存在しますが、これをアノテーションと呼びます。

そのアノテーションについて、いくつか説明していきます。

1行目: @Table(name=”テーブル名”)
エンティティ名と実テーブル名の名前が異なる場合のみ定義が必要にになります。
今回の場合、エンティティが「User」でテーブル名が「m_user」なので定義してあります。(Campanyも同様)

2行目: @Entity
必ず指定が必要です。これはJPA開始を意味します

4行目: @Id
エンティティクラス内のフィールドのいずれかに指定する必要があります。

5行目: @GeneratedValue(strategy = GenerationType.IDENTITY)
@Id が指定されたフィールドの値の採番方式を指定します。これを指定しておくことで、自分でIDをセットして登録という手間がなくなります。

会社マスタのエンティティ

@Table(name="m_company")
@Entitypublic 
class Campany{    
@Id
    private Integer id;
    private String name;
    private String address;
@Column(name="tel_no")
    private String telNo;
     ~getter/setter~
}

11行目: @Column(name=”カラム名”)
@Table と同様、フィールド名とカラム名が異なる場合のみ定義します。

エンティティの定義方法や、アノテーションについて述べましたが、実はアノテーションを定義する上でいくつかの条件あるので、ここでまとめたいと思います。・クラスに@Entityが定義されていること。
・クラス内のフィールドのいずれかに@Idが定義されていること。
・引数なしのコンストラクタを持つこと。
* 引数ありのコンストラクタを定義した場合は、明示的に引数なしのコンストラクタも定義が必要。
・フィールドをカプセル化(privateのフィールド、getter、setter)すること。
・final修飾子をクラスやフィールドに使わないこと。

次は作成したエンティティを使って、CRUD処理についてみていきましょう。

検索編

  ユーザのデータを全件取得したい
// EntityManagerのFactoryクラスをPersistence.xmlで定義したユニット名を使って生成
    EntityManagerFactory emf = Persistence.createEntityManagerFactory("ユニット名");
 
// EntityManagerの生成
    EntityManager em = emf.createEntityManager(); 

// クエリの生成 
   TypedQuery q = em.createQuery("SELECT u FROM User u",User.class);        // 抽出
    return q.getResultList();

SQLみたいな記述がありますが、これはSQLではなくJPQL(Java Persistence Query Language)と呼ばれるクエリ使って取得します。JPQLを使うことで、オブジェクトとして扱うことができます。もちろんSQLで記述することも可能です。

その場合はcreateNativeQueryメソッドを使いましょう。

  ユーザのデータの中でキー(id)が一致するデータを取得したい
EntityManagerFactory emf = Persistence.createEntityManagerFactory("ユニット名");
EntityManager em = emf.createEntityManager(); Users user = em.find(User.class,id);

EntityManagerのメソッドに「find」というメソッドがあるので、これを使います。

第2引数で指定できるのは、 @Id が指定されているフィールドの値のみです。

  ユーザの中で年齢が30以上のデータを取得したい
EntityManagerFactory emf = Persistence.createEntityManagerFactory("ユニット名");
EntityManager em = emf.createEntityManager(); List users = em.createQuery("SELECT u FROM User u WHERE u.age >= 30").getResultList();

@Id が指定されているフィールド以外で、条件を設定したい場合はcreateQueryを使います。

JPQLの記述でWHERE句を書いて、必要な条件を書きます。

結合編

関連テーブルを結合して取得する方法は、前に述べた検索処理とほぼ同じです。異なるのはエンティティクラスに定義するアノテーションです。アノテーションをつけることで、結合を意識することなく取得することができます。

  ユーザ情報を取得する際に会社情報も取得したい

Userエンティティクラスに、Companyエンティティクラスのフィールドを定義します。

@Table(name="m_user")
@Entitypublic 
class User{    
@Id    
@GeneratedValue(strategy = GenerationType.IDENTITY) 
      private Integer id;
     private String name;
        private Integer age;
     @ManyToOne
      private Company campany; 
    ~getter/setter~
}

関連するエンティティクラスをフィールドとして定義します。関連元テーブル(今回の場合User)から見た関連先テーブル(Campany)の関連がN対1なので、アノテーションに @ManyToOne を定義します。

これで、Userの検索処理したときに、Campanyも取得できます。

ユーザごとの会社情報を取得する場合は以下のようにします。

EntityManagerFactory emf = Persistence.createEntityManagerFactory("ユニット名");        
EntityManager em = emf.createEntityManager();        
TypedQuery q = em.createQuery("SELECT u FROM User u",User.class);
ListuserList =  q.getResultList();     
for(User user : userList){ 
       // 勤務地情報取得 
       Campany campany= user.getCompany();    }

  ある勤務地に所属するユーザを取得したい

CampanyエンティティクラスにUserのエンティティクラスを定義します。

@Table(name="m_campany")
@Entitypublic 
class Campany{    
@Id    
private Integer id;     
private String name;        
private String address;     
@Column(name="tel_no")    
private String telNo;     
@OneToMany(mappedBy="campany")   
 private List userList;     
~getter/setter~
}

関連元テーブル(今回の場合Campany)から見た関連先テーブル(User)の関連が1対Nなので、アノテーションに @OneToMany を定義します。あと、ここで注意してほしいのが、双方向に関連アノテーションを定義した場合、 @OneToMany を定義した方に「mappedBy」を定義する必要があります。

mappedByに指定する内容は、関連先エンティティクラス内に定義している関連元エンティティクラスのフィールド名を定義します。

取得した勤務地情報からユーザ情報を取得する場合は以下のようにします。

EntityManagerFactory emf = Persistence.createEntityManagerFactory("ユニット名");        
EntityManager em = emf.createEntityManager();     
Campany campany= em.find(Campany.class,1);     // ユーザ情報取得    List userList = campany.getUserList();

データ更新編

  ユーザのデータを新規登録したい

EntityManagerFactory emf = Persistence.createEntityManagerFactory(“ユニット名”);    

EntityManager em = emf.createEntityManager(); 

EntityTransaction tx = em.getTransaction(); tx.begin(); // 勤務地情報取得Campany campany= em.find(Campany.class,1); // 登録するユーザ情報Use

r user = new User();user.setName(“デーコム”);user.setAge(30);user.setCampany(campany); // 登録em.persist(user); tx.commit();

新規で作成したエンティティを登録する場合は「persist」を使います。

  あるユーザの勤務地を変更したい

EntityManagerFactory emf = Persistence.createEntityManagerFactory(“ユニット名”);    

EntityManager em = emf.createEntityManager(); EntityTransaction tx = em.getTransaction(); 

tx.begin(); // 変更先の勤務地情報を取得Campany campany= entityManager.find(Campany.class,2); // 更新対象のユーザ情報取得

User user = em.find(User.class,1); // 変更先の勤務地をセットuser.seCampany(campany); // 更新em.merge(user); tx.commit;

変更したエンティティで更新する場合は「merge」を使います。

  あるユーザを削除したい

EntityManagerFactory emf = Persistence.createEntityManagerFactory(“ユニット名”);    

EntityManager em = emf.createEntityManager(); 

EntityTransaction tx = em.getTransaction();

 tx.begin(); // 削除対象のユーザ情報取得User user = em.find(User.class,1); // 削除em.remove(user); 

tx.commit;

対象エンティティを削除する場合は「remove」を使います。

まとめ

JPAでデータベース処理を行う際は、EntityManagerを使って行います。EntityManagerが持つ、今回利用したメソッドは以下のとおりです。

検索find
登録persist
更新merge
削除remove

今回はEntityManagerの簡単な使い方をメインにお話しました

Eclipse 画面分割キー

生徒さんがうっかりキー操作で画面が分割し始めたようで戻し方がわからないと質問が来ました。長年やってますがキーを覚えておらず調べてみました

EclipseでのWindowsの分割方法 (1つのファイル) は
水平方向は Ctrl-_ ,垂直方向は Ctrl-{ .
元に戻すにはもう一度同じキーを打つ.

この状態で Ctrl-{  すると

このようになります。もう一度、Ctrl-{  で元に戻ります

もう25年付き合っていますが新たな発見があるものですね

java char型で文字コードの取り扱い方

文字コードの見方の説明となります
例えば
System.out.println((int)’a’); // 97と出力
とコーディングされてください。
a という文字コードは 97 という番号が振られております
b ならば 98 ですね。文字には実は番号が振られて管理されているわけです。
納得していただくために逆に
System.out.println((char)97); // aと出力
とコーディングされてください。
a が表示されますよね。

そして今回の問題ですが、
char型で指定する方法が
4通りあります

下記サンプルプログラムを動作確認させてください
すべて ’a’ という文字です。
10進数=97 の文字コードである a をそれぞれ指定できるのです。

public class test {
    public static void main(String[] args) {
        char _文字 = 'a'; // 文字指定
        char _10進数 = 97;      // 0b,0xでもない場合は10進数での文字コード指定
        char _2進数 =0b1100001;  // 0bの場合は2進数での文字コード指定
        char _16進数 =0x61;     // 0xの場合は16進数での文字コード指定

        System.out.println(_文字);
        System.out.println(_10進数);
        System.out.println(_2進数);
        System.out.println(_16進数);
    }
}

0b:バイナリー

0x:ヘキサhex の意味がありますのでご参考までに

アンデルセン様受発注システム 開発事例

アンデルセン パンの受発注システムを当時開発しました

大変な思い出です。中国の方と共同で開発したが大変なシステムでした。

資料 ここ です

山崎パン 様のシステムも手掛けてました

ここ

ポート番号が使用中でインストールできない場合の原因プロセス調査方法

下記質問が来ました

ローカル・ホスト の Tomcat8 (Java8) で必要な幾つかのポート (8005, 8080, 8009) がすでに使用中です。サーバーはすでに別のプロセスで稼働中であるか、システム・プロセスがそのポートを使用中である可能性があります。このサーバーを始動するには、他のプロセスを停止するか、ポート番号を変更する必要があります。とでますので実行できなくて困っております。

 

対処方法を以下にまとめておきます

ポートがかぶっておりますので

・原因ソフトを特定する。

・原因ソフトを止めるか、eclipseのWTPのポート番号を変更

が必要です

原因ソフトを特定

ポート (8005, 8080, 8009) が何のアプリケーションで使用されているかを調べるために netstat -nao  を使用します

コマンドプロンプトを立ち上げてください

ローカルアドレスの赤枠部分でポート (8005, 8080, 8009) を探し、PIDをメモしておきます。

タスクマネージャを開いて、使用アプリケーションを特定する。

  1. 「Ctrl + Alt Delete」でタスクマネージャを開く。
  2. 「プロセス」タブを開く。
  3. デフォルトだとPIDが表示されていないので、「全ユーザーのプロセスを表示する(S)」「表示(V)→列の選択(S)→PID(プロセスID)」にそれぞれにチェックを入れる。

この場合は、tomcat6.exe  が事前起動されていることが原因みたいです。

タスクマネージャーで右クリックで終了という強硬手段もできますが、怖いですよね。

起動されているものを見つけてそのソフトを正しい停止方法で行いましょう。

eclipseのWTPのポート番号を変更

となります

 

ポート番号のしくみ (I・O BOOKS)