日本S2DAO技术框架

来日本有一段时间了。也从事了关于日本项目的相关开发。其实也没有什么大的生活变化。主要是因为早上要去上课,而下午还要到公司参加相关的开发工作。显然生活会少微冲实一点。为了公司的发展。公司便派我去研究SEASAR 2的相关技术。相对而言我还是比较喜欢其中的S2DAO。所以我便在这里写写一些简单的入门S2DAO。希望对有接日本外包的朋友有帮忙。
其实,如果你们有struts + spring + hibernate的经验的话,只要看看一些源码你就可以知道seasar 2 是一个什么东西。而s2dao之所以让我喜欢是因为它并没有像hibernate那样子让我害怕。使用起来更是方便。也可以看出来日本企业也在技术这方面下了不少功失。
S2dao的URL:[url]http://s2dao.seasar.org/ja/index.html[/url]
在[b]ダウンロード[/b]的下载方面。选择[b]S2Dao 1.0.51 (S2Dao Tigerを含みます)[/b]这一项目下载。
解压它

我们可以看到如下文件夹。其中我们有用的很少。根据相关的文件命名我们也可清楚知道各个文件夹存放什么东西。LIB文件夹是所需要的包。dao.dicon文件和j2ee.dicon文件及log4j.properties文件这是我们需要的三个文件,请放到项目src的下面。
同时请修改j2ee.dicon里面的连接数据信息。如下是ORACLE的信息

<component name="xaDataSource"
class="org.seasar.extension.dbcp.impl.XADataSourceImpl">
<property name="driverClassName">
"oracle.jdbc.driver.OracleDriver"
</property>
<property name="URL">
"jdbc:oracle:thin:@xxx.xxx.x.xxx:1521:xxxx"
</property>
<property name="user">"xxxx"</property>
<property name="password">"xxxx"</property>
<initMethod name="addProperty">
<arg>"includeSynonyms"</arg>
<arg>"true"</arg>
</initMethod>
</component>


我用的是ECLIPSE的开发工具。下面是实体BEAN

package co.jp.dao.bean;

public class Comment {

public static final String TABLE = "INFO";

private int id;
private String title;
private String content;


public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}



我们可以看到实体BEAN就是一个类对象。只是类里面有一些固定的写法如下
public static final String TABLE = "INFO";
这里是告诉这个类相对应数据表名。接着就是数据库的操作类如下就是了。只是你看到的时候可能会觉得这设计者也太懒了吧。只要一个接口类就OK了。

package co.jp.dao.inf;

import java.util.List;

import co.jp.dao.bean.Comment;

public interface CommentDao {
public static final Class<Comment> BEAN = Comment.class;

public static final String select_ARGS = "title,content";
public static final String getCoutSelect_ARGS = "title";

public List<Comment> select(String title,String content);


public int getCountSelect(String title);

public int update(Comment cd);

public int insert(Comment cd);

public int delete(Comment cd);

public List getAllCds();


}




这里也有相关的固定写法。如下
public static final Class<Comment> BEAN = Comment.class;
public static final String select_ARGS = "title,content";
public static final String getCoutSelect_ARGS = "title";
Class<Comment> BEAN是告诉操作类要操作哪一个实体类。
xxxxx_ARGS是表示xxxxx方法相对的相关SQL参数。也就是当你调用这个方法的时候s2dao会去调用相关的sql文件。我们把相的SQL语句写在SQL文件里面。
看一下这个文件就知道了。如下
CommentDao_getCountSelect.sql文件

select count(id) from INFO where title like /*title*/


CommentDao_select.sql文件

select id,title,content from INFO where title like /*title*/ and content like /*content*/

同时你还在dao.dicon文件后面加上如下代码

<component name="CDao" class="co.jp.dao.inf.CommentDao">
<aspect>interceptor</aspect>
</component>

从上面来看的话,你会觉得很像spring是吧。其实他们的思想是一样子的。

就是这么简单。希望对大家有帮助
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值