JAVA関連のことを調べてみた2021年07月19日

JAVA関連のことを調べてみた2021年07月19日

ApachePOIを色々連携する話

こんにちは
======
先日ApachePOIを導入→出力するという内容を投稿したものですが
あれでは全然実用性がないジャナイカ
もっといろいろ連携したいジャナイカ
HTMLやJspの内容を出力したいジャナイカ

ということで
本日の議題はこちら

データベースから引っ張ってきた値を
jspでtableタグに放り込んで表を作り、
それをさらに出力できるように
あわよくばスタイル設定までしちゃおう!!

のコーナー

はい
急になんか複雑な感じに見えてきます
でも大丈夫です
プログラミングを初めて4か月目の僕でもできました
つまりはサルでもできるはおろか
犬でもできます
ワン。

ということで早速前提条件を揃えていきましょう
この記事を見ている方からしたら
データベースから値をとってきて、jspにsessionで送り
jspでEL式で表を作るなんてことは朝飯前はおろか
朝起きてうがいするより前にできることでしょう

この時のポイントとして、送りたい表を作っている部分を
formタグで囲いましょう
今回はボタンを押すとXlsx形式でDLできるようにしたいので

“`jsp:そういうやつ

元記事を表示

Couchbase Java SDK解説:分散トランザクションの内部メカニズム

## はじめに

本稿は、分散トランザクションの内部メカニズムについて概観を与えることを目的としています。

本記事の関連情報として以下をご参照ください。

[Couchbase Java SDK解説:分散トランザクション〜エラー処理を理解する](https://qiita.com/yoshiyuki_kono/items/d7eb2b9553d858c7cb93)

[Couchbase Java SDK解説:分散トランザクションプログラミング入門](https://qiita.com/yoshiyuki_kono/items/4efb2f1f5a03051e28c5)

### アクティブトランザクションレコードエントリ

トランザクションとして実行されるアプリケーションロジックを含むラムダブロックは、トランザクションライブラリによって複数回実行される可能性があります。この場合の各実行を、ここでは「試行」と呼びます。

各試行は、ドキュメントのメタデータにエントリーを追加します。このメタデータエントリーは、アクティブ・トランザクション・レコード(ATR)と呼ばれます。エントリーの

元記事を表示

[Jersey]BeanValidationで入力値検証してみる

# はじめに

Tomcat + Jersey という構成の Web アプリケーションの動作を理解するために、[Tomcat Embed](https://mvnrepository.com/artifact/org.apache.tomcat.embed) を使って実験をしていきます。
いまどきこんな構成で開発を始めることは少ないかと思いますが、レガシーソフトウェアと戦う人たちの助けになれば幸いです。

## 関連記事の一覧(予定)

– [埋め込みTomcatでJerseyを動かしてみる](https://qiita.com/atti/items/fa3843f75c4bd669059a)
– [HK2でDIしてみる](https://qiita.com/atti/items/3f6f43c5168323344427)
– BeanValidationで入力値検証してみる ← イマココ
– TomcatとJerseyでトランザクション管理してみる

## リポジトリ

https://github.com/at6ue/tomcat_embed-jersey

なお、リポジトリは `

元記事を表示

SpringBootで非同期する時の設定値をラーメン屋の行列に喩える

SpringBoot環境でマルチスレッド処理を行う機会があり、これらの設定値の意味が分かりづらかったので記載。

### 設定

“`Java
ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
executor.setCorePoolSize(10);
executor.setQueueCapacity(3);
executor.setMaxPoolSize(3);
executor.initialize();
“`

### それぞれ何の値なのか?

CorePoolSize…スレッドプール内で待機しているスレッドの初期数。

QueueCapacity…CorePoolSize分のスレッドがすべて実行中の時にタスクが投げ込まれると、既存のスレッドに対して待ちタスクが発生する。その待ちタスクの最大値。

MaxPoolSize…タスクが投げられ続け待ちタスクが最大値を超えると、スレッドが増えていく。MaxPoolSizeより多くのス

元記事を表示

Eclipse でJavaFXを使用する方法(Mac)

## 最初に
とある課題でJava FXを使用してGUIを作らなければならなかったのですが、Eclipse上でJava FX Projectを作成、起動させる方法が非常にややこしくて忘れてしまいそうだったので、健忘録代わりに記載します。

