Visual Studio 2015でCrystal Reportsを使えるようにする
※ 2019/12/31 ダウンロード関連説明を最新にしました
Visual Studio 2015で帳票の出力をしようと思い「Crystal Reports」を使うことにしました。
標準ではインストールされていないので、別途ダウンロードとインストールが必要です。
その時の手順をまとめましたので、参考にして下さい。
環境
OS | Windows 10 |
---|---|
Visual Studio | 2015 Community |
Crystal Reports | 13.0.20 |
手順
1.Visual Studioを起動しているなら終了させます。
2.次のサイトからCrystal Reportsをダウンロードします。
3.「CRforVS13SP26_0-10010309.EXE」のようなファイルがダウンロードされるので実行します。
4.「セットアップ言語の選択」が表示されるので「日本語」が選択されていることを確認し、「OK」をクリックします。
5.「次へ」をクリックします。
6.「使用許諾契約書に同意する」を選択し「次へ」をクリックします。
7.「次へ」をクリックします。
8.インストールが始まるのでしばらく待ちます。
9.「はい、64ビットランタイムをインストール」にチェックが入っていることを確認し「完了」をクリックします。
10.ランタイムのインストールが始まり、完了すると自動的にウインドウが消えます。
11.Visual Studioを起動し、プロジェクトから「新しい項目の追加」を選択します。
12.左メニューから「Reporting」を選択し、右側の一覧で「Crystal Reports」を選択すると開発が可能になります。
旧バージョンをダウンロードする
旧バージョンが必要な場合は、以下のサイトにリンクがあります。
www.tektutorialshub.com
不具合について
最新の「13.0.21」を適用すると右クリックメニューが文字化けする不具合があるとのコメントを頂きました。→対応方法があるようです。
2539511 - Context menu language not working for east Asia (JP, KO, zh-CN, zh-TW) and Russian languages in Visual Studio 2010+
スタードメインでメールを転送するためのドメイン設定方法
管理しているドメインをお名前.comからスタードメインに移管しました。
スタードメインにした理由は、他社と比較すると料金が安いためです。
スタードメインでメール転送設定を行ってみたのですが、なかなかうまくいかずハマったので、成功した方法を紹介します。
設定概要
スタードメインでは、サーバー管理ツールにあるメール転送設定を行っただけでは、メールが転送されないようです。
紹介する設定方法は、以下のような名前解決でメール転送を行います。
転送元メールアドレスにメール送信
↓
メールアドレスのドメインをMXレコードのドメインで名前解決
↓
MXレコードに設定された宛先(IPアドレス)に転送・名前解決
↓
Aレコードの宛先(スタードメインサーバー)に転送・名前解決
↓
メールが処理され、転送先メールアドレスにメールが届く
設定手順
1.スタードメインにアクセスし、ログインします。
2.左メニューの「スタードメイン管理」をクリックすると「管理ドメイン一覧」が表示されるので、メール転送したいドメインの「サーバー管理ツール」ボタンをクリックします。
3.サーバー管理ツールの「サーバー情報」をクリックし「IPアドレス」をメモします。
4.サーバー管理ツールの左メニューの「メール転送設定」をクリックし、「メールアドレス」「転送先メールアドレス」を追加します。
5.ドメイン管理ツールに戻り、「DNSレコード編集」ボタンをクリックします。
6.「レコード追加」をクリックし、次の2種類のレコードを追加します。
取得済みのドメインを「test.com」とします。
3でメモしたIPアドレスを「192.168.0.1」とします。
設定1 | 設定2 | |
ホスト名 | mail.test.com | 空欄 |
---|---|---|
タイプ | A(IPアドレス) | MX(メール) |
コンテンツ | 192.168.0.1 | mail.test.com |
優先度 | 空欄 | 0 |
7.ドメインの反映に少し時間がかかりますが、設定したメールアドレス宛にメールを送信して受信可能かテストします。
- 作者: きはしまさひろ
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2016/03/29
- メディア: 単行本
- この商品を含むブログを見る
MacのVMWare FusionからWindowsのVMWare Workstation Playerに移行する手順
MacとWindowsでは、日本語ファイル名の濁点・半濁点の扱いが異なるため、そのまま移行してもファイルのパスを認識しないため動作しません。
そのため、MacからWindowsに移行するには、事前に日本語を含まないファイル名に変更しておく必要があります。
同じようなサイトを参考に行ってみましたが、どうもスムーズにいかなかったので、スムーズにいった手順を書いてみました。
MacのVMWare Fusionの手順
1.ターミナルを起動し、移行したい仮想マシンがあるディレクトリに移動します。
cd "/Users/{ユーザー名}/Documents/Virtual Machines.localized/Windows 7 x64.vmwarevm"
2.アプリケーションディレクトの「VMWare Fusion.app」内にある「vmware-vdiskmanager」を使って仮想ディスクの名前を変更します。
仮想ディスク名は、「仮想ディスク-s001.vmdk」と連番が付いていますが、それを除いた名前を指定します。
コマンドを実行すると全てのファイル名が変更されます。
/Applications/VMware\ Fusion.app/Contents/Library/vmware-vdiskmanager -n 仮想ディスク.vmdk win7.vmdk
3.仮想マシンにある「*.vmx」ファイルを開き、10行目あたりの「scsi0:0.fileName」に2で設定した新しい名前に変更します。
Finderの場合、仮想マシン「*..vmwarevm」ファイルを右クリックし「パッケージの内容を表示する」をクリックします。
ターミナルの場合、VI等のエディタで編集します。
vi "/Users/onishi/Documents/Virtual Machines.localized/Windows 7 x64.vmwarevm/Windows 7 x64.vmx"
「*.vmx」を以下のように変更します。
# 変更前 scsi0:0.fileName = "仮想ディスク.vmdk" # 変更後 scsi0:0.fileName = "win7.vmdk"
4.ファイル名を変更した仮想マシンをWindowsにコピーします。
ネットワーク経由でも良いですが、ファイルサイズが大きいのでUSB3.0対応USBメモリを使うと早くコピーできます。
【Amazon.co.jp限定】 Transcend USBメモリ 16GB USB3.1 & USB 3.0 スライド式 ブラック (無期限保証) TS16GJF790KPE (FFP)
- 出版社/メーカー: トランセンド・ジャパン
- 発売日: 2016/03/04
- メディア: Personal Computers
- この商品を含むブログ (1件) を見る
WindowsのVMWare Workstation Playerの手順
1.Macからコピーした仮想マシンをVMWare Workstation Playerで開きます。
デフォルトの仮想マシンフォルダは、「C:¥Users¥{ユーザー名}¥Documents¥Virtual Machines」です。
2.仮想マシンを問題なく起動できると、移動またはコピーしたかのダイアログが表示されるので、「移動しました」を選択します。
3.環境によっては、キーボードフックタイムアウトの設定ダイアログが表示されるので、「OK」を選択します。
4.仮想マシンが正常に起動しWindowsが操作できることを確認します。追加でVMWare Toolsのインストールを行います。
Visual Studio 2015でWindows Installerを使えるようにする
Visual Studio 2015から2010のときに標準だったインストーラーが拡張機能として使えるようになりました。
英語表記ですが、機能的にほとんど変わっていないので心配ないと思われます。
インストール方法をまとめました。
環境
- Windows 10
- Visual Studio Community 2015
手順
1.ファイルメニューの「ツール」→「拡張機能と更新プログラム」を開きます
2.右上の検索欄に「installer」と入力して検索すると、一覧に「Microsoft Visual Studio 2015 Installer Project」が表示されるので「ダウンロード」をクリックします
3.ブラウザが起動するのでファイルをダウンロードします
4.ダウンロードしたファイルを起動します
5.Visual Studioを起動していると終了を促すメッセージが表示されるので、Visual Studioを終了させ「Retry」をクリックします
6.セットアップの内容が表示されるので確認し「Install」をクリックします
7.Windowsの権限許可が表示されるので「はい」をクリックします
8.インストールが始まるのでしばらく待ちます
9.インストールが完了したら「Close」をクリックします
10.Visual Studioを起動して任意のプロジェクトを開いてから、ファイルメニューの「ファイル」→「新しいプロジェクト」を選択します
11.「その他のプロジェクトの種類」→「Visual Studio Installer」を選択し、一覧の「Setup Project」を選択します。
12.既存のプロジェクトにSetupプロジェクトが追加され、インストーラーを作成できるようになります。
作って覚えるVisual C# 2015 デスクトップアプリ入門
- 作者: 荻原裕之,宮崎昭世
- 出版社/メーカー: 秀和システム
- 発売日: 2016/01/29
- メディア: 単行本
- この商品を含むブログ (1件) を見る
GlassFish4でSpringBootを動かすとログが無限に出力される対処方法
GlassFish4でSpringBootアプリを動かすと、アプリで設定したログファイルに無限にログが出力され、サーバーのディスクを使い切るという現象に遭遇しました。
いろいろ調べてもなかなか対処方法がありませんでしたが、困った時の「stack overflow」に似たようなことで質問が上がっていたので試したら無事解決したので、その手順を紹介します。
動作環境
SpringBoot | 1.3.6 |
---|---|
Logback | 1.1.7 |
SLF4j | 1.7.21 |
GlassFish | 4.1.1 Full Profile |
※GlassFishは、PayaraServer 163 Fullのdomain1を使用
問題の現象
GlassFishにSpringBootアプリをwarでデプロイし、アプリが起動するとアプリで設定したログファイルに次のようなものが無限に出力される。
INFO [2016-11-08 16:59:28.375] unknown.jul.logger . ____ _ __ _ _ INFO [2016-11-08 16:59:28.397] unknown.jul.logger /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ INFO [2016-11-08 16:59:28.397] unknown.jul.logger ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ INFO [2016-11-08 16:59:28.397] unknown.jul.logger \\/ ___)| |_)| | | | | || (_| | ) ) ) ) INFO [2016-11-08 16:59:28.397] unknown.jul.logger ' |____| .__|_| |_|_| |_\__, | / / / / INFO [2016-11-08 16:59:28.398] unknown.jul.logger =========|_|==============|___/=/_/_/_/ INFO [2016-11-08 16:59:28.398] unknown.jul.logger :: Spring Boot :: (v1.3.6.RELEASE) INFO [2016-11-08 16:59:28.398] unknown.jul.logger 2016-11-08 16:59:28.375 INFO 2466 --- [ Thread-8] unknown.jul.logger : . ____ _ __ _ _ INFO [2016-11-08 16:59:28.398] unknown.jul.logger INFO [2016-11-08 16:59:28.375] unknown.jul.logger . ____ _ __ _ _ INFO [2016-11-08 16:59:28.398] unknown.jul.logger 2016-11-08 16:59:28.397 INFO 2466 --- [ Thread-8] unknown.jul.logger : /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ INFO [2016-11-08 16:59:28.398] unknown.jul.logger INFO [2016-11-08 16:59:28.397] unknown.jul.logger /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ INFO [2016-11-08 16:59:28.399] unknown.jul.logger 2016-11-08 16:59:28.397 INFO 2466 --- [ Thread-8] unknown.jul.logger : ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ INFO [2016-11-08 16:59:28.399] unknown.jul.logger INFO [2016-11-08 16:59:28.397] unknown.jul.logger ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ INFO [2016-11-08 16:59:28.399] unknown.jul.logger 2016-11-08 16:59:28.397 INFO 2466 --- [ Thread-8] unknown.jul.logger : \\/ ___)| |_)| | | | | || (_| | ) ) ) ) INFO [2016-11-08 16:59:28.399] unknown.jul.logger INFO [2016-11-08 16:59:28.397] unknown.jul.logger \\/ ___)| |_)| | | | | || (_| | ) ) ) ) INFO [2016-11-08 16:59:28.399] unknown.jul.logger 2016-11-08 16:59:28.397 INFO 2466 --- [ Thread-8] unknown.jul.logger : ' |____| .__|_| |_|_| |_\__, | / / / / INFO [2016-11-08 16:59:28.400] unknown.jul.logger INFO [2016-11-08 16:59:28.397] unknown.jul.logger ' |____| .__|_| |_|_| |_\__, | / / / / INFO [2016-11-08 16:59:28.400] unknown.jul.logger 2016-11-08 16:59:28.398 INFO 2466 --- [ Thread-8] unknown.jul.logger : =========|_|==============|___/=/_/_/_/ INFO [2016-11-08 16:59:28.400] unknown.jul.logger INFO [2016-11-08 16:59:28.398] unknown.jul.logger =========|_|==============|___/=/_/_/_/ INFO [2016-11-08 16:59:28.400] unknown.jul.logger 2016-11-08 16:59:28.398 INFO 2466 --- [ Thread-8] unknown.jul.logger : :: Spring Boot :: (v1.3.6.RELEASE) INFO [2016-11-08 16:59:28.400] unknown.jul.logger INFO [2016-11-08 16:59:28.398] unknown.jul.logger :: Spring Boot :: (v1.3.6.RELEASE) INFO [2016-11-08 16:59:28.400] unknown.jul.logger 2016-11-08 16:59:28.398 INFO 2466 --- [ Thread-8] unknown.jul.logger : 2016-11-08 16:59:28.375 INFO 2466 --- [ Thread-8] unknown.jul.logger : . ____ _ __ _ _ INFO [2016-11-08 16:59:28.401] unknown.jul.logger INFO [2016-11-08 16:59:28.398] unknown.jul.logger 2016-11-08 16:59:28.375 INFO 2466 --- [ Thread-8] unknown.jul.logger : . ____ _ __ _ _ INFO [2016-11-08 16:59:28.401] unknown.jul.logger 2016-11-08 16:59:28.398 INFO 2466 --- [ Thread-8] unknown.jul.logger : INFO [2016-11-08 16:59:28.375] unknown.jul.logger . ____ _ __ _ _ INFO [2016-11-08 16:59:28.401] unknown.jul.logger INFO [2016-11-08 16:59:28.398] unknown.jul.logger INFO [2016-11-08 16:59:28.375] unknown.jul.logger . ____ _ __ _ _ INFO [2016-11-08 16:59:28.401] unknown.jul.logger 2016-11-08 16:59:28.398 INFO 2466 --- [ Thread-8] unknown.jul.logger : 2016-11-08 16:59:28.397 INFO 2466 --- [ Thread-8] unknown.jul.logger : /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ INFO [2016-11-08 16:59:28.401] unknown.jul.logger INFO [2016-11-08 16:59:28.398] unknown.jul.logger 2016-11-08 16:59:28.397 INFO 2466 --- [ Thread-8] unknown.jul.logger : /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ INFO [2016-11-08 16:59:28.402] unknown.jul.logger 2016-11-08 16:59:28.398 INFO 2466 --- [ Thread-8] unknown.jul.logger : INFO [2016-11-08 16:59:28.397] unknown.jul.logger /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ INFO [2016-11-08 16:59:28.402] unknown.jul.logger INFO [2016-11-08 16:59:28.398] unknown.jul.logger INFO [2016-11-08 16:59:28.397] unknown.jul.logger /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ INFO [2016-11-08 16:59:28.402] unknown.jul.logger 2016-11-08 16:59:28.399 INFO 2466 --- [ Thread-8] unknown.jul.logger : 2016-11-08 16:59:28.397 INFO 2466 --- [ Thread-8] unknown.jul.logger : ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ INFO [2016-11-08 16:59:28.402] unknown.jul.logger INFO [2016-11-08 16:59:28.399] unknown.jul.logger 2016-11-08 16:59:28.397 INFO 2466 --- [ Thread-8] unknown.jul.logger : ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
GlassFishでLoggerが認識されていないのが原因のようです。
手順
GlassFishにあるファイルを編集する前にバックアップを取りましょう。
1.GlassFishが起動している場合、停止する
glassfish4/glassfish/bin/asadmin stop-domain domain1
2.GlassFIshのlibディレクトリにlogback・slf4jライブラリを配置する
# 配置先 glassfish4/glassfish/lib/endorsed # 配置するライブラリ jul-to-slf4j-x.x.x.jar slf4j-api-x.x.x.jar logback-core-x.x.x.jar logback-classic-x.x.x.jar
3.GlassFishのconfigディレクトリにlogback.xmlを配置し、次のように定義する
vi glassfish/domains/domain1/config/logback.xml
<configuration debug="true" scan="true"> <appender name="FILE" class="ch.qos.logback.core.FileAppender"> <file>log/server.log</file> <append>true</append> <encoder> <Pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{52} - %msg%n</Pattern> </encoder> </appender> <root> <level value="INFO"/> <appender-ref ref="FILE"/> </root> </configuration>
4.GlassFishにある「logging.properties」の一部を書き換える
管理コンソールで変更している場合、変更した値になっているので注意して下さい。
vi glassfish4/glassfish/domain1/config/logging.properties
Before
handlers=java.util.logging.ConsoleHandler handlerServices=com.sun.enterprise.server.logging.GFFileHandler java.util.logging.ConsoleHandler.formatter=com.sun.enterprise.server.logging.UniformLogFormatter com.sun.enterprise.server.logging.GFFileHandler.formatter=com.sun.enterprise.server.logging.ODLLogFormatter com.sun.enterprise.server.logging.GFFileHandler.file=${com.sun.aas.instanceRoot}/logs/server.log com.sun.enterprise.server.logging.GFFileHandler.rotationTimelimitInMinutes=0 com.sun.enterprise.server.logging.GFFileHandler.flushFrequency=1 java.util.logging.FileHandler.limit=50000 com.sun.enterprise.server.logging.GFFileHandler.logtoConsole=false com.sun.enterprise.server.logging.GFFileHandler.rotationLimitInBytes=2000000 com.sun.enterprise.server.logging.GFFileHandler.excludeFields= com.sun.enterprise.server.logging.GFFileHandler.multiLineMode=true com.sun.enterprise.server.logging.SyslogHandler.useSystemLogging=false java.util.logging.FileHandler.count=1 com.sun.enterprise.server.logging.GFFileHandler.retainErrorsStasticsForHours=0 log4j.logger.org.hibernate.validator.util.Version=warn com.sun.enterprise.server.logging.GFFileHandler.maxHistoryFiles=0 com.sun.enterprise.server.logging.GFFileHandler.rotationOnDateChange=false java.util.logging.FileHandler.pattern=%h/java%u.log java.util.logging.FileHandler.formatter=java.util.logging.XMLFormatter
After
handlers=org.slf4j.bridge.SLF4JBridgeHandler #変更 handlerServices=com.sun.enterprise.server.logging.GFFileHandler java.util.logging.ConsoleHandler.formatter=com.sun.enterprise.server.logging.UniformLogFormatter com.sun.enterprise.server.logging.GFFileHandler.formatter=com.sun.enterprise.server.logging.ODLLogFormatter com.sun.enterprise.server.logging.GFFileHandler.file=${com.sun.aas.instanceRoot}/logs/server.log #そのまま com.sun.enterprise.server.logging.GFFileHandler.rotationTimelimitInMinutes=0 com.sun.enterprise.server.logging.GFFileHandler.flushFrequency=1 java.util.logging.FileHandler.limit=50000 com.sun.enterprise.server.logging.GFFileHandler.logtoConsole=false com.sun.enterprise.server.logging.GFFileHandler.rotationLimitInBytes=2000000 com.sun.enterprise.server.logging.GFFileHandler.excludeFields= com.sun.enterprise.server.logging.GFFileHandler.multiLineMode=true com.sun.enterprise.server.logging.SyslogHandler.useSystemLogging=false java.util.logging.FileHandler.count=1 com.sun.enterprise.server.logging.GFFileHandler.retainErrorsStasticsForHours=0 log4j.logger.org.hibernate.validator.util.Version=warn com.sun.enterprise.server.logging.GFFileHandler.maxHistoryFiles=0 com.sun.enterprise.server.logging.GFFileHandler.rotationOnDateChange=false java.util.logging.FileHandler.pattern=%h/java%u.log com.sun.enterprise.server.logging.GFFileHandler.formatter=com.sun.enterprise.server.logging.UniformLogFormatter #変更 com.sun.enterprise.server.logging.GFFileHandler.alarms=false #追加
5.GlassFishの「domain.xml」にJVMオプションを追加する
vi glassfish4/glassfish/domains/domain1/config/domain.xml
domain.xml
# <domain> # <configs> # <config name="server-config"> # <java-config> 配下に追加する(250行目の次) <jvm-options>-Djava.util.logging.config.file=${com.sun.aas.instanceRoot}/config/logging.properties</jvm-options> <jvm-options>-Dlogback.configurationFile=file:///${com.sun.aas.instanceRoot}/config/logback.xml</jvm-options>
6.GlassFishを起動する
glassfish4/glassfish/bin/asadmin start-domain domain1
補足
SpringBootアプリには、「jul-to-slf4j」は含んでいません。
logback.xmlは、SpringBootのbase.xmlを読み込み、独自設定を追加しています。
application.propertiesの「logging.file」は、設定していません。
logging.properties(alarms以外)、jvm-optionは、管理コンソールの「server-config」で設定できます。
まとめ
ネットにあった内容をそのまま試して日本語に起こしただけです。
詳しいことは分からないので聞かないようにお願いしますw
この記事で関連する書籍
Java EE 7徹底入門 標準Javaフレームワークによる高信頼性Webシステムの構築
- 作者: 寺田佳央,猪瀬淳,加藤田益嗣,羽生田恒永,梶浦美咲,小田圭二
- 出版社/メーカー: 翔泳社
- 発売日: 2015/12/16
- メディア: 大型本
- この商品を含むブログ (7件) を見る
Spring徹底入門 Spring FrameworkによるJavaアプリケーション開発
- 作者: 株式会社NTTデータ
- 出版社/メーカー: 翔泳社
- 発売日: 2016/07/20
- メディア: Kindle版
- この商品を含むブログ (1件) を見る
XamarinをMacにインストールする
スマホアプリをクロスプラットフォーム開発できる「Xamarin」をMacにインストールしたときの手順です。
手順
1.Xamarinダウンロードページにアクセスします。
www.xamarin.com
2.全項目を入力し、チェックボックスにチェックを入れ、ダウンロードボタンをクリックします。
3.「XamarinInstaller.dmg」のダウンロードが開始されます。
4.ダウンロードが完了したら、dmgファイルを実行し、表示されたアイコンをダブルクリックします。
5.Webからダウンロードしたので「開く」をクリックします。
6.「同意する」にチェックします。
7.インストールの準備中でしばらく待ちます。
8.インストールするプロダクトを選択します。
9.設定のインストール先を設定します。
10.XCodeがインストールされていない場合のお知らせです。
11.インストールされるプロダクトの一覧です。
13.Macのパスワードを入力します。
14.インストールが開始されるので待ちます。
15.インストールの進捗バーがなくなりますが、インストール中で、3回程Macのパスワードが求められるので入力します。
16.インストールが完了しました。XCodeがインストールされていな場合、「インストールしてね」と表示されます。
17.アプリケーションフォルダの「Xamarin Studio.app」を起動します
登録後に届くメール
以下の様なメールが届きます。
最終行に配信停止のリンクがあるので不要であればそこから手続きします。
Hi
Thanks for downloading Xamarin Studio! We just wanted to point you to a few key resources to help you get started quickly:
- Cross-platform development with Xamarin Studio
- Prebuilt Apps
- Xamarin Developer Center
If you have any questions, please post them here in StackOverflow and our support team will answer them as quickly as they can.
Warm regards,
Unsubscribe from Xamarin marketing emails.
Team Xamarin
「doma-spring-boot-starter」を使ってSpringBootとDomaの連携を楽にする
JavaのDBアクセスフレームワーク「Doma2」にSpringBootと連携し自動で設定してくれる「doma-spring-boot-starter」が追加されました。
今までは独自にDoma用のクラスを作成し連携していましたが、それをする必要がなくなり導入と設定が楽になりました。
「doma-spring-boot-starter」の適用概略
1.build.gradleに「https://oss.sonatype.org/content/repositories/snapshots」のリポジトリを追加する
2.build.gradleに「org.seasar.doma.boot:doma-spring-boot-starter」の依存を追加する
3.application.propertiesに必要であればdoma用の設定を追加する
「doma-spring-boot-starter」を使うことでdoma設定クラスが不要になります。
application.properties
にdoma.naming
を追加することで、@Entity
のNamingType
の定義が不要になります。
サンプルコード
build.gradle
repositories { mavenCentral() // 追記 maven { url 'https://oss.sonatype.org/content/repositories/snapshots' } } dependencies { // 追記 compile('org.seasar.doma.boot:doma-spring-boot-starter:1.0.2') // 削除 //compile('org.seasar.doma:doma:2.6.2') }
src/main/resources/application.properties
# DB spring.datasource.url=jdbc:oracle:thin:@localhost:1521:test_db spring.datasource.username=test spring.datasource.password=test spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver # DOMA doma.dialect=ORACLE doma.naming=SNAKE_LOWER_CASE
src/main/java/com.example.dao.EmpDao
package com.example.dao; import java.util.List; import org.seasar.doma.Dao; import org.seasar.doma.Select; import org.seasar.doma.boot.ConfigAutowireable; import com.example.entity.Emp; @ConfigAutowireable @Dao public interface EmpDao { @Select List<Emp> findAll(); }
src/main/java/com.example.entity.Emp
package com.example.entity; import java.util.Date; import org.seasar.doma.Entity; import org.seasar.doma.Id; // application.propertiesの「doma.naming」で指定済みなので不要 //@Entity(naming = NamingType.SNAKE_LOWER_CASE) @Entity public class Emp { @Id public String empNo; public String empNm; }
src/main/java/com.example.web.TestController
package com.example.web; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import com.example.dao.EmpDao; import com.example.entity.Emp; @Controller public class TestController { @Autowired private EmpDao empDao; @RequestMapping("/test") public String index() { List<Emp> list = empDao.findAll(); for (Emp emp : list) { System.out.println(emp.empNo); } return "test/test"; }