環境
Github上的不能初始化數據庫:https://github.com/thinkgem/jeesite
官網上的可以: http://jeesite.com/
用 Idea 打開,修改 \src\main\resources\jeesite.properties 中的數據庫連接字符串,重新導入Marven包。運行\db\init-db.bat。
配置Tomcat8,就可以運行了。
規范
modules 下里分了幾個系統組,每個系統組里,又分了 entity,dao,service,web,調用關系:
web->service->dao->entity
Dao 是 Xml 對 Java 的映射,所以Dao不需要實現,它是接口。
生成配置
1. 創建數據表。
2. 生成單表實體: public class {DbTable} extends DataEntity<{DbTable}>
3. 生成表Dao:
@MyBatisDao public interface {DbTable}Dao extends CrudDao<{DbTable}> { public {DbTable} {XmlFunction}(String Id); }
4. 生成表Service:Server可以根據情況,按MDA模型中的M進行生成。一個表可以生成多個Service,多個表可以使用一個Service。
@Service @Transactional(readOnly = true) public class {DbTable}Service extends CrudService<{DbTable}Dao,{DbTable}> { @Autowired public {DbTable1}Dao {DbTable1}Dao; @Autowired public {DbTable2}Dao {DbTable2}Dao; public {自定義返回實體} {業務方法} (String Id){ {DbTable1}Dao.方法(); {DbTable2}Dao.方法(); return {自定義返回實體}; } }
如果繼承 CrudService,它是為代碼生成器准備的,需要在Dao和Xml中定義以下方法:
public interface CrudDao<T> extends BaseDao { public T get(String id); public T get(T entity); public List<T> findList(T entity); public List<T> findAllList(T entity); @Deprecated public List<T> findAllList(); public int insert(T entity); public int update(T entity); @Deprecated public int delete(String id); public int delete(T entity); }
5. 定義Xml,位置:resources\mappings\modules\組
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="{NameSpace}.{DbTable}Dao"> <!-- 根據編號獲得用戶 --> <select id="{XmlFunction}" resultType="{DbTable}"> SELECT * FROM {DbTable} WHERE id = #{id} </select> </mapper>
resultType="HashMap" 或者: resultType="Map" 可以使 XmlFunction 返回字典。
代碼生成器
jeesite使用了自己的規范,運行起jeesite網站后, 在代碼生成里,進行代碼生成,步驟如下:
1. 添加數據庫表
2. 在jeesite里:代碼生成-》業務表配置-》業務表添加,進行添加。
3. 在jeesite里: 代碼生成-》生成方案配置-》單表-》保存並生成代碼。 如果是主子表,可以選主子表。如果是樹,可以選樹。
主子表,僅選擇主表就可以。也可以先生成全部表后,再對主表進行覆蓋生成。
4. 完成后,代碼生成到項目中了。
改造
1. 去除權限機制 @RequiresPermissions
2. 去除 @RequestMapping 中的 ${adminPath} 定義。
功能
1. JsonMapper:
String toJson(Object object)
<T> T fromJson(String jsonString, Class<T> clazz)
2. StringUtils ,各種類型的轉換
3. CacheUtils , 緩存工具類
4. Digests ,支持SHA-1/MD5消息摘要的工具類.
5.