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

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

Javaを通してPDFをPDF / Aに変換する方法

##背景
PDF形式をPDF / A形式に変換することにより、ドキュメントのレイアウト、フォーマット、フォント、サイズなどが変更されないように保護し、ドキュメントの読み取りとアクセスを保証しながら、ドキュメントのセキュリティ保護の目的を達成できます。この記事では、Javaバックエンドプログラムコードを使用してPDFをPDF / A1A、2A、3A、1B、2B、および3B標準に変換する方法を示します。以下は、その方法と手順です。

jarパッケージのインポート
Spire.Pdf.jarはこのプログラムにインポートされます。**[ダウンロード](https://www.e-iceblue.com/Download/pdf-for-java.html)**とインポートを実装するために、Mavenプログラムでpom.xmlの次のコンテンツを構成できます。


com.e-iceblue
e-iceblue
https://repo.

元記事を表示

Javaでデータベースに接続する

#はじめに
この記事は独習JSP&サーブレット第3版に基づいて、データベースを勉強していた際に躓いた点をまとめた記事です。最新版のJDBCやデータベースを使用している人は、同じようなエラーで躓いていると思うので参考になれば嬉しいです。

## 環境
– Tomcat 10.0
– MySQL 8.0
– MySQLドライバ(JDBC):mysql-connector-java-8.0.27

## jspからデーターベースに接続する

以下のようにconnect.jspファイルからデータベースに接続するとする。
データソースの設定はcontext.xmlで行う。

“`jsp:connect.jsp
<%@ page contentType="text/html;charset=UTF-8" import="java.sql.*, javax.naming.*, javax.sql.*" %>




データベースへの接続

<

元記事を表示

EclipseでPayaraTools導入エラー

#環境
* mac OS Monterey
* Eclipse IDE for Enterprise Java and Web Developers – macOS x86_64 (Eclipse IDE 2021-12 R Packages)

#原因
__Details__

“`
Cannot complete the install because one or more required items could not be found.
Software being installed: Payara Tools 1.4.0.202110041326 (org.eclipse.payara.tools.feature.group 1.4.0.202110041326)
Missing requirement: Payara Tools1.4.0.202110041326(org.eclipse.payara.tools.feature.group 1.4.0.202110041326) requires ‘org.eclipse.equinox.p2.iu; org.ec

元記事を表示

Java開発者のためのセキュアコーディングのコツ10個

本記事は2019年9月16日に公開した弊社英語ブログ[10 Java security best practices](https://snyk.io/blog/10-java-security-best-practices/)を日本語化した内容です。

[![logo-solid-background.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2216557/7e96b3c4-cdd6-82db-5ce2-6cf02b879715.png)](https://snyk.io/jp)

このチートシートでは、オープンソースのメンテナーと開発者の両方に向けた、Java言語におけるセキュアコーディングのコツ10個を取り上げます。このチートシートは、SnykのデベロッパーアドボケートのBrian Vermeerと、Java チャンピオンであり[Manicode](https://manicode.com/) Securityの創設者であるJim Manicoとのコラボレーションによって作成されたものです。

元記事を表示

AtCoder Beginner Contest 016をやった(Java)

AtCoder Beginner Contest 016をやった。
[C](https://atcoder.jp/contests/abc016/tasks/abc016_3)問題の解き方が知りたいです。
図に書いて大まかにどのようなこと言っているのかは理解できますが、実装的に同実装すればタイムアウト起きないのか知りたく。

##[A](https://atcoder.jp/contests/abc016/tasks/abc016_1)
問題文に与えられたとおりに実装すれば答えが出ます。

“`Java
import java.util.*;

public class Main {
public static void main(String[] args) throws Exception {
Scanner scan = new Scanner(System.in);
System.out.println(scan.nextInt() % scan.nextInt() == 0 ? “YES” : “NO”);
}
}
“`

元記事を表示

Javaを使用してPDFでテキストの回転と傾きを設定する

##背景
この記事では、Javaプログラムを使用してPDFドキュメントのテキストの回転と傾きを設定する方法を紹介します。テキストの傾きを設定するときは、メソッドTransformText(page);を定義し、page.getCanvas().skewTransform(float angleX、float angleY);を設定して、テキストの傾きを実現します。テキストの回転を設定するときは、メソッドRotateText(page)を定義します。 ;そしてpage.getCanvas()。rotateTransform(float angle);を設定して、テキストの回転を実現します。詳細なコードについて以下の内容をご参照ください。

注:PDFクラスライブラリツール**[Spire.PDF for Java](https://www.e-iceblue.com/Download/pdf-for-java.html)**を使用する必要があります。jarパッケージをダウンロードするか、libフォルダー内のjarファイルを解凍してjavaプログラムにインポートするか、mavenリポジトリ

元記事を表示

【OOP】04_継承

こんにちは、コイキングです。

本記事では OOP(Object Oriented Programming == オブジェクト指向プログラミング)の説明のうち、
継承について、説明したいと思います。

******

# 1. 継承とは?
**親クラスのメンバー変数とメソッド**を子クラスから**継承して使えること**を言います。

※ extendsキーワードを用いて継承する親クラスを定義し、継承かんけいを設定する事ができます。

public class 子クラス extends 親クラス {

}

※ 例示コード

“`java:Animal.java
public class Animal {
protected String name;
protected int age;

public Animal() {}

public Animal(String name, int age) {
this.name = name;
this.age = age;
}

public void printName() {
System.out.prin

元記事を表示

MyBatisGeneratorのMapper自動生成機能をカスタマイズして見た

MyBatisでSpringプロジェクトの環境構築をして、MyBatisGeneratorのDto,Dao,Mapperの自動生成機能を使って見たが、いくつ改善したいところがあります。
・Springのアノテーションを自動追加したい
・Lombokを対応したい
・DtoとDaoのファイル名を馴染みなXXXDto.javaとXXXDao.javaに改修したい
以上の課題を解決するため、MyBatisGeneratorのPluginAdapterによって自動生成機能をカスタマイズして見ました。

##環境構成
・eclipse
・Java
・MyBatis-Spring
・MyBatisGenerator
・Spring-boot
・Lombok
・Maven

##依頼注入一覧

“`pom.xml

元記事を表示

JavaでWekaによる機械学習 01-数値データの推測

# Javaで機械学習したくない?

機械学習といえばPythonって風潮ですが、Javaが得意な人は、今更Python学ぶのかなという気持ちになるでしょう。できれば、得意なJavaで機械学習できたら嬉しいですね。自分が開発したソフトに組み込めるし。

そんなことで、機械学習エンジンのWekaのAPIで色々と試してみようということで書き始めたいと思います。(間違いがあったらご指摘お願いします)

まずは、数値データの推測からはじめます。

こちらの書籍(機械学習コレクション Weka入門) https://www.amazon.co.jp/%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92%E3%82%B3%E3%83%AC%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3-Weka%E5%85%A5%E9%96%80-I%E3%83%BB-BOOKS-%E5%92%8C%E7%94%B0/dp/4777520889 に出ているサンプルをAPIを使ってやってみることにしましょう。

CSVデータは以下の通り。末尾から2行目の売上が「?」となっ

元記事を表示

MouseController

“`java
package org.tei;

import java.awt.AWTException;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Robot;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;

import javax.swing.JButton;
import javax.swing.JFrame;

public class MouseController implements Runnable {

private Robot robot;
private boolean isStop = false;

public MouseController() {
try {
ControllerFrame fr

元記事を表示

KotlinでviewBindingを使う

## ブロジェクト作成
赤のMainActivityを開きSplitで開くと、コードとデザインを同時に確認できます。
水色が`texttView`のコードとエディタです。
![スクリーンショット 2022-01-17 16.48.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/755375/9abe33b5-9bb7-281c-fd0d-fa209cba6ad8.png)

## ボタン追加
ボタンを追加すると、コードとデザイン両方追加されます。
![スクリーンショット 2022-01-17 17.05.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/755375/c56b9b9c-4324-34bb-abad-889b3d0051b3.png)

## 背景色も変更してみる
赤枠のbackgroundをいじれば変更できました。
![スクリーンショット 2022-01-17 17.08.42.png](https

元記事を表示

プロジェクト間共通ライブラリを GitLab Package Registry に登録して使う

そこそこ以上の規模のプロジェクトを作る際、どうしても複数プロジェクト間で共有する共通ライブラリ(`*.jar`など)を作りたいことがあると思うのですが、GitLabには [GitLab Package Registry](https://docs.gitlab.com/ee/user/packages/package_registry/) という **共通ライブラリをGitLabに登録できる便利な機能** があります。

通常であれば、 [Sonatype Nexus](https://www.sonatype.com/products/repository-oss) や [JFrog](https://jfrog.com/ja/) といったアーティファクトマネージャを別個で立てなければならないのですが、これを使えばGitLab一つで済むので非常に楽です。

従来は有料版のみの機能だったのですが、なんと 13.3 から全エディションで利用可能になっています。

そういうことで、実際に仕事で使ってみたのですが、ややドキュメントが分かりづらかったので、概要を適当にまとめておきます。

#

元記事を表示

Spring Boot と Scalar DB を用いた API の作り方③

こちらの記事は[Spring Boot と Scalar DB を用いた API の作り方②](https://qiita.com/yoshi-kinoshita/private/44363a4aeacf83efcff3)の続きになります。

前回までの記事をご覧になってない方は先にそちらに目を通すようにお願いします。

– [Spring BootとScalar DBを用いたAPIの作り方①](https://qiita.com/yoshi-kinoshita/items/5b2c5c713c9cc2fa2915)
– [Spring BootとScalar DBを用いたAPIの作り方②](https://qiita.com/yoshi-kinoshita/items/44363a4aeacf83efcff3)
– Spring BootとScalar DBを用いたAPIの作り方③(本記事)

# 目次
1. [Spring Securityによるアクセス制限](#spring-securityによるアクセス制限)
1. [実装方針](#実装方針)
1. [実装方法]

元記事を表示

Spring Boot と Scalar DB を用いた API の作り方①

# TL;DR
[株式会社Scalar](https://scalar-labs.com/)が開発している分散トランザクションマネージャScalar DBを使ってトランザクション処理を行うAPIを作りました。

その中で学んだScalar DBの特徴やScalar DBを使ったAPIの開発手法について説明していこうと思います。

長くなりますので3回に分けて投稿します。

– Spring BootとScalar DBを用いたAPIの作り方①(本記事)
– [Spring BootとScalar DBを用いたAPIの作り方②](https://qiita.com/yoshi-kinoshita/items/44363a4aeacf83efcff3)
– [Spring BootとScalar DBを用いたAPIの作り方③](https://qiita.com/yoshi-kinoshita/items/1cb6c0b11be5ab087ed6)

完成したプロジェクトは[GitHub](https://github.com/yoshi-kino/sample-api-using-sca

元記事を表示

Spring Boot と Scalar DB を用いた API の作り方②

この記事は[Spring Boot と Scalar DB を用いた API の作り方①](https://qiita.com/yoshi-kinoshita/items/5b2c5c713c9cc2fa2915)の続きになります。

– [Spring BootとScalar DBを用いたAPIの作り方①](https://qiita.com/yoshi-kinoshita/items/5b2c5c713c9cc2fa2915)
– Spring BootとScalar DBを用いたAPIの作り方②(本記事)
– [Spring BootとScalar DBを用いたAPIの作り方③](https://qiita.com/yoshi-kinoshita/items/1cb6c0b11be5ab087ed6)

# 目次
1. [モデル・DTOの作成](#モデル・DTOの作成)
1. [モデル](#モデル)
1. [DTO](#dto)
1. [リポジトリクラスの作成](#リポジトリクラスの作成)
1. [Scalar DBを使ったCRUD処理の実装](#scal

元記事を表示

【UiPath】OrchestratorのAPIを使ってみる④~トリガーを取得してみる~

# はじめに

[前回](https://qiita.com/yoshiyuki-iwata/items/eb839db0cde4ff8c4102)、JavaでUiPathの認証APIを叩いてみました。
今回はトリガーの一覧を取得するAPIの使い方を解説します。

# トリガーを取得するAPI

トリガーの取得は `[GET] /odata/ProcessSchedules` を実行することで取得できます。

しかし、APIのマニュアルを見ると、`X-UIPATH-OrganizationUnitId`なるものを指定する必要があるようです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/517338/b1c9b49b-b401-d3ca-afee-4fe65f8befa5.png)

## X-UIPATH-OrganizationUnitIdってなに?

すごく簡単に説明すると、「テナントとかフォルダーとかに、一意にふられている番号」です。
今回は、モダンフォルダーで構成されているフォ

元記事を表示

Excelから単体テストデータを投入する(SpringBoot + SQLServer + DBUnit)

## 初めに

単体テスト時のテストデータの生成・管理って、結構めんどくさいですよね。
そこで今回は、「テストデータをExcelで予め用意しておいて、テストメソッド実行時にDB登録する」ことでテストの効率化を図る仕組みを作ってみます。

既存の記事(例えば[こんなの](https://tanaka653.hatenadiary.jp/entry/2021/03/14/111033))だと、テストメソッド内で明示的にテストデータ生成を行うものが多かったのですが、これだとテストメソッドが肥大化してしまいます。

個人的にはテストメソッドの肥大化は好きじゃないので、本記事ではこれを防ぐためにspring-test-dbunitライブラリの**LookUpクラス**を使用することとします。

## 前提

### 使用技術

|技術|バージョン|用途|
|–|–|–|
|Java|amazon-correto 16|プログラミング言語| 
|SpringBoot|2.6.1|Webフレームワーク| 
|SQL Server|2017-latest|データベース(dockerで用意)|
|

元記事を表示

【OOP】03_カプセル化

こんにちは、コイキングです。

本記事では OOP(Object Oriented Programming == オブジェクト指向プログラミング)の説明のうち、カプセル化について、説明したいと思います。

******
# 1. カプセル化とは?
カプセル化とは関りがあるデータと行為をまとめて、’クラス’という’カプセル’に盛り付け事を意味します。
実はクラス作る際に知らず知らずのうちにカプセル化をしていたとも言えます。

# 2. カプセル化の理由
## 1) コードの活用・管理
例えると犬クラスに翼という属性を定義すると、犬クラスに翼属性があるとは思えないでしょう?
つまり、関りがない属性とメソッドはちゃんと活用されたり、管理されることが難しいでうs。
関りがある物だけクラスというカプセルに集めておくとソースコードを再活用・管理する事がより良くなります。

## 2) 情報隠蔽
クラス内に集めておいたメンバー変数とメソッドをどこにでも呼び出せると**クラスの元の設計された意図通り動作しない可能性が高くなります。この様なことを予防するための特性が情報隠蔽**です。
どこにでもメンバー

元記事を表示

GraalVM(native-maven-plugin)で「JEP 290: Java Serialization Filtering」の仕組みを利用する

GraalVMのnative-imageコンパイラで生成したnative-imageの中で[Serialization Filtring](https://docs.oracle.com/en/java/javase/11/core/serialization-filtering1.html#GUID-0A1D23AB-2F18-4979-9288-9CFEC04F207E)を利用する方法がわかったのでメモっておきます。

# ビルドツール

* Maven([native-maven-plugin](https://docs.oracle.com/cd/F44923_01/enterprise/21/docs/reference-manual/native-image/NativeImageMavenPlugin/))

# 指定方法

`buildArgs`にフィルタリングルールを指定すればOK!

“`xml org.graalvm.buildtools
native-maven-plugi

元記事を表示

Java標準機能でHttpClient

普段はSpringBootを使った開発をしているため[RestTemplate](https://spring.pleiades.io/guides/gs/consuming-rest/)を使うのだが、いざSpringBootに依存しない実装が必要となったときに、[Apache HttpClient](https://hc.apache.org/httpcomponents-client-4.5.x/) を使わなくてもJavaの標準機能だけで簡単に実装できるようになったことを恥ずかしながら最近知ったので、昨年Java17がリリースされた今となってはもう古い記事になってしまうが、今更ながらJava標準機能でHttp通信するクライアントプログラムについて簡単にまとめておくことにした。

# 本記事の前提
– Java11以上であること(Java8ではサポートされてない機能)
– サーバ側のコードは割愛
– Jsonとのマッピング機能はJacksonを想定

# 受信するデータ型
“`java
public class ResponseDto {
private String me

元記事を表示

OTHERカテゴリの最新記事