データベースが起動していないときはDatabaseViewでzkseasarプロジェクトをクリックしデータベースを起動します。次にブラウザでlocalhost:8082へアクセスしH2 Consoleを開きデータベースに接続します。SQLステートメントに下記のSQLをコピーし実行するとテーブルが作成されサンプルデータが登録されます。
create table rain_stats(
year integer,
month char(3),
rainfall decimal(4, 1)
);
insert into rain_stats values(2003, '1月', 101.0);
insert into rain_stats values(2003, '2月', 53.5);
insert into rain_stats values(2003, '3月', 159.5);
insert into rain_stats values(2003, '4月', 121.0);
insert into rain_stats values(2003, '5月', 172.5);
insert into rain_stats values(2003, '6月', 85.0);
insert into rain_stats values(2003, '7月', 187.5);
insert into rain_stats values(2003, '8月', 370.0);
insert into rain_stats values(2003, '9月', 150.0);
insert into rain_stats values(2003, '10月', 171.5);
insert into rain_stats values(2003, '11月', 229.5);
insert into rain_stats values(2003, '12月', 53.0);
insert into rain_stats values(2004, '1月', 3.5);
insert into rain_stats values(2004, '2月', 20.0);
insert into rain_stats values(2004, '3月', 129.5);
insert into rain_stats values(2004, '4月', 69.5);
insert into rain_stats values(2004, '5月', 149.0);
insert into rain_stats values(2004, '6月', 112.5);
insert into rain_stats values(2004, '7月', 23.5);
insert into rain_stats values(2004, '8月', 79.5);
insert into rain_stats values(2004, '9月', 195.0);
insert into rain_stats values(2004, '10月', 780.0);
insert into rain_stats values(2004, '11月', 108.5);
insert into rain_stats values(2004, '12月', 79.5);
insert into rain_stats values(2005, '1月', 77.0);
insert into rain_stats values(2005, '2月', 48.0);
insert into rain_stats values(2005, '3月', 71.0);
insert into rain_stats values(2005, '4月', 81.0);
insert into rain_stats values(2005, '5月', 180.5);
insert into rain_stats values(2005, '6月', 170.5);
insert into rain_stats values(2005, '7月', 247.5);
insert into rain_stats values(2005, '8月', 189.5);
insert into rain_stats values(2005, '9月', 177.5);
insert into rain_stats values(2005, '10月', 201.5);
insert into rain_stats values(2005, '11月', 34.5);
insert into rain_stats values(2005, '12月', 3.5);
package zkseasar.entity;
import java.math.BigDecimal;
import javax.persistence.Entity;
import javax.persistence.Table;
@Entity
@Table(name = "RAIN_STATS")
public class RainStats {
public Integer year;
public String month;
public BigDecimal rainfall;
}
package zkseasar.service;
import java.util.List;
import org.seasar.extension.jdbc.JdbcManager;
import zkseasar.entity.RainStats;
public class RainStatsService {
public JdbcManager jdbcManager;
public List<RainStats> selectAll(String year) {
return jdbcManager.from(RainStats.class)
.where("year = ?", year)
.getResultList();
}
}
<?xml version="1.0" encoding="UTF-8"?>
<?variable-resolver class="org.zkoss.zkplus.seasar.DelegatingVariableResolver"?>
<zk xmlns="http://www.zkoss.org/2005/zul" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.zkoss.org/2005/zul http://www.zkoss.org/2005/zul/zul.xsd ">
<window title="東京 年間降雨量デモ" width="500px" border="normal">
年度:
<listbox id="yr" rows="1" mold="select" onSelect="processYear(self.selectedItem.label)">
<listitem label="2005" selected="true"/>
<listitem label="2004"/>
<listitem label="2003"/>
</listbox>
<vbox>
<chart id="mychart" title="月別降雨量 (mm)" width="500" height="250" type="pie" threeD="false" fgAlpha="128"/>
<checkbox label="3D チャート" checked="false" onCheck="mychart.setThreeD(self.isChecked())"/>
</vbox>
<zscript>
model = new SimplePieModel();
// 年を指定してパイチャートを表示
void processYear(String year) {
model.clear();
rainStats = rainStatsService.selectAll(year);
for(data: rainStats){
model.setValue(data.month, data.rainfall);
}
mychart.setModel(model);
}
// デフォルトは最新の年
processYear("2005");
</zscript>
</window>
</zk>
当初パイチャートの日本語が文字化けしていました。OSはFedora Core6です
http://blog.goo.ne.jp/koregaiya/e/ac4c0c130df9fa8ef0cf7e31be71671aを参考にして文字化けを解消することが出来ました。コマンドだけ書いておきます。
# cd $JAVA_HOME/jre/lib/fonts
# mkdir fallback
# cd fallback
# ln -s /usr/share/fonts/japanese/TrueType/ipagp.ttf kochi-gothic-subst.ttf
# ln -s /usr/share/fonts/japanese/TrueType/ipamp.ttf kochi-mincho-subst.ttf
0 件のコメント:
コメントを投稿