2024-10-17

JavaによるWebアプリケーション入門 - サーブレット・JSP・Struts

 Webアプリケーション入門 - 株式会社サイエンス社 株式会社新世社 株式会社数理工学社 (saiensu.co.jp)

JavaによるWebアプリケーション入門 - サーブレット・JSP・Struts (fujiwaralab.net)


akitalab/bcat-v0: 図書管理システム コマンドライン版 bcat-v0 (github.com)

eclipseの場合

BookCatalogTest.java

import文でホバー

プロジェクト・セットアップの修正 - junitを追加

プロジェクト - プロパティ で確認


akitalab/bcat-v1: 図書管理システム Servlet版 bcat-v1 (github.com)

eclipseの場合

走り書き: eclipse servlet 動的Webプロジェクト (no15maid.blogspot.com)

src\main\java配下にjavaファイルを配置

importパッケージ名:javax → jakarta

src\main\webapp\WEB-INFにweb.xmlを配置

(web.xmlにwelcome-file-listを追加)

src\main\webapp配下にhtmlファイルを配置

htmlは<head>に<meta charset="UTF-8">を追加

index.htmlで右クリック - サーバーで実行


akitalab/bcat-v2: 図書管理システム JSP版 bcat-v2 (github.com)


akitalab/bcat-v2db: 図書管理システム JSP+DB版 bcat-v2db (github.com)

CREATE ROLE bcat LOGIN;

\password bcat

secret


CREATE DATABASE bcat WITH OWNER = bcat

ENCODING = 'UTF-8'

TABLESPACE = pg_default

LC_COLLATE = 'C'

LC_CTYPE = 'C'

CONNECTION LIMIT = -1;


create table bookcatalog (

    bookid varchar(100) not null,

    title varchar(100),

    author varchar(100),

    translator varchar(100),

    publisher varchar(100),

    publicationdate date,

    code varchar(100),

    status varchar(100),

    keyword varchar(100),

    memo varchar(100),

    datacreator varchar(100),

    datacreateddate timestamp(6),

    primary key (bookid)

);


src\main\WEB-INF\libにpostgresql.jar(DBサーバーに適したバージョン)を配置


akitalab/bcat-v3: 図書管理システム Struts版 bcat-v3 (github.com)

eclipse servlet 動的Webプロジェクト

eclipse

ファイル ‐ 新規 ‐ 動的Webプロジェクト

(ターゲット・ランタイム → 実行時に指定)


srcフォルダで右クリック

新規 ‐ その他

ウィザードを選択 - Web ‐ サーブレット


HelloServlet.javaで右クリック

実行 ‐ サーバーで実行

サーバーの選択:ターゲット・ランタイムと同じものを選択

2024-10-16

postgresql export pg_dump

参考サイト 

PostgreSQL エクスポートとインポート | ITSakura


cd "D:\Program Files\PostgreSQL\16\bin"

pg_dump  -h localhost -p 5432 -U postgres -d ex_db1 > D:\pg_dump\dump1.txt

※フォルダは予め作成しておく

postgresql procedure raise exception

参考サイト

エラーとメッセージ (postgresql.jp)

PostgreSQLエラーコード


CREATE OR REPLACE PROCEDURE public.exception_test()

    LANGUAGE 'plpgsql'

AS $BODY$

BEGIN

    --RAISE EXCEPTION 'exception test 1';

    RAISE EXCEPTION 'exception test 2' USING ERRCODE = '0A000';

    --RAISE EXCEPTION SQLSTATE '0A000' USING MESSAGE = 'exception test 3';

EXCEPTION

    WHEN OTHERS THEN

        RAISE NOTICE 'SQLSTATE:% SQLERRM:%', SQLSTATE, SQLERRM;

END;

$BODY$;

postgresql procedure 変数 引数 繰り返し exception

create table sample_data (

    id integer generated by default as identity,

    info varchar(100),

    created_by integer not null,

    created_date timestamp(6) not null,

    modified_by integer not null,

    modified_date timestamp(6) not null,

    ver integer not null,

    primary key (id)

); 


CREATE OR REPLACE PROCEDURE create_sample_data(in v_info VARCHAR)

    LANGUAGE 'plpgsql'

AS $$

DECLARE

    --v_user_id INTEGER := 9;

    v_user_id sample_data.created_by%TYPE := 3;

BEGIN

BEGIN

    FOR i IN 1..100 LOOP

        INSERT INTO sample_data (

            info, created_by, created_date, modified_by, modified_date, ver

        ) VALUES (

            v_info || ':' || i, v_user_id, CURRENT_TIMESTAMP, v_user_id, CURRENT_TIMESTAMP, 0

        );

    END LOOP;

EXCEPTION

    WHEN OTHERS THEN

        RAISE NOTICE 'SQLSTATE:% SQLERRM:%', SQLSTATE, SQLERRM;

        ROLLBACK;

        RAISE;--呼出し元へのエラー伝達

END;

COMMIT;

END;

$$;


例外ハンドラを伴うブロック内ではトランザクションを終了できない

cannot commit while a subtransaction is active

参考サイト

43.8. トランザクション制御 (postgresql.jp)

PostgreSQL PL/pgSQLのcommitとrollbackと例外処理 | ITSakura

postgresql procedure hello world

pgAdmin

◆Procedures

右クリック

