- 1. Visual Studio CodeによるSpring Boot2 Webアプリ開発 SQLServer接続編
- 2. Ruby と Perl と Java と Python で解く AtCoder ABC 107 B 文字列操作
- 3. UbuntuでJAVA_HOMEの設定
- 4. バージョン違いによるSpring Bootの機能について
- 5. Resilience4j の RateLimiter を用いた Rate-Limitting
- 6. Ubuntuで、複数のJavaをインストールして切替を行う
- 7. 開発環境構築 for Mac (Java、Gradle、Groovyインストール)
- 8. javaとpythonの違い(メモ)
- 9. micronautドキュメント目次メモ
- 10. List を任意の数に分割する
- 11. Java Springで検索フォームを作るシンプルな書き方 | クラスを理解する
- 12. Visual Studio CodeによるSpring Boot2 Webアプリ開発 HelloWorld作成編
- 13. macのEclipseで補完機能を使う
- 14. 【Java】 String型の正しい比較
- 15. 競技プログラミング私的チートシート(Java)
- 16. String[] argsの使用方法
- 17. 配列を順次取り出すfor命令の比較
- 18. 【実践‼】JFrameの導入(画面作成まで解説)
- 19. Spring Bootでトランザクション確認試験を行う
- 20. 【Minecraft】Bukkit/Spigotプラグインで時間操作
Visual Studio CodeによるSpring Boot2 Webアプリ開発 SQLServer接続編
#はじめに
[こちら](https://qiita.com/t_skri/items/4e3c11050f93e4761dda)で作成したSQLServer接続WebアプリのSpring Boot版です。#環境
OS:Windows 10 Pro 64bit
DB:SQL Server 2019(Cent OS 8 on Hyper-V)
Editor:Visual Studio Code 1.44.2
JDK:AdoptOpenJDK 11.0.6+10 x64#ひな型作成
spring initializr[(https://start.spring.io/)](https://start.spring.io/)で、以下の設定で作成しました。![2020-05-05 (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/591423/6fc9fd3f-c0f8-d796-829c-9ac19fa0d896.png)
作成したひな型を「D:\JAVA\Project」に展開します。
#
Ruby と Perl と Java と Python で解く AtCoder ABC 107 B 文字列操作
# はじめに
*[AtCoder Problems](https://kenkoooo.com/atcoder/#/)* の Recommendation を利用して、過去の問題を解いています。
AtCoder さん、AtCoder Problems さん、ありがとうございます。
# 今回のお題
*[AtCoder Beginner Contest 107 B – Grid Compression](https://atcoder.jp/contests/abc107/tasks/abc107_b)*
Difficulty: 434今回のテーマ、文字列操作
# Ruby
“`ruby.rb
h, w = gets.split.map(&:to_i)
a = []
h.times do |i|
s = gets.chomp
a.push(s) if s.count(‘.’) != w
end
1.upto(w) do |i|
f = true
a.each do |x|
f = false if x[w
UbuntuでJAVA_HOMEの設定
UbuntuでJAVA_HOMEの設定方法について記載する。
– javaは、alternativesを経由している前提。
– /usr/bin/java -> /etc/alternatives/java -> (実際のjavaのロケーション)
– PATHは、/usr/binに通っているので、特に対応しない。
– 複数のjavaを切り替える場合もsourceコマンドを実行することで対応できるようにしておく。
– 切り替え方は、こちらを参照。「 [Ubuntuで、複数のJavaをインストールして切替を行う](https://qiita.com/yochapan/items/af86a320035f8db7daf4)」# やり方
### /etc/profle.d配下にjava_home.shを作成– /etc/profile.d配下のshellは、ログイン時に実行される。
“`sh
sudo vi /etc/profile.d/java_home.sh
“`### JAVA_HOMEのエクスポートを記載
– javaコマンドの絶対
バージョン違いによるSpring Bootの機能について
[前回](https://qiita.com/wataru908/items/239404926f926743e65b) の続きです。
今回はSpring Boot2になったことで、使用できるメソッド等が変更されていることについてです。#変更点
##1.findOne
教材には、findOneメソッドを使用しているが、これをそのまま使用すると、
findByIdメソッドへの変更を促されます。
また、戻り値もOptional型になっています。“`java:教材(以前のバージョン)
public MeetingRoom findMeetingRoom(Integer roomId) {
return meetingRoomRepository.findOne(roomId);
}
“`“`java:SpringBoot2変更点
public OptionalfindMeetingRoom(Integer roomId) { return meetingRoomRepository.findById(roomId);
}
“`Opt
Resilience4j の RateLimiter を用いた Rate-Limitting
https://github.com/resilience4j/resilience4j
resilience4j は主に Java 向けの Circuit Breaker 実装として著名なものになる。Rate-Limitting 関連の機能も存在している。
https://github.com/resilience4j/resilience4j#ratelimiter
以下では以下のサンプルプログラムをベースに検証を行っている。
https://github.com/resilience4j/resilience4j-spring-boot2-demo
# Configuration
## build.gradleSpring Boot と連携をする場合は `io.github.resilience4j:resilience4j-spring-boot2` を使用する。
“`
dependencies {
compile(‘org.springframework.boot:spring-boot-starter-webflux’)
Ubuntuで、複数のJavaをインストールして切替を行う
– 複数のjavaをインストールして切替を行う方法について記載する。
– Ubuntu 16.04で実施。
– java8とjava9をインストールして切り替えてみる。# やり方
## インストールするjavaの検索“`sh
$ sudo apt search openjdk-.*-jdk$openjdk-8-jdk/xenial-updates,xenial-security 8u252-b09-1~16.04 amd64
OpenJDK Development Kit (JDK)openjdk-9-jdk/xenial 9~b114-0ubuntu1 amd64
OpenJDK Development Kit (JDK)
“`## javaのインストール
### java8のインストール
“`sh
$ sudo apt install openjdk-8-jdk
“`
### java9のインストール
“`sh
$ sudo apt install openjdk-9-jdk
“`## javaバージョンの確認
“`sh
$ java
開発環境構築 for Mac (Java、Gradle、Groovyインストール)
#### ■brewインストール
1. 以下を実行してインストールする。“`shell
/usr/bin/ruby -e “$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”
“`#### ■Javaインストール
1. 下記のサイトからJava SE Development Kit *u*** → Mac OS X → jdk-*u***-macosx-x64.dmg をダウンロードし、インストーラを実行する。
[Java8(Archive)](https://www.oracle.com/java/technologies/javase/javase8-archive-downloads.html)
[Java9(Archive)](https://www.oracle.com/java/technologies/javase/javase9-archive-downloads.html)2. 環境変数の設定(バージョンに合わせて以下を実行)
“`
javaとpythonの違い(メモ)
#はじめに
小生はこれまで書いてきたステップ数、時間ではJavaが圧倒的に多いです。
昨今、Pythonがかっこいいので勉強しています。
Javaとの違いをわかりしだいメモしていきたいです。#インクリメント
pythonにはインクリメント演算子(++)が無い。#オーバーロード
pythonはオーバーロードしたメソッド(同名だが引数の構成が異なる
メソッド)が作れない。#for文
“`java:Java
for(int i=0;i<10;i++){ //処理 } ``` ```Python:Python for i in range(10): #処理 ``` #クラスメソッドの引数 pythonはクラスメソッドの第1引数は自分自身のオブジェクトであり、 慣習的にselfが使用される。 #インスタンス変数 pythonはインスタンス変数を使う時は、クラス内であっても明示的に クラスオブジェクトを示す変数名で修飾しないといけない。(インスタンスメソッドも同様) ```java:Java class Hoge{ int arg1; p
micronautドキュメント目次メモ
# これは何?
micronaut の[ユーザーガイド](http://docs.micronaut.io/latest/guide/index.html)のどこをを読めばいいかのメモ。
対象は ver1.3.4 のドキュメント。# 1 Introduction
いわゆる「説明」。背景の説明あり。
## 1.1 What’s New?
過去バージョンからの変更履歴。依存ライブラリの記述あり。
# 2 Quick Start
2章全体で、 Hello world アプリを作るまでの手順を解説。
## 2.1 Build/Install the CLI
さまざまなインストール方法の解説。
### 2.1.1 Install with Sdkman
中略。
### 2.1.2 Install with Homebrew
中略。
### 2.1.3 Install with MacPorts
中略。
### 2.1.4 Install through Binary on Windows
中略。
### 2.1.5 Building from Source
List を任意の数に分割する
#結論
org.apache.commons.collections4.ListUtils#partition() を利用する。
##Javadoc
https://commons.apache.org/proper/commons-collections/apidocs/org/apache/commons/collections4/ListUtils.html#partition-java.util.List-int-##Maven
https://mvnrepository.com/artifact/org.apache.commons/commons-collections4/4.4“`xml
org.apache.commons
commons-collections4
Java Springで検索フォームを作るシンプルな書き方 | クラスを理解する
シンプルな検索フォームを作る書き方です。クラスを理解するためのものです。
GitHubでコードは公開しているので気になる人はクローンしてみてください。
[GitHubリポジトリはこちら](https://github.com/megumi-622/responseDB)## こちらの環境
– PC: macOS Catalina 10.15.4
– IDE: [Eclipse](https://mergedoc.osdn.jp/) 2020-03(4.15.0)
– SQL: [PostgreSQL](https://www.postgresql.jp/download) 12.2
– SQLツール: [DBeaver](https://dbeaver.io/) 7.0.3.202004191823ツールは全て無料で使えます。
ターミナルでSQLを操作できるのであれば、SQLツールはなくても大丈夫です。## データベース
GitHubにデータベース作成用と検索用データのsqlファイルを用意してあります。
環境に合わせて実行してください。## HTML
HTMLタグに`
Visual Studio CodeによるSpring Boot2 Webアプリ開発 HelloWorld作成編
#はじめに
Visual Studio CodeでSpring Boot2のWebアプリ開発をしていきます。
以前[こちら](https://qiita.com/t_skri/items/24d0d353771735b453f7)で作成したHelloWorldのSpring Boot版です。#開発環境構築
[こちら](https://qiita.com/t_skri/items/b16cd5a8868398ca0fc2)を参考に開発環境を構築して下さい。
Maven、Tomcatは不要です。
拡張機能の「Spring Boot Extension Pack」を追加します。
![springex.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/591423/ecf34820-40e7-bcc0-0936-a7c22fb48878.jpeg)#環境
OS:Windows 10 Pro 64bit
Editor:Visual Studio Code 1.44.2
JDK:AdoptOpenJDK 11.
macのEclipseで補完機能を使う
今回はJavaの勉強を始めようとEclipseをMacに入れた時には補完機能が使えなかったため記録
Eclipseにデフォルトで設定されている補完機能は、contorol + スペース なのだがMacでは使えず、、、
調べた結果記事はいっぱいあったのですぐに解決。
一応やり方を載せとくEclipseの環境設定 → 一般 → キー → コンテンツ・アシストで検索 すると下記のように
今回は、シフト + スペース で設定したかったため
バインディングと書かれているところに、シフト + スペース と記入。これで補完機能使えるようになっている。
他にもやり方があると思うが参考に!!
【Java】 String型の正しい比較
#String型比較を深堀してみる
String型の値の比較について、整理しました。##等比較の方法
###1. ==
・プリミティブ型では値の比較を行う。
・オブジェクト型ではオブジェクトの参照値を比較し、オブジェクトが同一か判断する。###2. equals()
オブジェクト型でのみ使用可能で、オブジェクトの内容比較を行い、オブジェクトが同値か判断する。
※Objectクラスにequalsが定義されている。
Stringクラスではoverrideしている。つまり、Strng型は参照型のオブジェクトだから、equalsを使えばOKですね。
##検証(==だと本当に比較できないのか)
“`java:StringSample.java
String str1 = “A”;
String str2 = “A”;
String str3 = new String(“A”);
System.out.println(str1.hashCode());
System.out.println(str2.hashCode());
競技プログラミング私的チートシート(Java)
メモ。順次加筆。
## 余りを切り上げる
“`java
public static int roundUp(int a, int b) {
return (a + b – 1) / b;
}
“`## 最大公約数
ユークリッドの互除法を使って計算を行う。
参考:
[ユークリッドの互除法の証明と不定方程式 | 高校数学の美しい物語](https://mathtrain.jp/euclid)“`java
private static long gcd(long a, long b) {
if (b == 0) return a;
return gcd(b, a % b);
}
“`例えば、a=370 b=273とすると、
|Loop|a|b|
|:-:|:-:|:-:
|1|370|273
|2|273|370 % 273 = 117
|3|117|273 % 117 = 39
|4|39|117 % 39 = 0b=0になったとき、`return a`によりaの値が返される。
その値が最大公約数である。## 最小公倍数
最大
String[] argsの使用方法
import java.util.*;
public class Main {
int ii[];
public static void main(String[] args) throws Exception {
// プリミティブ型変数の場合初期値にはNULLが入っている、NEWしてインスタンスを生成してあげないと
//lengthで数えてもNULLなのでエラーになる、argsは何も入ってないと[0]の配列を作るのでNULLではない
//lengthすれば0を返し、argsを指定すればヌルではないのでクラス名とハッシュコードを返す
main m=new main();
Main Mainm=new Main();System.out.println(Mainm.ii);
System.out.println(m.i);
}
}class main{
int i[];
}
配列を順次取り出すfor命令の比較
GW中はどこにも行けないので、のんびり家でJavaを勉強しています。
rubyのeach文は優秀で、どこにでも使えるのがうれしいので多用してしまいます。ruby使っているともはやrubyでfor文ってどう書くんだっけ?って感じです。
たとえば、配列の中身を出力するとき、こんな書き方ができます。~~~fruits.rb
fruits = [“りんご”, “みかん”, “バナナ”]
fruits.each do |v|
print “#{v}\n”
end
~~~これがC#でfor文で書くならこんな感じです。
~~~fruits1.cs
var fruits = new string[] {“りんご”, “みかん”, “バナナ”};
for (int i = 0; i < fruits.Length; i++) { Console.WriteLine(fruits[i]); } ~~~ for文のカウンタで配列のインデックスを回して要素を取り出すオーソドックスな方法です。 そして、Rubyのeachみたいな記法でforeach文というのがあって、こんな感じ書けます。 ~
【実践‼】JFrameの導入(画面作成まで解説)
## 1.事前知識
– [【最新】UbuntuでJavaの環境を構築する方法](https://qiita.com/ryome/items/37c53e9638a9c6ea146a)– [【初心者でもできる‼】Windows10にJava環境を作る方法(JDK14.0.1)](https://qiita.com/ryome/items/30135570954e36196821)
– [【わかりやすく解説‼】Javaのインスタンスの使い方](https://qiita.com/ryome/items/62ba0d8395af6698053a)
– [【初心者でもできる‼】Windows10にEclipseをインストールする方法(Java環境構築)](https://qiita.com/ryome/items/b47c5acdaa52cffbec58)
事前知識として、上記リンクの内容が必要です。
## 2.JFrameとは
– `JFrame` とは、 `Swing` クラスのひとつで、「外枠を持つ、中心となる `ウィンドウ` 」を作成するためのクラスである。
## 3
Spring Bootでトランザクション確認試験を行う
## はじめに
所属しているチームでは、不具合があった場合、テストコードを書いて再現(レッドバーを確認)させてから修正するというルールにしています。
先日、トランザクション制御が抜けていたという不具合があり、テストコードを書こうとしたのですが、ドハマリしたので整理して投稿します。
テストコードはGithub(https://github.com/shimi58/transactiontest) に挙げているので、参考にしてください。## 開発環境
Eclipse上で構築した環境は以下の通り。Gradleプロジェクトを作成してパスを通しています。
| 環境 | バージョン |
| ———- | ————– |
| Java | 1.8 |
| SpringBoot | 2.2.6 |
| MyBatis | 2.1.0 |
| H2 | PostgresqlMode |
| Junit | 5(Jupiter)
【Minecraft】Bukkit/Spigotプラグインで時間操作
*2020年5月5日:コード上に些細なミスが有りましたので修正しました。*
—
Bukkitのプラグイン作成の初めの方で、つまずいた点をメモ。
#したいこと
Minecraftのチャット欄に特定のワードを入れると、トリガーがひかれてゲーム内時間を設定する。ここでは例として「朝」と入力すれば時刻0(朝)に変更するようなプラグインを作成する。#ダメな例
“`Java:main.java
//パッケージ文、インポート文は省略
public class main extends JavaPlugin{
@Override
public void onEnable() {
getServer().getPluginManager().registerEvents(new eventListener(this), this);
}
}
“`“`Java:eventListener.java
//パッケージ文、インポート文は省略
public class eventListener implements Listener {
p