Fight the Future

Java言語とJVM、そしてJavaエコシステム全般にまつわること

プレゼン、ボランティアコーチします!

勉強会でスピーカーをやりたいけど、プレゼンが初めて、苦手という方に無償でコーチします!資料レビューや録画リハへアドバイスします。Twitter@jyukutyoまでメンションでもDMでも。

私はデブサミやJJUG CCCなど200人規模で登壇経験ありです。海外での登壇も短いながらあり。デブサミ2017では公募スピーカー1位でした!

database

OracleでSJISのデータベースの文字列カラムにUnicodeの絵文字をJavaで格納するには

SELECT VALUE FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER = 'NLS_CHARACTERSET' -- JA16SJISTILDE SJISのデータベースの文字列カラムにUnicodeの絵文字を格納するには、NVARCHAR2型のカラムを使います。次にJavaではシステムプロパティに-Doracle.jdbc.d…

MySQLのMacクライアントはNavicat Liteがわりといい

Navicat - Download Center - Download the World's Best Oracle Manager, MySQL Front End, SQLite GUI Frontend, SQL Azure & PostgreSQL GUI for Windows, Mac OS X & Linux - Download Now! Support Access to MySQL, Excel to MySQL, MySQL editor, MyS…

MySQLの接続許可ユーザーを取得するSQL

select user,host,password from mysql.user; +--------+---------------+------------------+ | user | host | password | +--------+---------------+------------------+ | xxxxxx | 192.168.0.% | xxxxxxxxxxxxxxxx | +--------+---------------+-------…

CentOSにMySQLをyumでインストールするまとめ

// デフォルトで入っているMySQLをアンイストールする $ sudo remove mysql // 以下を追記する $ sudo vi /etc/my.cnf [client] default-character-set=utf8 [mysqld] default-character-set = utf8 skip-character-set-client-handshake character-set-serv…

MySQLで結合した結果をdeleteする

delete from table_a using table_a left outer join table_b on table_a.id = table_b.id where table_a.name = 'aaa' from句に指定したテーブルを削除する。カンマ区切りで複数のテーブルを指定できる。using以降に結合を指定する。もちろん、SQL標準では…

MySQLで連番を振る

MySQLにrownum()みたいなものはないので、変数を使う。まあ本来リレーショナルデータベースは集合の世界なんで、順序なんてつけたらダメだけど、混沌とした僕らのシステム開発では、必要悪なんだろうか。とか思う。 select emp.emp_no, @i:=@i+1 as rownum f…

Spring + DBCP + MySQLで接続が閉じたコネクションを利用して例外が発生することを防ぐ

BasicDataSourceのvalidationQueryプロパティに検証用SQLを設定する。Spring設定ファイル。

MacPortsでMySQLをインストールおさらい。

MacPortsで入れたかったから。 MacPortsがない人はまずインストールしてパスに追加する。マンパスも。 $ vi .bash_profile export PATH=opt/local/bin:/opt/local/sbin:$PATH export MANPATH=/opt/local/man:$MANPATH$ sudo port install mysql5 The MySQL c…

MySQLの設定おさらい

# vi /etc/my.cnf [client] default-character-set=utf8 [mysqld] default-character-set = utf8 skip-character-set-client-handshake character-set-server = utf8 collation-server = utf8_general_ci init-connect = SET NAMES utf8 default-storage-eng…

DB2でPL/SQLが動く!?

日本IBMは2009年5月21日,RDBMS(リレーショナル・データベース管理システム)の新版「DB2 9.7」を発表した。新たに,OracleのDBMSが備えるストアド・プロシージャ開発言語「PL/SQL」を利用できるようにした。これにより,Oracleで開発したDBアプリケーショ…

インメモリ・データグリッド

インメモリ・データグリッドとは、複数ハードウェアから構成されたサーバ群で仮想的な共有メモリ領域を確保して、クライアントからの透過的なアクセスを実現した状態で大量のデータを高速処理する技術のこと。 CTC・オラクル・HP、インメモリ・データグリッ…

update文にfrom句!?

こんな感じのSQL文があった。 UPDATE table_a SET column_a = 1 FROM ( SELECT column_b, column_c, column_d FROM table_b ) table_b WHERE column_a = 2 AND table_b.column_b = table_a.column_b AND table_b.column_c = table_a.column_c AND table_b.co…

有効期間があるレコードを取得するSQLの書き方

よくある履歴管理みたいなやつ。 パフォチューしてて『アート・オブ・SQL』調べてたら載ってた。たとえばこんなの。 # PostgreSQL 8.1で動作を確認。 CREATE TABLE item_history ( item_no VARCHAR , item_name VARCHAR , price INTEGER , enforcement_date …