Create

Definition - Language : plpgsql

Code に $BODY$ の内側のみ記述

SQLで作成内容を確認(直接入力はできない)


または

◆Query ToolでSQLを実行してCreate

CREATE OR REPLACE PROCEDURE public.procedure1()

    LANGUAGE 'plpgsql'

AS $BODY$

DECLARE

  date_time VARCHAR(50);

BEGIN

  SELECT now() INTO date_time;

  RAISE INFO 'Hello world : %', date_time;

END;

$BODY$;


◆実行(Query Tool)

call public.procedure1();

2024-10-13

intellij コンパイルエラー

File - Project Structure

Platform Settings - SDKs - JDK home path

Project Settings - Project - SDK - Add JDK (フォルダを選択)


Gradleの場合

Failed to calculate the value of task ':compileJava' property 'javaCompiler'.

Cannot find a Java installation on your machine matching this tasks requirements: {languageVersion=21, vendor=any vendor, implementation=vendor-specific} for WINDOWS on x86_64.

No locally installed toolchains match and toolchain download repositories have not been configured.

File - Settings

Build, Execution, Deployment - Build Tools - Gradle - Gradle JVM

2024-10-12

eclipse gradle コンパイルエラー

Could not resolve all dependencies for configuration ':compileClasspath'.

> Failed to calculate the value of task ':compileJava' property 'javaCompiler'.

> Cannot find a Java installation on your machine matching this tasks requirements: {languageVersion=21, vendor=any vendor, implementation=vendor-specific} for WINDOWS on x86_64.

> No locally installed toolchains match and toolchain download repositories have not been configured.


ウィンドウ
設定
Gradle
Javaホーム

oracle pl/sql 変数 引数 繰り返し exception

 create table sample_data (

    id number(10,0) generated as identity,

    info varchar2(100),

    created_by number(10,0) not null,

    created_date timestamp(6) not null,

    modified_by number(10,0) not null,

    modified_date timestamp(6) not null,

    ver number(10,0) not null,

    primary key (id)

);


CREATE OR REPLACE PROCEDURE CREATE_SAMPLE_DATA(v_info IN VARCHAR2) AS 

    v_user_id sample_data.created_by%TYPE := 3;

BEGIN

    FOR i IN 1..100 LOOP

        INSERT INTO sample_data (

            info, created_by, created_date, modified_by, modified_date, ver

        ) VALUES (

            v_info || ':' || i, v_user_id, CURRENT_TIMESTAMP, v_user_id, CURRENT_TIMESTAMP, 0

        );

    END LOOP;

    COMMIT;

EXCEPTION

    WHEN OTHERS THEN

        DBMS_OUTPUT.PUT_LINE(

            'SQLCODE: ' || SQLCODE || ' SQLERRM: ' || SQLERRM);

        ROLLBACK;

        RAISE;--呼出し元へのエラー伝達

END CREATE_SAMPLE_DATA;

oracle pl/sql

 参考サイト

PL/SQL入門 ~概要から変数や処理の書き方を解説~ (sint.co.jp)

PL/SQL プログラミング入門(1) - オラクル・Oracle PL/SQL プログラミング (shift-the-oracle.com)

2024-10-11

oracle pl/sql hello world

sql developer

プロシージャ 右クリック

新規プロシージャ

OKボタン


CREATE OR REPLACE PROCEDURE PROCEDURE1 AS 

BEGIN

  NULL;

END PROCEDURE1;

CREATE OR REPLACE PROCEDURE PROCEDURE1 AS 

  message VARCHAR2(50);

  date_time VARCHAR2(50);

BEGIN

  SELECT SYSDATE

  INTO date_time

  FROM DUAL;

  message := 'Hello world : ';

  DBMS_OUTPUT.PUT_LINE(message || date_time);

END PROCEDURE1;


保存してから実行ボタン

(表示 - DBMS出力)


参考サイト

【Oracle】PL/SQL入門 #oracle - Qiita

PL/SQL ブロック、コメント - オラクル・Oracle PL/SQL 入門 (shift-the-oracle.com)

2024-10-06

androidstudio 外部データベース

 参考サイト

Android端末からのデータベースサーバーへのアクセスとグリッド表示 (1/4)|CodeZine(コードジン)

Android StudioでGitHub

走り書き: IntelliJでGitHub (no15maid.blogspot.com)

IntellJと同様にブラウザで承認したが

空のリポジトリーのみ作成された

(ここでcommit and pushが必要だったのかもしれない)


githubで空のリポジトリーを削除

プロジェクトを作り直し再度登録してみる(下記)


メニュー:vcs

enale version control integration

git

okボタン

メニュー:git

github

share project on github

shareボタン

(承認のダイアログなし・addボタン押下

→commit and pushがエラー・空のレポジトリのみ作成された

→再度commit and pushボタン押下してもエラー

→githubで空のレポジトリーを削除

→share project on githubから再度実施)

addしないでcancelボタン

→空のrepositoryのみ作成

commit and pushボタン

ユーザー設定ダイアログが出て設定後

push可能になった

hyperv windows

Hyper-Vマネージャー クイック作成 Windows11開発環境 仮想マシンの作成 参考サイト 【Windows 11便利テク】Windows 11でより使いやすくなったHyper-V。サクッと無料で仮想環境を作ってみる - PC Watch