- 1. 2つのCSVファイルを取り込み差分を抽出する
- 2. Javaとは・JVM(Java Virtual Machine)とは・3つのエディション・Javaの開発環境
- 3. 【初心者】モックという概念
- 4. Javaで「配列要素へのアクセスとインデックス」の動作を確認してみた
- 5. GraphQLサーバとRESTサーバをさっと立ちあげて、実際に触ってみる
- 6. build.xmlにXmaxerrsオプションを追加したい
- 7. 文字列チェック
- 8. Java memo
- 9. Javaで「配列の宣言と配列の作成」の動作を確認してみた
- 10. VSCodeでdocker-composeを使用しSpringBoot×PostgreSQLで開発しよう!
- 11. Java チートシート
- 12. ScalaでVirtual Threadを雑に試してみる
- 13. Javaで「switch文を使った条件分岐」の動作を確認してみた
- 14. SonarQubeさんに怒られたら
- 15. Javaの値をJavaScriptで使用する方法
- 16. No.8【フローチャート(流れ図) 繰り返し(反復)処理&練習問題】プログラミングは一部の方だけのものではない!はじめてのプログラミング入門講座(アルゴリズムとJava基礎)動画付き
- 17. 【Java】大量のUUID配列をJSONでやり取りする状況で、UUIDをBase64化する影響を比較する
- 18. スパイラルマトリックス Javaで解いてみました
- 19. 【技術書】オブジェクト指向でなぜつくるのか
- 20. Spring BootでHttpSessionを使いこなす
2つのCSVファイルを取り込み差分を抽出する
カラム名を動的に取り込み、CSVファイルをSQLiteに格納する方法を以下に示します。ここでは、CSVの最初の行をカラム名として使用します。
### 必要なライブラリ
1. SQLite JDBCライブラリ
2. OpenCSVライブラリ(CSVファイルの読み書きに使用)### ステップ1: 必要なライブラリを追加
Maven依存関係
org.xerial
sqlite-jdbc
3.34.0
com.opencsv
opencsv
Javaとは・JVM(Java Virtual Machine)とは・3つのエディション・Javaの開発環境
# Javaとは
**【動画URL】** https://youtu.be/7tZ7wK-Xt1Y◆1995年にSun Microsystemsから最初にリリースされたプログラミング言語
◆オブジェクト指向という考え方でプログラミング出来る
◆スマートフォン向けアプリを作成する事も出来る
# JVM(Java Virtual Machine)とは
**【動画URL】** https://youtu.be/nQjtkX5tsJg◆Javaのプログラムを動かすために必要なソフトウェア
◆一度書いたらどこでも動く(Write Once,Run Anywhere)
![](https://storage.googleapis.com/zenn-user-upload/78390c380780-20231009.png)
# 3つのエディション
**【動画URL】** https://youtu.be/O0PjPZO_l9o◆JavaSE(Java Standard Edition) 基礎となる標準的な機能をまとめたもの
◆JavaEE(Java Enterprise
【初心者】モックという概念
# モックとは何か
テスト対象クラスで使用している外部オブジェクトの代わりに模擬の外部オブジェクトを作成することです。
モックを利用することで外部オブジェクトの動作に影響されずにテスト対象クラスの動作をテストすることができます。
※モックフレームワークによって違いがあるため、この記事ではMockitoを例として説明します。以下のコードでは、`ExampleServiceImpl` クラスの `method01` メソッドが `ExampleRepository` からデータを取得しています。この `ExampleRepository` をモックに置き換えることで`ExampleServiceImpl` クラスの `method01` メソッドが正しく動作するかを、`ExampleRepository` の実装に依存せずにテストすることができます。
### サービスのサンプルコード
“`java
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.ster
Javaで「配列要素へのアクセスとインデックス」の動作を確認してみた
# 概要
Javaで「配列要素へのアクセスとインデックス」の動作を確認してみました。
以下のページを参考にしました。https://www.javadrive.jp/start/array/index4.html
# 実装
以下のファイルを作成しました。
“`JSample4_1.java
class JSample4_1{
public static void main(String[] args){
int[] num = new int[4];num[0] = 10;
num[1] = 8;
num[2] = 16;
num[3] = 5;for (int i = 0; i < 4; i++){ System.out.println("num[" + i + "] = " + num[i]); } } } ``` 以下のコマンドを実行しました。 ``` $ javac JSample4_1.java $ java JSample4_1 num[0] = 10 num[1] = 8
GraphQLサーバとRESTサーバをさっと立ちあげて、実際に触ってみる
こんにちは。@masatomix です。
最近、現場でGraphQLとRESTサーバを構築する機会があったので、そのとき得られたナレッジを備忘としてまとめておこうと思います。
## TL;DR
– RESTサーバとGraphQLサーバを構築します
– EntityとRepositoryから RESTサービスを自動生成します(Spring Data RESTの機能)
– EntityからDDLを実行してテーブルの作成、データ投入を行います(SpringBootとJPAの機能)
– JPAとSpring Data RESTの機能を使って
– ManyToOneの関連があるRESTサービスを自動生成します
– Swggger(OpenAPI)を有効にします。API仕様書のJSONもダウンロード出来ます
– openapi-generator をつかってRESTにアクセスするプロキシ(TypeScript)を自動生成します
– Apollo Serverの機能を使って
– GraphQLのリクエストを受け取って、RESTからデータを取得してGraphQLで返却しています。S
build.xmlにXmaxerrsオプションを追加したい
# はじめに
Antを使っているプロジェクトで一時的に大量のエラーが表示される状況下において、そのエラー内容を見たいというケースがありました。
ビルド実行時に「もっと見たければ-Xmaxerrsオプションを付けてね!」と教えてはくれるのですが、Antが下火なこともありbuild.xmlで指定する方法がすぐには見つけられなかったので、備忘録としてメモしておきます。# build.xmlでの指定方法
`javac`要素の子要素として`compilerarg`を記述すれば良いだけです。
“`xml:build.xml
“`# 参考サイト
– [Anatomy of a simple Ant build.xml file](https://bedr
文字列チェック
“`java
public class StringChecker {
public static void main(String[] args) {
String[] testInputs = {
“Example@123”, // 大文字, 小文字, 数字, 記号 – 4種類
“EXAMPLE123”, // 大文字, 数字 – 2種類
“example123”, // 小文字, 数字 – 2種類
“Example”, // 大文字, 小文字 – 2種類
“123456”, // 数字のみ – 1種類
“example!”, // 小文字, 記号 – 2種類
“EXAMPLE@”, // 大文字, 記号 – 2種類
“123!@”, // 数字, 記号 – 2種類
Java memo
~~~Java
public class MainServiceTest {
private SubService subService;
private MainService mainService;@BeforeEach
public void setUp() {
subService = Mockito.mock(SubService.class);
mainService = new MainService(subService);
}@Test
public void testExecuteCallsPerformActionTwiceWithDifferentReturnValues() {
// 1回目の呼び出しは0を返し、2回目の呼び出しは1を返すように設定
when(subService.performAction()).thenReturn(0).thenReturn(1);int[] results = mainSe
Javaで「配列の宣言と配列の作成」の動作を確認してみた
# 概要
Javaで「配列の宣言と配列の作成」の動作を確認してみました。
以下のページを参考にしました。https://www.javadrive.jp/start/array/index2.html
# 実装
以下のファイルを作成しました。
“`JSample2_1.java
class JSample2_1{
public static void main(String[] args){
int[] result = new int[3];result[0] = 75;
result[1] = 88;
result[2] = 82;for (int i = 0 ; i < 3 ; i++){ System.out.println(result[i]); } } } ``` 以下のコマンドを実行しました。 ``` $ javac JSample2_1.java $ java JSample2_1 75 88 82 ``` # まとめ 何かの役に立てばと。
VSCodeでdocker-composeを使用しSpringBoot×PostgreSQLで開発しよう!
# はじめに
SpringBootとPostgreSQLの開発環境をdockerで動くようにし、
Hello Worldを表示させるところまでを解説します。
今回はGradleを使用し、vscode上でリモートコンテナに接続して実行という形になっています。
eclipse等を使用せず、vscodeで開発したい!という方向けになっています。
DBの初期データ等は用意していないので、ご自身の作成したいアプリに合わせて用意してください。# 環境
| 環境| バージョン |
|:-:|:-:|
| Docker | 20.10.17 |
| Openjdk | 17 |
| Spring Boot | 3.1.0 |
| Gradle | 3.6.3 |# ディレクトリ構成
下記では今回のディレクトリ構成を示しています。
“`
current/
├ .devcontainer/
├ devcontainer.json
├ docker-compose.yml
├ SpringProje
Java チートシート
# 基本構文
“`java
// クラス宣言
public class MyClass {
// メンバ変数
int myVar;// コンストラクタ
public MyClass(int var) {
this.myVar = var;
}// メソッド
public void myMethod() {
System.out.println(“Hello, World!”);
}// メインメソッド
public static void main(String[] args) {
MyClass obj = new MyClass(10);
obj.myMethod();
System.out.println(“myVar: ” + obj.myVar);
}
}
“`# 変数とデータ型
“`java
int myInt = 10; // 整数型
double myDouble
ScalaでVirtual Threadを雑に試してみる
# TL;DR
内部でスリープするようなFutureのインスタンスを、
Java 21のVirtual ThreadおよびPlatfrom Threadから作成し、
処理にかかった時間を出してみました。# Platfrom Thread
まずは`scala.concurrent.ExecutionContext.Implicits.global`を使って、
1秒スリープするFutureのインスタンスを50個作ってみました。結果はコメントに記載の通り7726msかかりました。
“`scala
import scala.concurrent.ExecutionContext.Implicits.global
import scala.concurrent.duration.Duration
import scala.concurrent.{Await, Future}object Main extends App {
val start = System.currentTimeMillis()val futures = (1 to 50).map { _ =
Javaで「switch文を使った条件分岐」の動作を確認してみた
# 概要
Javaで「switch文を使った条件分岐」の動作を確認してみました。
以下のページを参考にしました。https://www.javadrive.jp/start/if/index4.html
# 実装
以下のファイルを作成しました。
“`JSample4_1.java
class JSample4_1{
public static void main(String[] args){
int[] classcode = {1,3,2};
String[] name = {“鈴木”,”本田”,”遠藤”};for (int i = 0; i < 3; i++){ System.out.print(name[i] + "さんは"); switch(classcode[i]){ case 1: System.out.println("Aクラスです"); break; case 2: System.out.println("B
SonarQubeさんに怒られたら
# まえがき
## この記事に記載されている内容
SonarQubeは大変便利なツールです。
しかし解析結果の見方や検知されたIssueの内容が分からず無視してしまったり、
あまり理解せずにとりあえず直すという対応をしてしまったりしたことはないでしょうか?この記事ではIssueの検知結果の確認にフォーカスして以下の内容を記載します。
– SonarQubeの解析結果の確認の仕方
– 検知されたIssueの表示のされ方
– SonarQubeが提供してくれる情報の確認の仕方
– 検知されたIssueがなぜ指摘されているのか調べる方法SonarQubeさんに怒られたら、
めんどくさいなぁと思うのではなく
その内容を血肉に変えてレベルアップしましょう◎# SonarQubeとは
SonarSource社が開発する、様々な言語に対応したソースコードの品質管理ツールです。https://www.sonarsource.com/products/sonarqube/
ソースコードを静的解析し、以下のような処理を実施します。
– バグの検知
– 脆弱性の検知
Javaの値をJavaScriptで使用する方法
# やりたいこと
JavaScriptでJavaの値を使用する。
フレームワークはSpringBootで、thymeleafを使用する。# 使用例
バックエンドであるJavaでデータベースの値を得て、JavaScriptがその値を参照したいとき。# 実践例
“`HomeController.java
@GetMapping(“/home”)
public String view(Model model) {
model.addAttribute(“キー名”, 値);
return “home”;
}
“`
キー名を指定してJavaScriptで使用したい値をmodelに格納する。キー名は任意。
“`home.html