goo blog サービス終了のお知らせ 

役立たずのプログラマーブログ

自分の得た知識や経験をブログに書くことで整理し、考えをまとめることが目標

Hibernate

2008-01-12 10:47:55 | Java
何ヶ月か前に、「軽快なJava」を流し読みしていたら、
J2EEを批判していてもっと軽くて開発者にやさしいSpringとかHibernateを使えと
いうようなことがかかれていた。
ちょっとそれを思い出したので、Hibernateで遊んでみることにした。
@ITの記事を読みながら試してみたがHibernateのバージョンが違うので、
そのままでは動かないものいくつかあったのでメモしておく。

・サードパーティライブラリのコピー
 公式サイトのDocumentとかfindを駆使してなんとかクリアした。結局この辺をコピーした。
antlr.jar
asm.jar
asm-attrs.jars
cglib.jar
commons-collections.jar
commons-logging.jar
dom4j.jar
hibernate3.jar
jta.jar
log4j.jar( propertiesは/hibernate_home/etc/にあった )
mysql-connector-java.jar

・接続定義ファイルのDTDバージョンを/hibernate-mapping-3.0にした
・importのクラス名をorg.hibernateにした
・mysqlのテーブル定義でEMPテーブルは主キーをEMPNOのみにした。(誤記かな?)
・session.find→createQuery("FROM WorkGroup").list();
・XMLファイル内のコメントは消す。改行もちゃんとしておく。
・hibernate.cfg.xmlにMemberとWorkGroupも忘れずに入れる。
・ラウンドトリップジェネレート(hbm2javaとか)はHibernate toolとして、
Eclipseプラグインにて操作可能。インストール後、
Run->Hibernate Code Generation->Open Hibernate Code Generation Dialog
でDialogが開くので、なんとか適当に操作してみる。

バージョンが2.0→3.0になった割にはスムーズに動いた。

Eclipse multi-user installs

2008-01-10 12:35:08 | Java
Eclipseを開いたら、javadocでEclipse自体がエラーを吐いた。
fedora8に新規インストールしたあと、まともに使ってなかったので、
まったく気づかなかったが、きちんとインストールができてなかった模様。
今まではyumに任せっ切りだったし、まあしょうがない。

当初は原因がさっぱり分からず、ワークスペース配下のMetadata/.logをみたら、
アクセス権限が無いと書かれていたので、それをヒントにして、
/usr/share/eclipse配下へのすべてのアクセス連言を与え、再度試すとエラーが出なかった。
こりゃ、インストールの仕方だなとあたりをつけてドキュメントを探すも公式にはろくな資料が無い。
いや、きっとあるんだろうけどどこにあるのか分かるようにできていない。

色々検索したのち、ここで各ユーザー事に構成ファイルを作成するように、
config.iniを書き加えればアクセス権限の問題をクリアできることが分かった。

要は下の内容をconfig.iniに加える
(.eclipseproduct中にバージョンはかかれているのでそれに合わせること)
osgi.configuration.area=@user.home/.eclipse/org.eclipse.platform_3.3.0/configuration

以上。

MySQLの文字化け

2008-01-09 10:41:26 | Java
EclipseでMysqlへの接続プログラムを書いて、
consoleへ出力したら文字化けしていた。
Eclipseのせいなのかと思い、jarファイルにてターミナルから実行したが、
それでも同じように文字化けしていた。

そこで、mysqlが怪しく思えたので検索したら、「mysqlが文字化け」するのは、
どうやら常識のようで、多くの人間がつまづいているようだった。

javaは関係なく、mysqlの設定で下記のページを参考にして文字コードを修正したところ、
問題なく表示されるようになった。
ノk|*‘-‘)<ノリマツ!愛だよ、愛!


一応メモ。
mysql>status
mysql  Ver 14.12 Distrib 5.0.45, for redhat-linux-gnu (i386) using readline 5.0

Connection id:          12
Current database:       test
Current user:           masa@localhost
SSL:                    Not in use
Current pager:          stdout
Using outfile:          ''
Using delimiter:        ;
Server version:         5.0.45 Source distribution
Protocol version:       10
Connection:             Localhost via UNIX socket
Server characterset:    latin1
Db     characterset:    latin1
Client characterset:    latin1
Conn.  characterset:    latin1
UNIX socket:            /var/lib/mysql/mysql.sock
Uptime:                 1 hour 57 min 51 sec

Threads: 1  Questions: 62  Slow queries: 0  Opens: 13  Flush tables: 1  Open tables: 7  Queries per second avg: 0.009

mysql>show variables like "char%";
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | latin1                     | 
| character_set_connection | latin1                     | 
| character_set_database   | latin1                     | 
| character_set_filesystem | binary                     | 
| character_set_results    | latin1                     | 
| character_set_server     | latin1                     | 
| character_set_system     | utf8                       | 
| character_sets_dir       | /usr/share/mysql/charsets/ | 
+--------------------------+----------------------------+

でcharacter_set_systemがutf8なのにlatinとか出てくるのがマズかった模様。
全部utf8にする。



[masa@localhost temp]$ cat /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Default to using old password format for compatibility with mysql 3.x
# clients (those using the mysqlclient10 compatibility package).
old_passwords=1
default-character-set=utf8
skip-character-set-client-handshake

上記のように
default-character-set=utf8
skip-character-set-client-handshake
を追加して、mysqlを再起動したあと新しくdbを作る。

#service mysqld restart
#mysqladmin create mydb

このDBで作業するとすべてが上手くいく。

FedoraのJavaの開発環境はよくわからん

2008-01-04 15:57:05 | Java
FedoraでのJava開発環境には挫折させられることが多い。
その1
FedoraのEclipseを日本語化しようとして挫折した。
NL packをコピーして、起動したら一度だけ日本語でメニューが表示されたが、
その後立ち上げ直したら元に戻っていた。
いろんなサイトを見ても、コピーするだけで良さげなので、正直お手上げ。

その2
MySQLに接続して、Eclipseのコンソールへ日本語をprintしてみたら、
文字化け。
フォントを変えても変化なし。必死に調べるもどこにも何も書いてない。またまたお手上げ。
どこに情報があるのやら。

その3
Tomcat用のEclipseプラグインを入れる。
Tomcatの再起動をさせようとするも無反応。必死で調べるもよくわからん。お手上げ。

どうでもいい部分にものすごく時間がかかるのが腹立つ。
次にFedora8へアップグレードしたら、
FedoraのEclipseではなくてソースからコンパイルしてインストールしてみようと思う。
それで多少はマシになるような気がする。