Java long型の変数に値を代入するときの注意点
環境
OS: Windows10
Javaでlong型に代入
// Test.java ... long num = 9223372036854; ...
Test.javaをコンパイルすると、次のようなエラーが出る
Test.java:10: エラー: 整数9223372036854が大きすぎます long num = 9223372036854;
え、longで定義してるのに何で????
ぐぐってみたらすぐに解決した
long型であることを明示しないとだめらしい
long型に代入するときには数値の最後に L を付ける
// Test2.java ... long num = 9223372036854L; ...
longだけ何でこんなことを...
豆知識程度に覚えておくことにします
参考サイト
javamania.blog25.fc2.com
Java JDBCドライバでOracleに接続
環境
OS: Windows10
Class.forName("oracle.jdbc.driver.OracleDriver"); Connection con = DriverManager.getConnection( "jdbc:oracle:thin:@127.0.0.1:1521:XE", "KADAI", "orapass" ); Statement stmt = con.createStatement();
DriverManager.getConnection()の引数
(URL, スキーマ名, パスワード)となる
- URL
@127.0.0.1:1521:XE
IPアドレス:ポート番号:データベース名
IPアドレスはデータベースのIPアドレス
ポート番号はデフォルトで"1521"らしい
データベース名はデフォルトで"XE"らしい
- スキーマ名
これはスキーマ名(ユーザー名)を指定する
今回は、"KADAI"というスキーマ名に接続している
- パスワード
パスワードを入れる
bottleを使ってみた
環境
OS: CentOS7
vagrant上にある
PythonのWebフレームワークにbottleというものがあるらしいので使ってみた
bottleの使う準備をして、サンプルコードを書いてみた
from bottle import route, run @route('/hello') def hello(): return "Hello World!" # サーバーのIPアドレスをhostの部分に記述する run(host="192.168.33.10", port=8080, debug=True)
192.168.33.10:8080/hello にアクセスしたら画面が表示された!!
簡単!!
PostgreSQL INSERT/UPDATE時に現在時刻のTIMESTAMPを入れたいとき
環境
OS: CentOS7
PostgreSQL: 9.6.1
vagrant上で動作
SQLでINSERT/UPDATEするときにその時の時刻のTIMESTAMPを入れたいときがある
[current_timestamp] を使えば一発!!
INSERT INTO m_listener (socialid, userid, username, create_at) VALUES (%s, %s, %s, current_timestamp);
CentOS7 システムタイムゾーンを設定
環境
OS: CentOS7
vagrant上にある
なぜこれをしたいのか
unix時間をタイムスタンプに変換したら、おかしな結果になったから日本時間にできないかと思い、調べてみた
解決法
timedatectlを使う
まずはリストを表示してみる
$ timedatectl list-timezones ... Asia/Tokyo ...
東京があるから、タイムゾーンを東京にしてみる
$ timedatectl set-timezone Asia/Tokyo
これでタイムゾーンが東京になった
$ timedatectl Local time: Sat 2017-03-11 11:27:17 JST Universal time: Sat 2017-03-11 02:27:17 UTC RTC time: Sat 2017-03-11 02:27:15 Time zone: Asia/Tokyo (JST, +0900) NTP enabled: yes NTP synchronized: yes RTC in local TZ: no DST active: n/a
参考サイト
CentOS 7 : システムのタイムゾーンを設定する : Server World
メモ
datetimeのdatetimeのfromtimestamp()を使う
8.1. datetime — 基本的な日付型および時間型 — Python 3.6.0 ドキュメント
>>> import datetime >>> unixTime = 1489200576 >>> unixTime 1489200576 >>> timeStamp = datetime.datetime.fromtimestamp(unixTime) >>> timeStamp datetime.datetime(2017, 3, 11, 11, 49, 36) >>>
SQL 複合キーの設定
テーブル作成時に複合主キーを設定するときには
CONSTRAINT を使う。
CONSTRAINT 複合主キーにつける名前 PRIMARY KEY (カラム名1, カラム名2, ...)
-- 貸出管理表 CREATE TABLE RENTAL_MANAGEMENT ( MEMBER_CODE CHAR(5) NOT NULL REFERENCES M_MEMBER (MEMBER_CODE), BOOK_CODE CHAR(9) NOT NULL REFERENCES M_BOOK (BOOK_CODE), STAFF_CODE CHAR(3) NOT NULL REFERENCES M_STAFF (STAFF_CODE), RENTAL_DATE TIMESTAMP NOT NULL, RETURN_DEADLINE TIMESTAMP NOT NULL, CREATE_DATE TIMESTAMP NOT NULL, CREATE_USER CHAR(3) NOT NULL, UPDATE_DATE TIMESTAMP, UPDATE_USER CHAR(3), CONSTRAINT PK_RENTAL_MANAGE PRIMARY KEY (MEMBER_CODE, BOOK_CODE, RENTAL_DATE) );