eweb demo war包+源码+db脚本 下载 (1.8.x-SNAPSHOT)_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > eweb demo war包+源码+db脚本 下载 (1.8.x-SNAPSHOT)

eweb demo war包+源码+db脚本 下载 (1.8.x-SNAPSHOT)

 2011/12/28 17:55:43  laiweiweihi  http://laiweiweihi.iteye.com  我要评论(0)
  • 摘要:看来,年内发布一个完整的新版本比较难了.实在是要忙公司的项目.eweb框架虽然也在持续开发中,不过因为新版本的文档资料还没有重新编写,所以只能先放出一个正在开发中的演示,虽然是演示,不过该版本已经比较稳定了.这次放出的压缩包解开之后有三个东西:源代码:eweb4j-petstore-sources.jarwar部署包:eweb4j-petstore.war数据库脚本(mysql):petstore_db.sql如果需要其他数据库,自己写一个吧,才两个表,一个外键关系而已.放一张截图吧
  • 标签:Web 源码 下载 脚本
看来,年内发布一个完整的新版本比较难了.

实在是要忙公司的项目.

eweb框架虽然也在持续开发中,
不过因为新版本的文档资料还没有重新编写,
所以只能先放出一个正在开发中的演示,虽然是演示,
不过该版本已经比较稳定了.

这次放出的压缩包解开之后有三个东西:

源代码:eweb4j-petstore-sources.jar

war部署包:eweb4j-petstore.war

数据库脚本(mysql):petstore_db.sql

如果需要其他数据库,自己写一个吧,才两个表,一个外键关系而已.

放一张截图吧:



各位请放心下载哇.

上几句代码吧:
package com.cfuture08.eweb4j.demo.petstore.pet.web;

import java.util.Arrays;


import com.cfuture08.eweb4j.demo.petstore.AbstractAction;
import com.cfuture08.eweb4j.demo.petstore.pet.Pet;
import com.cfuture08.eweb4j.demo.petstore.pet.PetException;
import com.cfuture08.eweb4j.mvc.annotation.POST;
import com.cfuture08.eweb4j.mvc.annotation.Path;

/**
 * 添加宠物信息控制器
 * 
 * @author weiwei
 * 
 */

public class AddPetInfoAction extends AbstractAction {

	/**
	 * 接收页面表单数据,提供验证规则
	 */
	private Pet pet = null;

	/**
	 * 处理HTTP请求 POST http://{host}:{port}/eweb/pets/
	 * 
	 * @return
	 */
	@Path("pets/")
	@POST
	public String doPost() {
		request.setAttribute("types", Arrays.asList("猫", "狗", "猪"));
		try {
			petService.create(pet);
		} catch (PetException e) {
			request.setAttribute("error", e.getMessage());
			return "../error.jsp";
		}

		return "redirect:list";
	}

	public Pet getPet() {
		return pet;
	}

	public void setPet(Pet pet) {
		this.pet = pet;
	}

}


package com.cfuture08.eweb4j.demo.petstore;

import javax.servlet.http.HttpServletRequest;


import com.cfuture08.eweb4j.demo.petstore.master.MasterService;
import com.cfuture08.eweb4j.demo.petstore.pet.PetService;
import com.cfuture08.eweb4j.ioc.annotation.Ioc;

/**
 * 宠物信息抽象控制器
 * 
 * @author weiwei
 * 
 */

public abstract class AbstractAction {

	/**
	 * 通过IOC容器注入
	 */
	@Ioc("petService")
	protected PetService petService;

	/**
	 * 通过IOC容器注入
	 */
	@Ioc("masterService")
	protected MasterService masterService;

	/**
	 * 声明且提供setter方法,框架就能自动注入
	 */
	protected HttpServletRequest request;

	public PetService getPetService() {
		return petService;
	}

	public void setPetService(PetService petService) {
		this.petService = petService;
	}

	public MasterService getMasterService() {
		return masterService;
	}

	public void setMasterService(MasterService masterService) {
		this.masterService = masterService;
	}