PostgreSQLでconnectby関数を使う

階層構造をSQLで取得するときはWith句を使えばいいんだけど、 PostgreSQLは次の8.4からしかWith句に対応していない。 Oracleにあるのと同じconnectby関数が利用できる。 だけどデフォルトではその関数は入っていない。 %POSTGR_HOME%\share\contrib\tablefun…

PostgreSQLの実行計画

explain analyze SELECT 〜 出力はこんなの。 Sort (cost=497.34..497.34 rows=1 width=905) (actual time=744.740..748.105 rows=1643 loops=1) …

PostgreSQLのANALYZE

PostgreSQLのbinディレクトリにて。 # vacuumdb -U ユーザー名 --all --full --analyzeVACUUM & ANALYZEする。

SQL文整形アプレットサイト

SQLinForm - Homepage 超便利。

PostgreSQLのpsqlでデータベースを選択する&テーブル一覧を取得する

データベースを選択する。 \c データベース名テーブル一覧を取得する。 \z

PostgreSQLのpsqlでテーブルの構成を取得する

\d 'テーブル名'

PostgreSQLでコマンドプロンプトからpsqlにパスワードつきでログインする

psql -U 'ユーザー名' -W 'データベース名' パスワードを変更する alter user 'ユーザー名' with password '新しいパスワード'

PostgreSQLにはOLEではなくODBCで接続する

黒猫 SQL Studio で PostgreSQL に接続するには、ODBCを使用します。PostgreSQL に付属の OLE DB Provider は実装が不十分で使用できません。 黒猫ソフトウェア工房 - Wiki - PostgreSQL

EXPLAIN PLANを使ってOraleの実行計画を取得する

EXPLAIN PLAN の使い方 EXPLAIN PLAN 文は EXPLAIN PLAN FOR + SQL 文によってオラクルのオプティマイザが選択した「実行計画=(予定)」を取得することできる。 ※ EXPLAIN PLAN 文による実行計画の取得は SQL の実際の実行が行なわれないため即座に終了する…

カーディナリティ

いつもごっちゃになるからメモ。 カーディナリティ度 (選択度) カーディナリティ度が低いとは、カラムの値の種類がレコード数に比べて少ないことをあらわす。 カーディナリティ度が高いとは、カラムの値の種類がレコード数に比べて多いことをあらわす。 http…

Oracle 11gではデフォルトだとユーザーのパスワード有効期限は180日

11g のDEFAULTプロファイルではユーザー・アカウントのパスワードは180日で自動的に期限切れとなります。(初期状態)データベースにはデフォルトのプロファイルが存在しており、ユーザー作成時に個別にプロファイルを指定しない限りは、デフォルト・プロフ…

主要なDBのJDBC接続文字列一覧

意外にデータベースベンダーのサイトからすぐに検索できないもんなんだなあ。 なんかサンプルとかメモっぽい感じのやつしか見つからない。 その点MySQLのサイトはきちんとしてる印象。 jdbc:sqlserver://[serverName[\instanceName][:portNumber]][;property…

MySQLでSQLファイルの読み込み

mysql> source ファイルのパスまたは $ /usr/local/mysql/bin/mysql -u ユーザー名 -pパスワード -f -vvv < ファイルのパス

DbUnit形式でExcelまたはXMLファイルにテーブルのダンプを取る

import java.io.FileOutputStream; import org.dbunit.JdbcDatabaseTester; import org.dbunit.database.IDatabaseConnection; import org.dbunit.dataset.IDataSet; import org.dbunit.dataset.excel.XlsDataSet; //import org.dbunit.dataset.xml.FlatXmlD…

org.gjt.mm.mysql.Driverとcom.mysql.jdbc.Driverの違い

けっこう前から気になってた。 受け持ってた研修のテキストもorg.gjt.mm.mysql.Driverだったし。 調べてみた。 org.gjt.mm.mysql.Driverは旧式のドライバ。 com.mysql.jdbc.Driverを使うこと。 スッキリ。

とりあえずMySQLでEMP表とDEPT表を作っとく

DBのテスト用テーブルとしてお決まりのEMP表とDEPT表をとりあえずMySQLで作っとく。 CREATE TABLE `データベース名`.`DEPT` ( `DEPTNO` int(11) NOT NULL, `DNAME` varchar(14) default NULL, `LOC` varchar(13) default NULL, PRIMARY KEY (`DEPTNO`) ) ENG…

MySQLの文字コード設定

■文字コードを設定する/etc/my.cnf を編集する。[client] default-character-set=utf8[mysqld] default-character-set = utf8 skip-character-set-client-handshake character-set-server = utf8 collation-server = utf8_general_ci init-connect = SET NAM…