当前位置: 软件>java软件
mvc框架 fw4j
本文导语: 一个使用servlet+反射实现的mvc框架与使用asm实现的数据库操作层框架 该框架目前处于开发阶段,框架实现方法简单,肯定存在不足之处希望以后可以继续完善 已经实现的功能有: Controller控制层 请求转发 ...
一个使用servlet+反射实现的mvc框架与使用asm实现的数据库操作层框架
该框架目前处于开发阶段,框架实现方法简单,肯定存在不足之处希望以后可以继续完善
已经实现的功能有:
Controller控制层
请求转发
页面重定向
数据库的基本操作
没有实现的功能:
数据库的存储过程调用、表关联
使用实例:
控制层代码
package com.demo.controller;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.demo.dao.UserDao;
import com.demo.entity.UserEntity;
import com.fw4j.jdbc.factory.DaoFactory;
import com.fw4j.jdbc.factory.EntityFactory;
import com.fw4j.web.annotation.Controller;
import com.fw4j.web.annotation.Parameter;
import com.fw4j.web.annotation.RequestMapping;
@Controller
@RequestMapping("/")
public class DemoController {
@RequestMapping("/index")
@Action(type=Type.REQUEST,result="/view/index.jsp")
public int doGet(){
return 0;
}
@RequestMapping("/list")
@Action(type=Type.TOJSON)
public Object list(){
List objectlist = new ArrayList();
Map valMap = new HashMap();
valMap.put("222", "222");
valMap.put("123", "123");
objectlist.add(valMap);
objectlist.add(valMap);
return objectlist;
}
@RequestMapping(value="/add",method=Method.POST)
public String add(@Parameter({"name","pwd"}) String name, String pwd) throws Exception{
// DaoFactory.transaction(new TransactionCallback() {
// @Override
// public void invoke() throws SQLException {
// UserEntity ue = null;
// try {
// ue = EntityFactory.getInstance(UserEntity.class);
// ue.setName(name);
// ue.setPwd(pwd);
// ue.setLoginTime(new Date());
// DaoFactory.getSynConnectInstance(UserDao.class).saveOrUpdate(ue);
// } catch (InstanceException e) {
// e.printStackTrace();
// } catch (Exception e) {
// e.printStackTrace();
// }
// }
// });
UserEntity ue = EntityFactory.getInstance(UserEntity.class);
ue.setName(name);
ue.setPwd(pwd);
ue.setLoginTime(new Date());
DaoFactory.getInstance(UserDao.class).saveOrUpdate(ue);
return "redirect:/show";
}
@RequestMapping("/show")
public String show(OutParameter oparam) throws Exception{
Listuel = (List)DaoFactory.getInstance(UserDao.class).getAll();
oparam.put("users", uel);
return "/view/show.jsp";
}
}
实体层:
package com.demo.entity;
import java.util.Date;
import com.fw4j.jdbc.annotation.Column;
import com.fw4j.jdbc.annotation.Entity;
import com.fw4j.jdbc.annotation.Key;
import com.fw4j.jdbc.annotation.Table;
@Entity
@Table("users")
public interface UserEntity {
@Key
@Column(value="id",type=Column.INTEGER)
void setId(int id);
int getId();
@Column(value="name",type=Column.STRING)
void setName(String name);
String getName();
@Column(value="pwd",type=Column.STRING)
void setPwd(String pwd);
String getPwd();
@Column(value="loginTime",type=Column.DATE)
void setLoginTime(Date lt);
Date getLoginTime();
}
数据库操作层:
package com.demo.dao;
import java.util.List;
import com.demo.entity.UserEntity;
import com.fw4j.jdbc.annotation.Dao;
import com.fw4j.jdbc.annotation.Query;
import com.fw4j.jdbc.annotation.Where;
import com.fw4j.jdbc.dao.BaseDao;
@Dao(UserEntity.class)
public interface UserDao extends BaseDao {
@Query("select * from users")
@Where("name = ? and pwd = ?")
ListfindByNameAndPwd(String name,String pwd);
}
配置文件:
demo
index.html
index.htm
index.jsp
default.html
default.htm
default.jsp
fw4j
/
fw4j
com.fw4j.web.servlet.DispatcherServlet
1
fw4j的独立配置文件
utf-8
/WEB-INF/view/
jdbc:mysql://localhost/webauth
com.mysql.jdbc.Driver
root
123
10000
jdbc:h2:tcp://127.0.0.1:9094/~/test
org.h2.Driver
sa