JAVA関連のことを調べてみた2020年03月16日

JAVA関連のことを調べてみた2020年03月16日

JdbcTemplateで@OneToMany的な振る舞いをさせる

## TL;DR
ORMにを頼らずNamedParameterJdbcTemplateとRowMapperを組み合わせて結果を取得するシステムでOneToManyなデータの持ち方を実現したい場合はResultSetExtractorを実装したクラスを作ればいいが、構造が複雑になりがちなので新しいシステムを作る時は素直にJPA等に頼ったほうが良い

## 問題点
Spring JDBCには `NamedParameterJdbcTemplate`等のクラスをDIすることで気軽にクエリを発行できる仕組みがある。

“`java

@Repository
public class HogeRepository {

@Resource
private NamedParameterJdbcTemplate namedParameterJdbcTemplate;

@Override
public HogeWithPiyo findAll() {
return namedParameterJdbcTemplate.query(“SELEC

元記事を表示

オブジェクト指向プログラミング(素人が浅い知識でまとめさせていただきました)

#クラスとインスタンス(オブジェクト指向)
クラスはくくり、インスタンスはくくりのルールで定義された物。
イメージは車というクラスからプリウスというインスタンスを生み出すって感じ。

#####クラス内でやる事
インスタンスが持っておくべき変数や関数を定義する。
またインスタンス作成時にどのように初期設定をするか書かれる。
→コンストラクタ関数を定義し、引数をもらって初期値を作れるようにする。
→インスタンス作成時に引数として値を渡して、各インスタンスに変数の初期値を入れる。

“`Java
class Person {

private Stirng name; //ここではインスタンスに必要な変数が用意されている。

Person(String name, …) { ////()内に必要な引数を入れられる。インスタンス作成のための初期設定がいろいろ書かれる…
}

public void detailData() { //ここでインスタンスに必要な関数が書かれる
}
}
“`

#####補足
・クラス内で書かれているthisは、作られたこのインスタンス自身

元記事を表示

【初心者向け】今度こそわかるDI〜DIの基礎とSpringにおけるDI〜

## はじめに
DIとはDependency Injectionの略であり、日本語では「依存性の注入」と訳されることが多いです。

新卒だったころにSpringに触れた私は、初めてこの概念を聞いた時に頭に浮かんだのは、はてなマークでした。DIの概念やDIコンテナ、Springにおけるアノテーションとの結びつきがピンとこなかったのです。

今回は初心者だったころの自分にあてて、DIの概念およびSpringにおけるDIについて自分なりに整理しつつ、簡単にまとめていきたいと思います。

##依存性(Dependency)とは
依存(性)とは何かということはソースコードで示したほうがわかりやすいと思います。

“`java:Main.java
public class Main {
public int hoge() {
var sub = new Sub();
return sub.calculate();
}
}
“`

Mainクラスのhogeメソッド内で、Subクラスのインスタンスを生成し、利用しています。
このようなMainクラスが

元記事を表示

デプロイ失敗

エラー内容

[INFO] ————————————————————————
[INFO] BUILD FAILURE
[INFO] ————————————————————————
[INFO] Total time: 2.360 s
[INFO] Finished at: 2020-03-15T14:42:24Z
[INFO] ————————————————————————
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on

元記事を表示

twitter4j使用ソースをデプロイしたら失敗した

■twitter4jをデプロイしたら失敗した

■エラー

[INFO] ————————————————————-
[ERROR] COMPILATION ERROR :
[INFO] ————————————————————-
[ERROR] /tmp/build_a4ed9f5ff44d78cc39ef296374348ae6/src/main/java/dev/GetTweetTest.java:[9,17] package twitter4j does not exist
[ERROR] /tmp/build_a4ed9f5ff44d78cc39ef296374348ae6/src/main/java/dev/GetTweetTest.java:[10,17] package twitter4j does not exist
[ER

元記事を表示

[開発]Javaフレームワーク比較

個人メモ

# 【Javaフレームワーク】
| No | フレームワーク | 開発 | 公開年 | バージョン(確認日時) | 概要 |
|—-|—————————————————————–|—————-|——–|———————-|———————————————————————|
| 1 | [Play Framework](https://www.playframework.com/) | Guillaume Bort | |

元記事を表示

Spring SecurityでDB認証&BCryptでハッシュ化

# 概要
* Spring Securityで必要最低限のログイン機能を実装する。(権限周りは触れません。)
* ログインフォームなどはSpring Securityで用意されているものを使う。
* 仕組みはあまり理解できていないので、また別でまとめます。
* この投稿はとりあえず、動くようになったというところまで!

# 開発環境
* OS:Windows10
* IDE:eclipse 2019-12
* Java:13
* Spring boot:2.2.5(Gradle)
* DB:Oracle 12c

# Spring Securityの導入
## 依存関係で下記の4つを選択
* Spring Security
* Spring Web
* Spring Data JPA
* Oracle Driver ←使用するDBのDriverを選択してください
![2020-03-15-14-06-34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/364697/5974c5b7-

元記事を表示

Minecraft Modding 1.12.2

# Minecraft Modding 1.12.2

MinecraftのMod開発は大きいバージョンだけではなく、小さいバージョンでも細かい差異があり、わかりにくい状況が続いています。
なので、この記事にたどり着いたユーザーの助けになるかはわかりませんが、少しでもヒントになればと思い書いております。

ソースコードを直接確認したい方は[Github](https://github.com/AkasakiTomohiro/TutorialMod-1.12.2)を参照ください。

下記の内容を随時作成していこうと思っています。

– Proxy機能
– アイテムの追加
– 食べ物の追加
– 魚の追加
– 作物の追加
– クリエイティブタブ追加

私自身、まだまだ勉強している最中ですので説明に間違いなどがありましたら、コメントをお願いします。

## 環境

– IntelliJ IDEA
– Minecraft 1.12.2
– Minecraft Forge 14.23.5.2838

開発環境は[ここ](https://qiita.com/Akasaki/items/3918d7

元記事を表示

初心者から始めるJava、インスタンス

#はじめに
この記事は備忘録である。
参考書レベルの内容だが、本記事に掲載するコードについては、
~~**間違えた**ものが中心となる。これは実際にコーディング中に間違えた部分を掲載し、自分で反省するために投稿するという目的によるもの。~~
また、後日にJavaSilver試験問題の勉強を兼ねて復習するため、深い部分の話はここでは触れない。

##環境
言語:Java11、JDK13.0.2
動作環境:Windows10

#インスタンス
以前、オブジェクトとインスタンスを混同して話していたように記憶しているが、改めて触れてみたい。
まずはいつもの通り`Cat`クラスを用意する。

“`Java:Cat.java
class Cat
{
public static int sumCats = 0;

private int age;
private double weight;

public Cat()
{
age = 0;
weight = 0.0;
sumCats++;
System.out.println(“新しい猫ちゃんが

元記事を表示

[Scala]コンストラクター

オーグジリアリコンストラクター (this(), or .this) について公式リファレンス内をうろうろしていたのですが、見つからなかった代わりに二次情報としてコンストラクターの記事があったので、内容はおおよそ文献の翻訳です。

コンストラクターは、オブジェクトの状態を初期化する為に使用します。メソッド同様、ひとつのコンストラクターはオブジェクト作成時に実行される命令の集合も含んでいます。

Scala には二種類のコンストラクターがサポートされています。

1. プライマリーコンストラクター
2. オーグジリアリコンストラクター

プログラムに含まれるコンストラクターが一つしかない時、それをプライマリーコンストラクターと呼びます。プライマリーコンストラクターとクラスは同じ本体を共有する為、プログラマがコンストラクターの作成を明示的に宣言する必要はありません。

“`scala
class Hello(name) {
// Statements
}
“`

– 上記の構文において、プライマリーコンストラクターはクラスと同じ本体を共有します。メソッドの宣言を除き、クラスの本体

元記事を表示

メソッドを呼び出して数をカウントしたいです

#コンソールに出力したい結果は以下です
ブラックジャックへようこそ!
貴方の1枚目のカードはハートのQ
ディーラーの1枚目のカードはダイヤのA
貴方の2枚目のカードはハートのA
ディーラーの2枚めのカードは秘密だよ
あなたの現在のポイントは11です
カードを引きますか? Yes:y or No:n

ーーーーーーーーーーーーーーーーーーーーーーーー
プレイヤーの何枚目、という部分をメソッドを使い1、2、3・・・としたいです。

##現状は以下です
ブラックジャックへようこそ!
貴方の0枚目のカードはハートのQ
ディーラーの1枚目のカードはダイヤのA
貴方の0枚目のカードはハートのA
ディーラーの2枚めのカードは秘密だよ
あなたの現在のポイントは11です
カードを引きますか? Yes:y or No:n
##ソースコードを載せます
“`
package blackjack;

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class MainGame {

pu

元記事を表示

C言語のリンクリストをオブジェクト指向風に書いてみる(PythonとJavaとのコード比較あり)

## はじめに

最近、「C言語でリンクリストを書いてみた」という投稿を2件みかけました。
いずれも、C言語らしい書き方をしておられましたので、オブジェクト指向風な書き方をコメントさせていただきました。

* [リンクリストの練習 その1 – Qiita](https://qiita.com/Kippie/items/b8a0c092b8e9c591b473)
* [C言語 再帰処理とリンクリスト構造を使った数字のリスト – Qiita](https://qiita.com/Kchan_01/items/359a63b796ea90df26ff)

オブジェクト指向風な書き方をすることで、オブジェクト指向の理解の助けになればと思い、本記事を書くことにしました。
難しいオブジェクト指向の考え方は抜きにして、構造体の拡張版=ユーザ定義型としてクラスを使います。

## リンクリスト

リンクリストについては、他の記事やサイトをご覧ください。
参考: https://ja.wikipedia.org/wiki/連結リスト

まず、リンクリストに使う構造体を2種類用意します。

* `stru

元記事を表示

Java 定数の設定の仕方

– 先頭に”final”を付けて、値を設定すると、その値を変えようとしてもエラーになる。
– `final double TAX = 1.10;`

元記事を表示

IntelliJでJavaをKotlinへ変換する 〜その2〜

# はじめに

[IntelliJでJavaをKotlinへ変換する 〜その1〜](https://qiita.com/kaad/items/8292a8e53f62a61caa34)の続きです。
今回は変換をしていて**「Kotlin便利だな」**や**「スマートに書けるな」**と感じたところを紹介します。

## Source

こちらにコミットしてますので、合わせてご確認ください。
https://github.com/ken-araki/line_bot_kotlin

# java to kotlin

## Collection操作が楽

`stream`や`Lists`を使わずスマートにかけます。
今回は、以下のように書き換えました。

|java|kotlin|
|:–|:–|
|list.stream().limit(10)|list.take(10)|
|list.stream().skip(10)|list.drop(10)|
|List list = Lists.partition(list, 3)|list.chunked(3)|

ちなみに、

元記事を表示

[Java]リストをストリームとラムダ式を利用して並び替え

### リストをストリームとラムダ式を利用して並び替え
ストリームとラムダ式を利用することで、リストの並び替え処理のコーディングを減らせる

### コード例
“`java:Main.java
package sample;
import java.util.List;
import java.util.stream.Collectors;

public class Main {
public static void main(String[] args) {
// リストの設定(addメソッドを使わない方法)
List sampleList = List.of(“Ishikari”,”Sorachi”,”Shiribeshi”,”Iburi”,”Hidaka”,”Hiyama”,”Oshima”,”Rumoi”,”Kamikawa”,”Soya”,”Tokachi”,”Kushiro”,”Okhotsk”,”Nemuro”);

// 作成したリスト samples を確認

System.out.println(sampleList);
S

元記事を表示

初心者から始めるJava、オーバーロード・コンストラクタ

追記 2020/3/15
・多態性について、より抽象度の高い考え方であることをコメントで教えていただいたので、オーバーロードとの関係について修正。

#はじめに
この記事は備忘録である。
参考書レベルの内容だが、本記事に掲載するコードについては、
~~**間違えた**ものが中心となる。これは実際にコーディング中に間違えた部分を掲載し、自分で反省するために投稿するという目的によるもの~~。
また、後日にJavaSilver試験問題の勉強を兼ねて復習するため、深い部分の話はここでは触れない。

##環境
言語:Java11、JDK13.0.2
動作環境:Windows10

#オーバーロード
クラスの中では、同じ名前のメソッドが同居しても構わないルールがある。
ひとつのメソッドの中で、扱う引数を無制限に増やしてもすべての引数を一度に宣言するのは難しいので、必要な機能に分けて用意した方が、クラスを使う側からしても楽になる。

“`Java:Cat.java
getCatStatus(double weight,double height){
(略)
}
getCatStatus(int a

元記事を表示

【アルゴリズム入門】Javaでバブルソートを実装する

バブルソートを定義すると「隣接する要素の大小を比較して、昇順もしくは降順に整列するアルゴリズム」と言える。

今回は昇順に整列するアルゴリズムをjavaで実装した。
#**ソースコード**

“`BubbleSort.java

public class BubbleSort {
public static void main(String[] args) {
int[] data = {30, 60, 70, 90, 20};
sort(data);
for(int element : data) {
System.out.println(element);
}
}

public static void sort(int[] data) {
for(int i = data.length – 1; i > 0; i –)/*…⒈*/ {
for(int j = 0; j < i; j++)/*...⒉*/ { if(data[j] > data[j + 1]) {

元記事を表示

Spring (STS)のpom.xmlに記述するためのio.spring.platformの最新バージョンの確認方法

# Spring の環境構築時に使用する依存ライブラリのバージョンを調べる方法

Springの環境を構築するときに、pom.xmlの中に依存ライブラリの指定をする必要がある。その際に使用するio.spring.platformの最新バージョンが何かを調べる方法である。
調べた結果は、下記に示すpom.xmlの
<version>???</version>
のところに記述する。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/586772/e95085b6-827d-ac1b-0729-40850e5b14d9.png)

1. mvnrepository.comのサイトに行く。
https://mvnrepository.com/

2. 検索用のテキストボックスに「io.spring.platform」と入力してSearchボタンを押す。

![image.png](https://qiita-image-store.s3.ap-northeast-1.am

元記事を表示

[Mockito] 3.2.4 → 3.3.xにアップデートしたら(イケテナイところが)エラーになった件

Mockito 3.2.4から3.3.x(3.3.3)にアップデートしたら・・・スタブを設定しているコードが冗長?だったことが原因でエラーになってしまいました。

# どんなコードだったの?

こんなコードでした。

“`java
when(rs.getInt(“column”)).thenReturn(100);
assertEquals(Integer.valueOf(100), TYPE_HANDLER.getResult(rs, “column”));

when(rs.getInt(“column”)).thenReturn(0);
assertEquals(Integer.valueOf(0), TYPE_HANDLER.getResult(rs, “column”));
“`

# どんなエラーになったの?

こんなエラーです。

“`
org.mockito.exceptions.misusing.UnnecessaryStubbingException:
Unnecessary stubbings detected.
Clean & maintaina

元記事を表示

Firebase Realtime Database を Cocos Creatorで使う。

##はじめに
初投稿です。こんにちは。
昨今ではクロスプラットフォームのゲームエンジンといえば Unity 一択で、
次点でどうにかUEが出てくる程度じゃないかと思います。
そんな中 cocos creator に手を出したのはいいものの、情報が少なく割と困ったので、備忘録がてら投稿します。

##したいこと
cocos creator で開発中のアプリで Firebase の Realtime Databaseにアクセスする。

##方法
cocos creator は Node.js を利用しているので基本的には npm を利用する。
ただし、この方法ではAndroid上では動作しなかった。(iOSやWeb上では問題ない)
仕方なくAndroid StudioでFirebase Databaseを導入し、それをJavaを通じて呼び出すという手法をとりました。

##npm install –save firebase
Cocos creator のプロジェクトフォルダでターミナル等を使って

“`
npm install –save firebase
“`
を実行する。

元記事を表示

OTHERカテゴリの最新記事