由于工做的事情不少吗,已经好几天没上OSC了,个人NetVinace项目也荒废了好一段时间了。端午放假,必定要有一点更新才行。昨天,我花了一个下午,为项目加入了如下几项更新,虽然项目如今仍是不能使用的,但仍是得写写,本身作个记号。java
更新列表:mysql
统一应用中业务逻辑层接口,因为java类能够实现多接口,若是有须要,用户能够编写本身的接口,并实现本身的接口,但必须实现系统默认服务接口。com.amos.main.service.ServiceUtil。此接口中包含业务入口,Boolean executeService(Object[] parm);方法.目前该接口还在测试阶段,后续还有很大的升级可能。不说太多,下面给出这次更新涉及到的源码。来,1,2,3 去马(码)!spring
引入数据库,并设计命令系统配置表:这次更新加入数据库支持,方便配置系统各类信息,引入命令系统,方便往后系统更新,与插件编写:sql
'命令处理器配置表' SQL:数据库
/* Table: COMMAND_HANDLER_CONFIG */
/*==============================================================*/
create table COMMAND_HANDLER_CONFIG
(
OID int(3) not null,
CMD_CODE varchar(50) default NULL,
CMD_NAME varchar(50),
CMD_HANDLER_CLZ varchar(100),
CMD_HANDLER_METHOND varchar(100),
PARMETER_NUM int(2),
ISHEAD int(1) default 0,
PARENT int(3) comment '父级命令',
NOTE text default NULL
);apache
alter table COMMAND_HANDLER_CONFIG comment '命令处理器配置表';session
/*==============================================================*/
/* Index: IDX_CMD_CODE */
/*==============================================================*/
create index IDX_CMD_CODE on COMMAND_HANDLER_CONFIG
(
CMD_CODE
);ide
/*==============================================================*/
/* Index: IDX_CMD_NAME */
/*==============================================================*/
create index IDX_CMD_NAME on COMMAND_HANDLER_CONFIG
(
CMD_NAME
);测试
命令参数配置表' SQL:this
create table COMMAND_PARMETERS_CONFIG
(
OID int(10) not null,
CMD_ID int(3),
PARM_NAME varchar(20),
PARM_TYPE varchar(100),
PARM_IDX int(3),
NOTE text
);
alter table COMMAND_PARMETERS_CONFIG comment '命令参数配置表';
alter table COMMAND_PARMETERS_CONFIG add constraint FK_FK_COMMAND_PARMETERS foreign key (OID)
references COMMAND_HANDLER_CONFIG (OID) on delete restrict on update restrict;
客户端重要更新:
public class ClientApp implements ServiceUtil { //你能够本身写接口,并在你的实现类中,同时实现ServiceUtil 和你本身的接口。
//ServiceUtil 接口方法
@Override
public boolean executeService(Object[] parms) {
// TODO Auto-generated method stub
return startClient(parms[0].toString(), this);
}
}
一样道理,服务端也有相似实现。。
//系统DAO接口定义(完整):
public interface ISystemCommonDao {
public int saveData(IEntry entry);
/**
*
* @param entry
* @return int
* @category 更新数据
*/
public int updateData(IEntry entry);
/**
*
* @param entryClass
* @param id
* @return int
* @category 删除单条数据
*/
public int deleteData(Class entryClass, String id);
/**
* @author Administrator
* @category 批量删除数据
* @param entryClass,ids
* @return int
* @exception Exception
* @since 1.0.0 2011-01-19
*/
public int deleteDatas(Class entryClass, String[] ids);
/**
*
* @param entryClass
* @param pageNo
* @param pageSize
* @return PageUtil
* @category DAO查询分页方法
*/
public PageUtil queryAllData(Class entryClass, int pageNo,
int pageSize);
/**
* @category DAO查询非分页方法
* @param entryClass
* @return
*/
public List<IEntry> queryAllData(Class entryClass);
public IEntry querySingleData(Class entryClass,
String id);
public IEntry querySingleDataByCondition(Class entryClass,
String condition);
/**
*
* @param condition
* @param entryClass
* @return PageUtil
* @category DAO条件查询分页方法
*/
public PageUtil queryDataByCondition(String condition,
Class entryClass, int pageNo, int pageSize);
/**
*
* @param condition
* @param entryClass
* @return
* @category DAO条件查询非分页方法
*/
public List<IEntry> queryDataByCondition(
String condition, Class entryClass, boolean distinct);
/**
*
* @param sql
* @return List
* @category SQL查询方法
*/
public List queryDataBySQL(String sql);
/**
*
* @param sql
* @return List
* @category SQL更新方法
*/
public void updateDataBySQL(String sql);
}
接下来就是对应接口的实现了。。
//系统DAO接口默认实现:
public class SystemCommonDaoImpl extends HibernateDaoSupport implements
ISystemCommonDao{
//方法重写。。省略N行。。O(∩_∩)O哈哈~
}
写完代码了,由于系统全部组件都交给Spring管理,因此,须要在spring配置文件中加入相关配置。
关于数据访问支持,确定要配置hibernate的sessionFactory
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"></property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.format_sql">true</prop>
<prop key="hibernate.batch_size">15</prop>
</props>
</property>
</bean>
固然,数据源配置也是必不可少
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://127.0.0.1:3306/netvinace"></property>
<property name="username" value="root"></property>
<property name="password" value="201441"></property>
<property name="initialSize" value="50"></property>
<property name="maxActive" value="100"></property>
<property name="maxIdle" value="10"></property>
<property name="maxWait" value="10"></property>
</bean>
还有,系统DAO的默认实现也少不了
<bean id="systemDao" class="com.amos.main.db.SystemCommonDaoImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
加入以后,整个数据支持就完成了,其实,还差一部分工做,就是实体类了,由于暂时尚未对表设计进行校验,表的设计是否合理,还在测试阶段。迟点测试好了,再拿出来给你们分享吧。