	public HttpServletRequest getRequest() {
		return request;
	}

	public void setRequest(HttpServletRequest request) {
		this.request = request;
	}

}



package com.cfuture08.eweb4j.demo.petstore.pet;

import java.util.List;

import com.cfuture08.eweb4j.orm.dao.DAO;
import com.cfuture08.eweb4j.orm.dao.DAOException;
import com.cfuture08.eweb4j.orm.dao.cascade.CascadeDAO;
import com.cfuture08.eweb4j.orm.dao.delete.DeleteDAO;
import com.cfuture08.eweb4j.orm.dao.factory.DAOFactory;
import com.cfuture08.eweb4j.orm.dao.insert.InsertDAO;
import com.cfuture08.eweb4j.orm.dao.select.DivPageDAO;
import com.cfuture08.eweb4j.orm.dao.select.SelectDAO;
import com.cfuture08.eweb4j.orm.dao.update.UpdateDAO;

/**
 * 宠物信息服务接口实现类
 * 
 * @author weiwei
 * 
 */
public class PetServiceImpl implements PetService {
	private DivPageDAO divPageDAO;
	private CascadeDAO cascadeDAO;
	private SelectDAO selectDAO;
	private InsertDAO insterDAO;
	private UpdateDAO updateDAO;
	private DeleteDAO deleteDAO;

	// 这是一个用来拼凑sql语句的接口,
	// 是在ORM映射之下的.并不是直接拼凑原生SQL
	private DAO dao;

	public PetServiceImpl() {
		this.divPageDAO = DAOFactory.getDivPageDAO();
		this.cascadeDAO = DAOFactory.getCascadeDAO();
		this.selectDAO = DAOFactory.getSelectDAO();
		this.insterDAO = DAOFactory.getInsertDAO();
		this.updateDAO = DAOFactory.getUpdateDAO();
		this.deleteDAO = DAOFactory.getDeleteDAO();
		this.dao = DAOFactory.getDAO(Pet.class);
	}

	/**
	 * 分页获取宠物信息列表
	 * 
	 * @param pageNum
	 * @return
	 * @throws PetException
	 */
	public List<Pet> getPage(int pageNum) throws PetException {
		List<Pet> list = null;
		try {
			list = divPageDAO.divPage(Pet.class, pageNum, 10);
			if (list != null) {
				// 级联查询出所有宠物的主人信息
				cascadeDAO.select(list.toArray(new Pet[] {}), "master");
			}

		} catch (DAOException e) {
			throw new PetException("数据库错误", e);
		}

		return list;
	}

	public long count() throws PetException {
		long count = 0;
		try {
			count = selectDAO.selectCount(Pet.class);
		} catch (DAOException e) {
			throw new PetException("数据库错误", e);
		}
		return count;
	}

	/**
	 * 添加宠物信息
	 * 
	 * @param pet
	 * @throws PetException
	 */

	public void create(Pet pet) throws PetException {
		if (pet == null)
			throw new PetException("要添加的宠物信息不能为空");
		try {
			Pet db_pet = selectDAO.selectOne(pet, "name");
			if (db_pet != null)
				throw new PetException("宠物名字已经存在,请重填");

			db_pet = selectDAO.selectOne(pet, "number");
			if (db_pet != null)
				throw new PetException("宠物编号已经存在,请重填");

			pet.setMaster(null);

			insterDAO.insert(pet);

		} catch (DAOException e) {
			throw new PetException("数据库错误", e);
		}
	}

	/**
	 * 更新
	 * 
	 * @param petId
	 * @param pet
	 * @throws PetException
	 */