まず前提として現在のEclipseで標準となっているJavaのComplilerはversion 16です。ただ、JavaFXはJava11までしか標準で入っていないため、Java11 のフルバージョンをインストールしたら自動でJava FXが使えるようになっている、、、、という記載だったのですが、僕の場合はうまくいかなかったです。
結局、AdoptOpenJDK 11.0.11をインストールしてパスを設定ー>その後JavaFXSDK をインストール->project毎にJavaFXを設定する
方法でしかうまくいきませんでした。

# ① javaJDK11, JavaFX SDKをインストールする
まず以下の記事を参考にJava11をMacにインストール+パスの設定をしてください。
なお、JDKにはAdoptOpenJDK 11.0.11 の他にも

元記事を表示

NLP4J – Java で構文解析(Cabochaを利用)

[Index](https://qiita.com/oyahiroki/items/ba79a759c599d3459d29)

# CaboCha/南瓜とは
CaboCha は, Support Vector Machines に基づく日本語係り受け解析器です。

CaoboCha: Yet Another Japanese Dependency Structure Analyzer
https://taku910.github.io/cabocha/

| 項目 | 説明 |
|:———–|:————|
| 提供者 | 工藤拓 |
| 提供形式 | Cプログラム / ライブラリ |

#実行前提条件

Cabocha がインストールされていて、コマンドラインから呼び出し可能になっていること。

“`
>cabocha
今日はいい天気です。
今日は—D
いい-D
天気です。
EOS
^Z

>
“`

#Maven Dependency

“`xml

元記事を表示

NLP4J – Java で 英語の構文解析(Stanford NLPを利用)

[Index](https://qiita.com/oyahiroki/items/ba79a759c599d3459d29)

# Stanford NLPとは

スタンフォードNLPグループが提供する、主要な計算言語学の問題に対して、統計NLP、深層学習NLP、およびルールベースのNLPツールです。

Software – The Stanford Natural Language Processing Group
https://nlp.stanford.edu/software/

| 項目 | 説明 |
|:———–|:————|
| 提供者 | スタンフォード大学 スタンフォードNLPグループ |
| 提供形式 | Java ライブラリ |

#Maven

“`xml


org.nlp4j

元記事を表示

NLP4J – Java で形態素解析(Mecabを利用)

[Index](https://qiita.com/oyahiroki/items/ba79a759c599d3459d29)

# MeCab (和布蕪)とは

MeCabは 京都大学情報学研究科−日本電信電話株式会社コミュニケーション科学基礎研究所 共同研究ユニットプロジェクトを通じて開発されたオープンソース 形態素解析エンジンです。

MeCab: Yet Another Part-of-Speech and Morphological Analyzer
https://taku910.github.io/mecab/
MeCab – Wikipedia
https://ja.wikipedia.org/wiki/MeCab

| 項目 | 説明 |
|:———–|:————|
| 提供者 | 工藤拓 |
| 提供形式 | Cプログラム / ライブラリ |

#実行前提条件

Mecab がインストールされていて、コマンドラインから呼び出し可能になっていること。

“`
>mecab
今日はい

元記事を表示

JavaDoでしょうに参加した

昨日、こちらの「〈7/17〉Java 17 までの新文法をオンラインモブプログラミングで体験会」に参加した

https://javado.connpass.com/event/217537/

スライドはこちら。

https://qiita.com/gishi_yama/items/271f60cb7bb35f59009a

最初にJava17の機能についてスライドで説明、後半はモブプロを行った。

Java17のrecord機能が個人的にいいと思う。
モブプロもみんなで意見を出し合ったのが楽しかった。

元記事を表示

【令和最新版】猿でもわかるJNA(Java Native Access)の使い方

JNAの日本語記事って少なくないですか?
出てきたとしても2、3年前の記事でどうにも情報が古かったり、少なかったり、今と違っていたり。これはそんな状況を一新させるための記事です。(ちなみにIDEは IntelliJ IDEA Community を使用していますが Eclipse でも大体同じ手順です)
## JNAのダウンロード
JNAの準備は簡単で`JAR`ファイルを[GitHub](https://github.com/java-native-access/jna)からダウンロードしてモジュールの依存関係に追加するだけです。(JNA Platformというのもありますが取り敢えず今は無視)
![JARファイルをインポート](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/807403/d82fe654-0b1c-be46-d0e7-012596a92506.png)
## 基本的な使い方
サンプルとして次のコードを用意しました。コンパイルに成功するとWindows標準のビープ音が鳴るはずです。

“`jav

元記事を表示

NLP4J – Java で 英語の形態素解析(Stanford NLPを利用)

[Index](https://qiita.com/oyahiroki/items/ba79a759c599d3459d29)

# Stanford NLPとは

スタンフォードNLPグループが提供する、主要な計算言語学の問題に対して、統計NLP、深層学習NLP、およびルールベースのNLPツールです。

Software – The Stanford Natural Language Processing Group
https://nlp.stanford.edu/software/

| 項目 | 説明 |
|:———–|:————|
| 提供者 | スタンフォード大学 スタンフォードNLPグループ |
| 提供形式 | Java ライブラリ |

#Maven

“`xml


org.nlp4j

元記事を表示

JavaParserでメソッド定義を出力する

この記事ではIntelliJ IDEA 2021.1.3 (Community Edition) Runtime version: 11.0.11+9-b1341.60 amd64を使っています。

ディレクトリ以下のjavaファイルをParseします。

javaparserを使用するには、build.gradleのdependenciesに追加します。

“`gradle:build.gradle
dependencies {
implementation ‘com.github.javaparser:javaparser-core:3.3.0’
}
“`

## コード

“`java:Main.java
import com.github.javaparser.JavaParser;
import com.github.javaparser.ast.CompilationUnit;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import

元記事を表示

CRUDのWebApi開発は不要!JsonでWebApiを作れるシステムを作った話

# はじめに
タイトルの通りです
定義を設定すだけで、CRUDのRESTWebapiを作れるシステムです

似たようなもので、FirebaseのRealtimeDatabaseやFireStoreがありますが
色々と制限が多く、バリデーションが難しいようだったので作ってみました

Java(Spring Boot)とMongoDBで作りました

ここで使ったシステムです
[エンジニア・プログラマにしか使えないSNSを作ってみた話](https://qiita.com/HawkClaws/items/599d7666f55e79ef7f56)

# フロー図
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/911989/c9d9c3f3-5f05-30bc-cb2f-9c8204f82df6.png)

# フロー詳細

## WebApi定義を登録

管理者用WebApiを使用し、API定義を登録します

登録例
`apiUrl:APIのURL`
`apiSecret:認証に使用す

元記事を表示

全部 public じゃなんでダメなの?

## はじめに

Java など、オブジェクト指向言語に触れたとき困惑するものの一つが **アクセス修飾子** だと思います。
**なんでこんなもん必要なんだ** って気持ちのせいで、一向に身につかない…
全部 public でいいじゃん。無駄にアクセスできないエラーが出てくるだけじゃん。
そんな方(過去の自分を含む)へ贈る記事です。

## アクセス修飾子ってそもそも何?

とりあえず Java で話をすすめていきます。
アクセス修飾子とは以下みたいなやつですね。

““java
class MyAccess {
public String public_str = “public access OK!”; // 変数に public をつけるとどこからでもアクセスできる
private String private_str = “private access OK!”; // 変数に private をつけるとクラス内でしかアクセスできない
}

public class Main {
public static void main(String[]

元記事を表示

知恵袋で面白そうな、並べ替えクイズを見つけたので、Javaで作ってみた。

※Qiita記事初投稿です。色々至らない点などありましたら、コメントでお教え頂ければ修正します。

##質問:「ち・お・ん・ま・こ・さ・ら」を並べかえてたべるものにする

質問の知恵袋リンク:
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q13244749653

##条件と使うメソッド

条件として7つのひらがなを必ず1つ以上使うことになります。
Javaの乱数にはRandomクラスがありますが、この場合では重複厳禁なので使えません。
今回は、Collectionsクラスのshuffleメソッドを使います。

まずは、質問文通りのひらがなが入った配列と正解例の配列を用意します。

“`Java:Sorting.java
String array[] = {“ち”,”お”,”ん”,”ま”,”こ”,”さ”,”ら”}; //質問文
String correct[] = {“お”,”こ”,”さ”,”ま”,”ら”,”ん”,”ち”}; //正解例
“`

shuffleメソッドは、Collectionsクラスのメソッドな

元記事を表示

エンジニア・プログラマにしか使えないSNSを作ってみた話

# はじめに
通常のSNSで胡散臭い人が多いと感じてしまいました
プログラミングスクールが流行り、エンジニアになって億稼いでます!みたいな・・・

そこで、本当のエンジニア・プログラマしか使えないSNSを作ってみました!
つまり、WebApi提供のみのSNSです
一般ピープルが使うようなフロントエンドなんてありません!!
Postmanなり、なんなりを使って叩いてください

エンジニア・プログラマしかWebApiが叩けないであろうという考えなので、
エンジニア・プログラマにしか使えないSNS!ということです

この記事を見ている、プログラマ・エンジニアの方であれば使えますよね??

実際、WebApiが叩くことが出来れば誰でも使えてしまうわけですが・・・。

`2021/07/17 更新`
このWebApiを作ったシステムについて書きました
[CRUDのWebApi開発は不要!Json登録でWebApiを作れるシステムを作った話](https://qiita.com/HawkClaws/items/6f5a6938318fb7d7983d)

`2021/07/19 更新`
結構使って

元記事を表示

【Java発展学習13日目】UMLとアジャイル開発について

# 技術者間で利用される3つの言語
技術者間でコミュニケーションを行う場合、主に以下の3言語が利用される。

| 言語 | 内容 |
|:–|:–|
| 自然言語(natural language) | 一般に人々が利用する言語 |
| プログラミング言語(programming language) | プログラムのソースコードとなる言語 |
| モデリング言語(modeling language) | プログラム構造を端的に表現する言語(図) |

# UML(Unified Modeling Language)
[参考1: UML入門](https://www.itsenka.com/contents/development/uml/)
[参考2: UML](https://qiita.com/devopsCoordinator/items/7d460008177b318129ea)
**統一モデリング言語**とも呼ばれるUMLは、オブジェクト指向言語の設計図となるモデリング言語の「標準規格」となっており、以下の13種類に分類される。

| 分類 | 名称 | 描画内容 |
|

元記事を表示

最高のWeb開発プログラミング言語は何ですか?

さまざまなプログラミング言語がさまざまなプログラミング技術をサポートしており、それぞれに複雑さがあります。 さらに、新しいプログラミング言語がどんどん出現しており、それはまばゆいばかりです。
以下は、Web開発に最適な厳選されたプログラミング言語の一部です。各言語を選択する理由を詳しく紹介します。
![1.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/482909/5672757b-2a0b-6777-d6cd-b2bbb875b00d.jpeg)

##1.JavaScript
JavaScriptがWeb開発者によって最も人気があり言語の1つであることは間違いありません。さらに、Webアプリケーション、フロントエンドとバックエンド、およびモバイルアプリケーション(React Native)を同時に構築できる唯一のプログラミング言語です。
クライアント側のJavaScriptは非常に安全で高速であり、クライアントブラウザですばやく実行できます。 さらに、JavaScriptは比較的簡単に習得できます。

元記事を表示

Eclipseで学ぶモジュールシステム

#概要
モジュールを理解するのに苦戦したので、実戦形式でまとめました。
細かな仕様や、概念については別の記事にて作成中ですのでしばらくお待ちください。

IDE:「Eclipse」 Java SE9 以降対応
OS:Windows
コマンドラインとIDEを交えながら説明しますので、他のOSでも応用できるかと思います。
##準備
準備で作成したプロジェクトを何度も改変して解説していきます。
簡単に作る物を説明します。

+ ライブラリ(mylib)
+ TaxCalculator(税金計算機) 貰ったお金から税金を計算し表示するクラス。
+ WorldTaxRate(世界の税率) 各国の税率と国名を列挙型で保持しているクラス。
+ アプリケーション(client)
+ App(実行クラス) ライブラリを使用して実行するクラス。

###ライブラリの作成(mylib)
1. まずは「mylib」プロジェクトを新規作成します。
2. 次にパッケージとクラスを下記の画像と同じ名前、ディレクトリで作成します。
1. 新規パッケージ⇒「math.assets.api

元記事を表示

Couchbase Java SDK解説:分散トランザクション〜エラー処理を理解する

## はじめに

本稿は、Couchbase Java SDKでの分散トランザクションにおけるエラー処理を理解するための情報を提供することを目的としています。

そのために、まずCouchbaseの分散トランザクションにおける中心となるコンセプトについての解説から始めます。

本記事の先行テキストとして以下をご参照ください。
[Couchbase Java SDK解説:分散トランザクションプログラミング入門](https://qiita.com/yoshiyuki_kono/items/4efb2f1f5a03051e28c5)

## コミットとロールバック

### コミット

まず、Couchbaseの分散トランザクションでは、`ctx.commit()`により、トランザクションのコミットを明示的にプログラミングすることができます。

また、Couchbaseの分散トランザクションでは、コミットは自動的に行われます。トランザクションロジックコールバック(ラムダブロック)の最後に`ctx.commit()`の明示的な呼び出しがなくても、例外がスローされない限り、コミットが実行され

元記事を表示

OTHERカテゴリの最新記事