环境

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.

jeesite笔记的更多相关文章

  1. JeeSite学习笔记~代码生成原理

    1.建立数据模型[单表,一对多表,树状结构表] 用ERMaster建立数据模型,并设定对应表,建立关联关系 2.系统获取对应表原理 1.怎样获取数据库的表 genTableForm.jsp: < ...

  2. JeeSite开发笔记

    开发流程笔记: http://m.blog.csdn.net/article/details?id=51251619

  3. jeesite学习笔记(一) 项目框架

    JeeSite是基于多个优秀的开源项目,高度整合封装而成的高效,高性能,强安全性的开源Java EE快速开发平台. 在github上,对jeesite平台有详细的介绍,这里稍作整理,给出项目的内置功能 ...

  4. Jeesite的cahche工具类

    本CacheUtils主要是基于shiro的cache进行处理. 其他选择: 类似的我们可以选择java cache ,spring cahche等方案.                   再进一步 ...

  5. JeeSite中Excel导入导出

    在各种管理系统中,数据的导入导出是经常用到的功能,通常导入导出以Excel.CSV格式居多.如果是学习的过程中,最好是自己实现数据导入与导出的功能,然而在项目中,还是调用现成的功能比较好.近期一直使用 ...

  6. JeeSite数据分页与翻页

    本文章介绍的是JeeSite开源项目二次开发时的一些笔记,对于没有使用过JeeSite的可以不用往下看了,因为下面的代码是跟JeeSite二次开发相关的代码,不做JeeSite的二次开发,以下代码对您 ...

  7. git-简单流程(学习笔记)

    这是阅读廖雪峰的官方网站的笔记,用于自己以后回看 1.进入项目文件夹 初始化一个Git仓库,使用git init命令. 添加文件到Git仓库,分两步: 第一步,使用命令git add <file ...

  8. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  9. SQL Server技术内幕笔记合集

    SQL Server技术内幕笔记合集 发这一篇文章主要是方便大家找到我的笔记入口,方便大家o(∩_∩)o Microsoft SQL Server 6.5 技术内幕 笔记http://www.cnbl ...

随机推荐

  1. 在linux上使用交换文件扩展交换空间

    想像一种情景,当我们的Linux系统用尽交换空间时,在这种情况下,我们想要使用swap分区扩展交换空间,但在某些情况下磁盘上已经没有可用的空闲分区了,致使我们不能把它扩大. 因此,在这种情况下,我们可 ...

  2. VC++双缓冲保持背景不擦除之实现

    几天前,我终于克服了C++窗体重绘时的闪烁问题,用到的技巧就是双缓冲.但是怎样保持住已经绘制的图形呢?也就是仿照Windows自带的画图程序一般,动态的做出一条直线.最容易想到的方法是在MouseMo ...

  3. android_Activity之Button_OnClickListener

    今天我们要讲的主要是四大组件之一Activity 什么是Android 的四大组件呢?接下来简单了解下. 1.Activity  Activity就是我们应用程序的界面,主要用来跟我们的用户进行交互的 ...

  4. Linux内核分析第六周学习总结:进程的描述和进程的创建

    韩玉琪 + 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 一.进程的描述 ...

  5. 超链接的那些事(二): 属性href

    a标签的属性之一 href 1. 定义 href 属性用于指定超链接目标的 URL. 2. 用法     ①. 锚点 同一页面添加锚点 (1)<a href="#test"& ...

  6. JS事件冒泡

    JavaSciprt事件中有两个很重要的特性:事件冒泡以及目标元素. 事件冒泡: 当一个元素上的事件被触发的时候,比如说鼠标点击了一个按钮,同样的事件将会在那个元素的所有祖先元素中被触发.这 一过程被 ...

  7. Git克隆

    用法1:Git clone <repository> <directory> 将<repository>指向的版本库创建一个克隆到<directory> ...

  8. XE3随笔5:Format与转义字符

    unit Unit1; interface uses   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, For ...

  9. c#开发Mongo笔记第九篇

    用skip略过少量的文档还是不错的.但是要是数量非常多的话,skip就会变得很慢,因为要先找到需要被略过的数据,然后再抛弃这些数据.大多数数据库都会在索引中保存更多的元数据,用于处理skip, 但是m ...

  10. nodeJS分层

    一.nodeJS分层 分为三层: - 表现层:接受用户数据,并封装 - 服务层:与公司业务有关的东西,处理判断呀什么的 - 持久层:与数据库有关的    表现层:page与表现层的数据传递,route ...