	public void update(Pet pet) throws PetException {
		if (pet == null)
			throw new PetException("宠物信息已被删除或丢失");
		try {

			Pet db_pet = dao.selectAll().where().field("name")
					.equal(pet.getName()).and("id").notEqual(pet.getId())
					.queryOne();

			// 也可以
			// String condition = String.format("name = '%s' and id <> '%s'",
			// pet.getName(), pet.getId());
			// Pet db_pet =
			// selectDAO.selectOneByWhere(Pet.class,
			// condition);

			if (db_pet != null)
				throw new PetException("宠物名字已经存在,请重填");

			dao.clear();
			db_pet = dao.selectAll().where().field("number").equal(pet.getNumber())
					.and("id").notEqual(pet.getId()).queryOne();

			// 也可以
			// condition = String.format("number = '%s' and id <> '%s'",
			// pet.getNumber(), pet.getId());
			// db_pet = selectDAO.selectOneByWhere(Pet.class,
			// condition);
			if (db_pet != null)
				throw new PetException("宠物编号已经存在,请重填");

			pet.setMaster(null);

			updateDAO.update(pet);

		} catch (DAOException e) {
			throw new PetException("数据库错误", e);
		}
	}

	/**
	 * 删除
	 * 
	 * @param petId
	 * @throws PetException
	 */

	public void remove(long petId) throws PetException {
		try {

			deleteDAO.deleteById(Pet.class, petId);

		} catch (DAOException e) {
			e.printStackTrace();
			throw new PetException("数据库错误", e);
		}
	}

	/**
	 * 获取详细信息
	 * 
	 * @param petId
	 * @return
	 * @throws PetException
	 */
	public Pet getDetail(long petId) throws PetException {
		Pet pet = null;
		try {
			pet = selectDAO.selectOneById(Pet.class, petId);

			// 级联查询出所有宠物的主人信息
			cascadeDAO.select(pet, "master");

		} catch (DAOException e) {
			throw new PetException("数据库错误", e);
		}

		return pet;
	}
}





package com.cfuture08.eweb4j.demo.petstore.pet;


import com.cfuture08.eweb4j.demo.petstore.master.Master;
import com.cfuture08.eweb4j.mvc.validate.annotation.Chinese;
import com.cfuture08.eweb4j.mvc.validate.annotation.Enum;
import com.cfuture08.eweb4j.mvc.validate.annotation.Int;
import com.cfuture08.eweb4j.mvc.validate.annotation.Length;
import com.cfuture08.eweb4j.mvc.validate.annotation.Required;
import com.cfuture08.eweb4j.mvc.validate.annotation.Size;
import com.cfuture08.eweb4j.orm.config.annotation.Id;
import com.cfuture08.eweb4j.orm.config.annotation.One;
import com.cfuture08.eweb4j.orm.config.annotation.Table;

@Table("t_pet")
public class Pet {
	@Id
	private long id;
	
	@Required(mess="编号必填")
	@Length(min = 6, max = 6, mess="编号6位数字或文字的组合")
	private String number;
	
	@Required(mess="宠物名字必填,2-32位,中文")
	@Chinese(mess="宠物名字要求全中文")
	@Length(min=2,max=32,mess="宠物名字,2-32位")
	private String name;
	
	@Required(mess="年龄必填,1-5岁")
	@Int(mess="年龄,必须是数字")
	@Size(min = 1, max = 5, mess="年龄,1-5岁")
	private int age;
	
	@Required(mess="宠物类型必填")
	@Enum(words = { "猫", "狗" },mess="宠物类型, 只能添加猫和狗两种类型")
	private String type;//只能添加猫和狗两种类型

	@One(column = "master_id")
	private Master master;

	public long getId() {
		return id;
	}

	public void setId(long id) {
		this.id = id;
	}

	public String getNumber() {
		return number;
	}

	public void setNumber(String number) {
		this.number = number;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public String getType() {
		return type;
	}

	public void setType(String type) {
		this.type = type;
	}

	public Master getMaster() {
		return master;
	}

	public void setMaster(Master master) {
		this.master = master;
	}

	@Override
	public String toString() {
		return "PetModel [id=" + id + ", number=" + number + ", name=" + name
				+ ", age=" + age + ", type=" + type + ", master=" + master
				+ "]";
	}

}

下.
  • 大小: 31.9 KB
  • eweb-1.8.x-demo.zip (3.8 MB)
  • 下载次数: 6
  • 查看图片附件
发表评论
用户名: 匿名