JAVA関連のことを調べてみた2022年05月25日

JAVA関連のことを調べてみた2022年05月25日

【SAP BTP】CAP Service SDK for JavaでOData APIを作ってみる(1)

# はじめに

[CAP(SAP Cloud Application Programming Model)](https://cap.cloud.sap/docs/)を利用してBTP環境にデプロイするODataAPIを作ってみます。

以前にも一度試しているものの、WebIDEベースの開発であり、最近では使えないこともあるのでBusiness Application Studioで実施しました。
今回の手順だとVSCodeなどのローカル開発環境でもほぼ同様に作れると思います。
[SAP CP Trial環境でMulti Target Applicationを作ってみる【ODataService_V2の作成】](https://qiita.com/yonekura-h/items/62abe8b4ff1a747bd2e9)

BTPでのJava開発には[SAP Cloud SDK](https://sap.github.io/cloud-sdk/docs/overview/overview-cloud-sdk)もあり、CAPプロジェクトとの統合も可能です。
SAP Cloud SDKには

元記事を表示

Java Byte Code

Java Byte Code
Java Virtual Machine
を知るためのリンク

Java class file
https://en.wikipedia.org/wiki/Java_class_file

The class File Format
https://jcp.org/aboutJava/communityprocess/maintenance/jsr924/JVMS-SE5.0-Ch4-ClassFile.pdf

Java bytecode
https://en.wikipedia.org/wiki/Java_bytecode

Java virtual machine
https://en.wikipedia.org/wiki/Java_virtual_machine

List of Java bytecode instructions
https://en.wikipedia.org/wiki/List_of_Java_bytecode_instructions

Java仮想マシン
https://ja.wikipedia.org/wiki/Jav

元記事を表示

bouncyCastleのrijndealクラスをpowershellで再現する

## 目的

bouncyCastleで使われていたjavaのrijndealクラスによる暗号化、復号処理をpowershellで再現する内容

鍵長は256ビットになっていなければならない。

## rijndealとは
暗号化処理の規約になったAESとして採用された暗号化方法

IV(Initial Vector)と内容を暗号化した文字列を使って
暗号化文字列が作られている。

この時暗号化した文字列(鍵長)を128ビット、192ビット、256ビットの3つを選ぶことができた。

AESは統一化のために、128ビットで固定化されている。

## RijnDealクラスをPowerShellで実装する際の注意

powershellは.NETで構成されているが
AESの暗号化のロジックだとうまく作れない。
rijndealだと鍵長を256ビットにできるが、AESでは128ビット固定になってしまう。128ビット以外はエラーになってしまう。
https://sp.otsuka-shokai.co.jp/words/aes.html#:~:text=AES%E3%81%A8%E3%81%AF

元記事を表示

SpringSecurityでCORSの設定

SpirngSecurityでCORSの許可方法は以下の処理になります。

“`java:WebSecurityConfig
/**
* CORS設定
*/
@Bean
CorsConfigurationSource corsConfigurationSource() {

CorsConfiguration configuration = new CorsConfiguration();

//CORSで許可する値を設定
//許可するURIを設定 レスポンス側のURI
configuration.setAllowedOrigins(List.of(“http://localhost:3000”));

//許可するメソッドを設定 GET,POST,PUT,DELETE
configuration.setAllowedMethods(Arrays.asList(“GET”, “POST”));

//許可するヘッダーを設定 Content-Type等、、、
configuration.set

元記事を表示

PostgreSQL — CopyManagerで高速コピー

postgreSQL でテーブルをコピーするとき、javaからCopyManagerを使うと速いらしいので、検索してみたが、一回ファイルに落とすサンプルばかりで、直接コピーしてるものがなかなか見つからなかったので、誰かの役にたつかなっと思い投稿してみました。
↓ の ソースは、前半コピー元テーブルにファイルからコピーして、後半、コピー元テーブルからダイレクトにコピー先テーブルへコピーします。
ポイントはコピー元テーブルからの読み込みで、PGCopyInputStream()を使用しますが、その時CopyManager()で使用するコネクションとは別のコネクションをもう一つ用意しないとダメってところです。
ここで、結構ハマりましたが、よくよく考えるとinとoutで同じファイルディスクリプタを使えないのと同じ理屈でした。

public static void main(String[] args) throws Exception {
if(args.length!=4) {
System.out.println(“Please speci

元記事を表示

auカブコム証券のkabuステーションPUSH APIを受信してCSVファイルへ保存する(複数銘柄対応版)

# はじめに

前記事
1. [auカブコム証券のkabuステーションREST APIをcurlで叩く](https://qiita.com/hiuchida/items/fcdd3d6ff921b386a37e)
2. [auカブコム証券のkabuステーションREST APIをjava(generated by the swagger code generator)で叩く](https://qiita.com/hiuchida/items/73b7fc846d4c9501ef2f)
3. [auカブコム証券のkabuステーションREST APIの残高照会をcurlとjavaで叩く](https://qiita.com/hiuchida/items/9eb5336755a3d1b1a3df)
4. [auカブコム証券のkabuステーションREST APIの残高照会から先物OPのdeltaを計算する](https://qiita.com/hiuchida/items/6e0d8d5114192bec1632)
5. [auカブコム証券のkabuステーションREST APIのテスト用モック

元記事を表示

Java 2週目

第2週目 Jump to java 読み
ジャワはオブジェクト指向言語である
ジャワはオブジェクト指向(ObjectOriented)プログラミング言語である。
オブジェクト指向にはクラス、オブジェクト、インスタンス、相続、インタフェース、多形成、抽象化などの多くの概念が存在する。

class Animal {
}
最も簡単な形のクラスだ。 クラスの宣言だけあって中身のない殻だけのクラスだ。 しかし、この殻だけのクラスも非常に重要な機能を持っている。 その機能はオブジェクトを作る機能である。

public class Sample {
public static void main(String[] args) {
Animal cat = new Animal();
}
}

簡単なクラス宣言により、数多くのオブジェクト生成が可能である。
クラスによって作られたオブジェクトをインスタンスともいう。 それでは客体とインスタンスの違いは何だろうか。
こう考えてみよう。 Animalcat=newAnimal()このように作られたcatはオブジェクトである。 そしてcatというオブジ

元記事を表示

Helidon JPA アプリのデータベース接続を Oracle にして、更に GraalVM でネイティブ・イメージにしてみた

# はじめに

マイクロサービス向けの Java フレームワーク [Helidon](https://helidon.io/) は GraalVM のネイティブ・イメージ作成に対応していますが、実践的な構成でもネイティブ・イメージにできるか、検証してみたいと思います。
具体的には、Helidon MP を使って
( REST Client ) → JAX-RS → JPA/JTA → Oracle JDBC Driver → ( Oracle Database )
のスタックで構成されるサーバ・アプリケーションをネイティブ・イメージにできるか&正常動作するか試してみましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/544382/29b4405d-f1ab-263c-7417-44576408afdc.png)

# 手順

1. GraalVM, Maven, Oracle Database, Helidon CLI の準備
1. Helidon CLI を使って JPA

元記事を表示

Apache PDFBoxを使用してPDF出力(日本語フォント)

## はじめに
現在プロジェクトでSpring(Java)を使用しているのですが、PDF出力機能が要件にあり、1日ほどハマってしまったので
備忘録がてら記事にしました。JavaでPDF出力するにあたって、商用利用可能であること、form操作ができること、メジャーなライブラリであることを
条件に探していたところPDFBox(バージョン2.0.22)というApache License 2.0のライブラリが見つかったので今回はそちらを採用しました。
また今回のPDF出力機能は、白紙の状態から文字をPDF出力するものではなく、決まったPDFテンプレートがあり、それらに対して、
データをマッピングして出力する要件でした。

## 何が起きたか?
白紙の状態からPDF出力するなら日本語の記事がたくさんあるのですが、今回のように
テンプレートを読み込んでそこから日本語出力するという記事や公式ドキュメントが中々見つからず苦労しました。
白紙からの出力ならここで丁寧に解説されていますので参考にしてみて下さい。
https://weblabo.oscasierra.net/java-pdfbox-1/

元記事を表示

387 解答

# 参考
[Kevin Naughton Jr.](https://www.youtube.com/watch?v=St47WCbQa9M)
# 考え方
non repeating == unique と関連付ける。

unique -> Set or Map? Set も Map もunique なものしか収納できないので便利。

この問題はindexを求めないといけないので、key(Character),value(Integer(Index))にしたほうが楽。
# 解答
“`Java
public int firstUniqChar(String s) {
Map input = new HashMap<>();

for (int i = 0; i < s.length(); i++) { char current = s.charAt(i); if (!input.containsKey(current)) { input.put(current, i); } else { input.

元記事を表示

マージしたチャートデータからテクニカル指標を計算する(MACD編)

# はじめに

前記事
1. [auカブコム証券のkabuステーションREST APIをcurlで叩く](https://qiita.com/hiuchida/items/fcdd3d6ff921b386a37e)
2. [auカブコム証券のkabuステーションREST APIをjava(generated by the swagger code generator)で叩く](https://qiita.com/hiuchida/items/73b7fc846d4c9501ef2f)
3. [auカブコム証券のkabuステーションREST APIの残高照会をcurlとjavaで叩く](https://qiita.com/hiuchida/items/9eb5336755a3d1b1a3df)
4. [auカブコム証券のkabuステーションREST APIの残高照会から先物OPのdeltaを計算する](https://qiita.com/hiuchida/items/6e0d8d5114192bec1632)
5. [auカブコム証券のkabuステーションREST APIのテスト用モック

元記事を表示

【HTML】セレクトボックスで動的に初期値を設定する

## 概要
HTML(jsp)のセレクトボックスで動的に初期値を設定する。
具体的には以下の内容。
①Controller部分で初期値をスコープに格納
②Controller部分セレクトボックスの選択肢を作成&スコープに格納
③HTML(jsp)で初期値を設定した状態でセレクトボックス出力

## ソースコード
“`java:Controller.java
// 初期値作成&格納
String currentYear = “2022年”
// ②セレクトボックスの選択肢作成&格納
List yearList = new ArrayList<>();
yearList.add(“2016年”);
yearList.add(“2017年”);
yearList.add(“2018年”);
yearList.add(“2019年”);
yearList.add(“2020年”);
yearList.add(“2021年”);
yearList.add(“2022年”);
yearList.add(“2023年”);
yearList.add(“2024年”);
model.

元記事を表示

【新卒SE】 Java入門 〜DAOデザインパターンとはなんぞや〜

 webアプリケーション開発の研修で突如出てきたこのDAOパターン。『〜だお』みたいな舐めた口の聞き方みたいな印象でよく分からなかったので、勉強がてらまとめてみます。
 ちなみにデザインパターンはソフトウェア開発(Javaを含む)において、よく使用される設計や問題解決策をノウハウとしてまとめたもの。

# MVCモデル
 まずDAOを説明するにあたって、webアプリ開発における必須事項を簡単に確認します。

|名前 |  内容    |
|:——————|:—–:|
|モデル(Model) |データベースとのやりとりなど、実際の機能の処理を担う。|
|コントローラー(Controller) |モデルやビューに命令したり、アプリケーション全体の制御を担う。CPU的な。|
|ビュー(View) |ユーザーが見る画面。入力処理や表示処理を担う。|

図で見るとこんなイメージ。
![スクリーンショット 2022-05-23 0.20.40.png](https://

元記事を表示

SpringBootでログインユーザーの登録情報を使用

# やりたいこと
SpringBootにおいて、フロント側でログインしているユーザーの情報を扱いたい。ユーザーidごとに表示を変えたり、ログインしているロールによって表示を変えたりなどが柔軟に表現できる。

# 手順
いかに大まかな手順をメモ。
## DAOでサーバー側からユーザー情報を取得
これはシンプルにapiを叩いてユーザー情報を取得するDAOを実装するだけ。略。

## UserDetailsServiceを実装したクラスの作成
UserDetailsServiceはSpringBootが提供するインターフェースである。抽象メソッドであるloadUserByUsernameをオーバーライドする。このメソッドはUserDetails型のオブジェクトを返却するように実装する。
“`java
@Service
public class UserDetailsServiceImpl implements UserDetailsService {
private final Dao dao;

public UserDetailsServiceImpl(Dao

元記事を表示

Spring Boot設定ファイル読み込み

# 設定ファイルに記述
Spring Bootではapplication.ymlやapplication.propertiesに設定項目を書き込んでいく。

“`yml
server:
port: 8080

api:
host: [ホストのドメイン]
port: 8080
“`

# 読み込み
設定ファイルに項目を書き込んだ後には読み込みが必要。ここで@ConfigurationPropertiesアノテーションを使用することで、Config用のクラスから読み込み可能。通常はセッターでプロパティを設定する必要があるが、@ConstructorBindingを使用することで、コンストラクタで初期化時でプロパティを設定し、以降は変更しないようにできる。(セッターは不要)
“`java
@ConstructorBinding
@ConfigurationProperties(prefix = “api”)
public class ApiConfiguration {
private final String

元記事を表示

JAVA 基礎1

Class
– オブジェクトを定義、オブジェクトの設計図または枠組

​Object(オブジェクト)
– 実際に存在するもの、ソフトウェアで実装される対象


Instance
– Classをもとにソフトウェア世界に実装された具体的な実体
– オブジェクト化を実体化するとインスタンスになる。
– オブジェクトがメモリに割り当てられ、実際に使用される際にインスタンスと呼ばれる。

オーバーローディング(Overloading)
– メソッドの名前は同じだが、媒介変数の個数やタイプが異なる

public class Calculator{
public void sum(int x,int y) {
int sum= x+y;
System.out.println(sum);
}

public void sum(float x, float y) {
float sum = x+y;
System.out.println(sum);
}
}

最初のsum()にはインスタンス値をint(整数)のみ2つ入力
2番目のsum()にはインスタンス値をflo

元記事を表示

テーブル作成 + Ajax(json) + Java(Spring Boot)

### [table.html]
““








元記事を表示

ListViewを2行表示してカスタマイズするには

# はじめに
こんにちは、Hideです。
javaに関する記事を投稿しています。

今回は、ListViewをカスタマイズする方法を投稿します。

# ListViewとは
ListViewはスクロール可能なアイテムのリストを表示するViewグループです。
Adapterは配列またはデータベースなどからそれぞれの要素をリストに入れられるように変換し自動的に挿入してくれます。

# カスタマイズするにあっての手順
ListViewの各行をカスタマイズするには以下の手順でする

一つ目は1⾏分のレイアウトxmlファイル(row.xml)を⽤意する。
レイアウトの書き方は以下のような感じで書く(ファイル名は何でも良い)
“`text
 
  
  
  
  
 

“`
※レイアウトファイルを作成する際、ルートレイアウトタグの
 android:layout_height

元記事を表示

while文について

## while文とは

Javaのwhile文についてまとめてみた。

– while文は繰り返し処理の構文
– 書き方
  ` while(繰り返し条件){繰り返し処理}`
– 繰り返し条件の記述はfor文より単純。条件がtrueなら繰り返し処理を行う。

“`Java
class Sample1_11_1 {
public static void main (String[] args) {

/*コマンドライン引数で受け取った数字の累乗の数のうち、100未満のもののみを表示するプログラムを作る。
**【例】コマンドライン引数での入力:3 → 表示される数:3 , 9 , 27 , 81
*/

int receiveNumber = Integer.parseInt(args[0]) ; //ループ毎にcalcNumberに掛ける数(コマンドライン引数で受け取った値)
   //receiveNumberは常に3が代入されている
int

元記事を表示

ABC252のA~Cが解けたので書いた記事[Java]

## はじめに
これはコンテスト中に解いた解法なので少々煩雑だとは思いますが、ご理解いただけると嬉しいです。

では、コードを解説していきます。

## A – ASCII code
問題文は[こちら](https://atcoder.jp/contests/abc252/tasks/abc252_a)

普通にint型をchar型に変型して出力してやればいいです。
“`A.java
import java.util.*;
class Main{
static Scanner sc = new Scanner(System.in);

public static void main(String[] args){
//値の取得
int N = readI();
//Nをchar型に変型して出力
System.out.println((char)N);
}

//以下使用したテンプレ
public static int readI(){return sc.nextInt();}
}
“`
最初言語をPythonとして提出しちゃ

元記事を表示

OTHERカテゴリの最新記事