对中软R1平台的一些想法以及来公司3天的感受
来源:互联网 发布:windows 7摄像头 编辑:程序博客网 时间:2024/05/16 19:15
来公司3天了,感觉还不错,无论从技术上还是同事方面。无论最后是否能留下来都是笔宝贵的财富。呵呵,当然,我对自己还是有信心的。
R1平台是公司从中软引进的,我们这批新来的据说就是为了培训这个新平台。初次接触看到,以为就是个简单的eclipse插件,后来见到它的整个架构,原来是个快速开发平台,它把“一切”都封装了。Model全部封装在servlet和handler,servlet继承自它自己的一个类ServletBase,Handler主要是封装业务逻辑。而controler还是按照一般的架构由servlet或者部署文件控制。整个系统采用servlet的filter技术进行权限控制和字符转换等处理。
采用这个平台开发与数据库交互的应用很简单,首先建立个连接(在R1 studio,一个插件),在建立个DAO对象,你可以选择同时生成VO(Value Object)。然后建立servlet,会自动生成一个servlet和handler。handler封装了对于数据库的增、删除、改、搜、批量增、批量删等操作,其实是通过一个DAOFactory来实现,不过你必须在DAO中提供主键,它依据这个主键来进行此类操作。而servlet进行流程控制,获取表单数据,进行处理和交给javabean,然后forward到JSP文件。建立JSP文件,R1只是提供了个功能很简陋的模板,包括分页程序,如果要实际使用,你恐怕要自己写咯。R1把一个查询出来的结果放在List里面,然后传入request,再传到具体的页面。对于判断操作类型,根据JSP文件提交的表单中的隐藏的operate属性进行判断是何种操作,然后调用相应的handler中的方法。以上只是个简单的流程,毕竟我也才接触两天。
主要类的参考代码如下:
DAO类
package com.icss.test.demo.baseinfomanage.dao;
import java.sql.Connection;
import com.icss.j2ee.dao.DAO;
import com.icss.j2ee.dao.DAOException;
public class RmstestDAO extends DAO {
public String id;
public String name;
public RmstestDAO(){
super();
}
public RmstestDAO(Connection conn){
super(conn);
}
public java.lang.String getId(){
return id;
}
public void setId(java.lang.String _id){
firePropertyChange("id",id,_id);
id = _id;
}
public java.lang.String getName(){
return name;
}
public void setName(java.lang.String _name){
firePropertyChange("name",name,_name);
name = _name;
}
protected void setupFields() throws DAOException {
addField("id","ID");
addField("name","NAME");
setTableName("RMSTEST");
addKey("ID"); //提供主键
}
}
VO类:
package com.icss.test.demo.baseinfomanage.vo;
import com.icss.j2ee.vo.ValueObject;
public class RmstestVO1 extends ValueObject {
public String id;
public String name;
public java.lang.String getId(){
return id;
}
public void setId(java.lang.String _id){
id = _id;
}
public java.lang.String getName(){
return name;
}
public void setName(java.lang.String _name){
name = _name;
}
}
servlet类片段:
try{
conn = getConnection("java:comp/env/jdbc/cigmisdb");
String id = request.getParameter("id");
String name = request.getParameter("name");
String operate=request.getParameter("operate");
if(id==null)
id="";
if(name==null)
name="";
RmstestDAO rmstestDAO = new RmstestDAO();
rmstestDAO.setId(id); //设置主键
RmstestHandler rmstestHandler = new RmstestHandler(conn);
if(operate.equals("insert")) {
rmstestDAO.setName(name);
rmstestHandler.create(rmstestDAO);
}else if(operate.equals("modify")) {
rmstestDAO.setName(name);
rmstestHandler.update(rmstestDAO,true);
}else if(operate.equals("remove")) {
rmstestHandler.delete(rmstestDAO);
}
String dist ="/servlet/baseinfomanage/MyServlet";
forward(request,response,dist);
}catch(Exception e){
handleError(e) ;
}finally{.....}
Handler类片段:
public RmstestHandler(Connection conn){
this.conn=conn;
factory = new DAOFactory(conn);
}
public void create(RmstestDAO rmstestDAO)throws DAOException{
rmstestDAO.setConnection(conn);
rmstestDAO.create();
}
public void update(RmstestDAO rmstestDAO,boolean updateByPrimaryKey)throws DAOException{
rmstestDAO.setConnection(conn);
rmstestDAO.update(updateByPrimaryKey);
}
/** 参数DAO中必须含有主键
* 否则请使用batchDelete方法
*/
public void delete(RmstestDAO rmstestDAO)throws DAOException{
rmstestDAO.setConnection(conn);
rmstestDAO.delete();
}
/** 没有找到与RmstestDAO相应的VO
* 所以查询结果返回的是DAO的List
*/
public List find(RmstestDAO rmstestDAO)throws DAOException{
factory.setDAO(rmstestDAO);
List result = factory.find();
return result;
}
/** 没有找到与RmstestDAO相应的VO
* 所以查询结果返回的是DAO的实例
*/
public RmstestDAO findByPrimaryKey(RmstestDAO rmstestDAO)throws DAOException{
factory.setDAO(rmstestDAO);
return (RmstestDAO)factory.findByPrimaryKey();
}
public void batchUpdate(RmstestDAO rmstestDAO)throws DAOException{
factory.setDAO(rmstestDAO);
factory.batchUpdate();
}
public void batchDelete(RmstestDAO rmstestDAO)throws DAOException{
factory.setDAO(rmstestDAO);
factory.batchDelete();
}
- 对中软R1平台的一些想法以及来公司3天的感受
- 一些汇编中得来的感受
- 来CSDN的一些感受
- 关于平台的一些想法
- 开放平台的一些想法
- 我对程序员,人生以及工作的一些想法
- 对软件业的一些想法
- 对考研的一些想法
- 对RPCA的一些感受
- 对公司的选择和个人职业发展规划的一些想法
- 对UBUNTU的想法和使用一段时间的感受
- 对软件测试中“黑天鹅”问题的一些想法
- 对软件中地址的一些随意想法
- 学习中对“超精读”的一些经验和感受
- 【面试】写写最近面试的一些想法和感受吧
- 来北京之后的一些想法
- 30来岁程序员的一些想法
- 关于平台研发的一些想法
- 程序员,建立你的商业意识(连载七)
- 让Ultra Edit和Keil结合的更紧密
- 初学C51者应注意的地方
- 生产报表数据库出现了活动事务的回滚段损坏(一)
- 晨上CSDN
- 对中软R1平台的一些想法以及来公司3天的感受
- Informix查询优化update statistics小注
- 劣质电源损坏硬盘
- 硬件点滴
- 如何在delphi的代码中加入一个过程
- 生产报表数据库出现了活动事务的回滚段损坏(二)
- ASP操作Excel
- 关于ASP.NET中调用Excel组件不能结束进程的解决方法
- 弹出窗口总结