Skip to content

Commit 8a83bf6

Browse files
committed
一丢丢文档
1 parent 0eeb8d6 commit 8a83bf6

File tree

4 files changed

+230
-64
lines changed

4 files changed

+230
-64
lines changed

doc/1.安装使用.md

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
# 使用hsweb
22
项目java8开发,使用maven进行管理.
33

4-
## 使用
5-
配置pom.xml
4+
## 1.配置maven pom.xml
5+
引入私服
66
```xml
77
<!--统一依赖管理-->
88
<dependencyManagement>
@@ -34,16 +34,10 @@
3434
<!--设置了dependencyManagement,可以不指定版本号-->
3535
<dependency>
3636
<groupId>org.hsweb</groupId>
37-
<artifactId>hsweb-web-controller</artifactId>
37+
<artifactId>hsweb-web-start</artifactId>
3838
</dependency>
39+
```
3940

40-
<dependency>
41-
<groupId>org.hsweb</groupId>
42-
<artifactId>hsweb-web-service-simple</artifactId>
43-
</dependency>
41+
完整配置,可参照 [demo](https://github.com/hs-web/hsweb-demo/blob/master/pom.xml)
4442

45-
<dependency>
46-
<groupId>org.hsweb</groupId>
47-
<artifactId>hsweb-web-dao-mybatis</artifactId>
48-
</dependency>
49-
```
43+
[查看api](2.API.md)

doc/2.API.md

Lines changed: 16 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,53 +1,17 @@
1-
# hsweb 常用api
1+
## 开发
2+
1. [创建通用crud](./create-crud.md)
3+
2. [使用通用crud](./use-crud.md)
24

3-
## CRUD
4-
[如何创建通用crud](./create-crud.md)
5-
6-
查询:
7-
```java
8-
9-
import static MyBean.Property.*; //属性名
10-
myService.createQuery()
11-
.where(name,"admin")
12-
.or(name,"root")
13-
.list(); //list(), list(0,10), single(),total();
14-
//or
15-
myService.createQuery().fromBean(myBean)
16-
.where(name)
17-
.or(name)
18-
.list();
19-
20-
// 复杂查询条件
21-
// 等同sql where name is not null and (name like '李%' or name like '周%') and age >0
22-
// 参数全部预编译,不用担心注入
23-
myService.createQuery()
24-
.where().notNull(name)
25-
.nest().or().like$(name,"").or().like$(name,"").end()
26-
.and().gt(age,10).list();
27-
28-
//自定义sql条件
29-
30-
myService.createQuery()
31-
.where()
32-
.and().sql("name !=''")
33-
.or().sql("age < #{age}",{age:10})// 使用预编译方式
34-
.or().sql("age = #{[0]}",Arrays.asList(20))//获取集合参数
35-
.or().sql("age > ? and (age <?)",60,100)//使用参数列表方式
36-
.list();
37-
```
38-
39-
修改,支持和query一致的条件
40-
```java
41-
import static MyBean.Property.*;
42-
myService.createUpdate()
43-
.set(status,1)
44-
.where(id,"data-id").exec();
45-
// or
46-
myService.createUpdate(myBean).fromBean().where(id).exec();
47-
```
48-
49-
删除,支持和query一致的条件
50-
```java
51-
import static MyBean.Property.*;
52-
myService.createDelete().where(id,"data-id").exec();
53-
```
5+
## 使用
6+
1. [权限管理](): 权限资源-角色-用户.
7+
2. [配置管理](): kv结构,自定义配置.可通过此功能配置数据字典.
8+
3. [脚本管理](): 动态脚本,支持javascript,groovy,java动态编译执行.
9+
4. [表单管理](): 动态表单,可视化设计表单,自动生成数据库以及系统权限.无需重启直接生效.
10+
5. [模块设置](): 配合动态表单实现表格页,查询条件自定义.
11+
6. [数据库维护](): 在线维护数据库,修改表结构,执行sql.
12+
7. [数据源管理](): 配置多数据源.
13+
8. [代码生成器](): 在线生成代码,打包下载.可自定义模板.
14+
9. [定时任务](): 配置定时任务,使用动态脚本编写任务内容.
15+
10. [系统监控](): 监控系统资源使用情况.
16+
11. [缓存监控](): 监控缓存情况.
17+
12. [访问日志](): 记录用户每次操作情况

doc/create-crud.md

Lines changed: 160 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,160 @@
1+
# 创建通用增删改查功能
2+
3+
## 1. 实体
4+
目前hsweb只有一种实体:PO。统一继承 `GenericPo`
5+
6+
新建实体`org.hsweb.demo.bean.test.MyTest`如下:
7+
```java
8+
public class MyTest extends GenericPo{
9+
private String name;
10+
11+
private int age;
12+
13+
//由于查询使用动态参数,使用此方式定义属性名。方便统一维护
14+
public interface Property extends GenericPo.Property{
15+
String name = "name";
16+
String age = "age";
17+
}
18+
}
19+
```
20+
21+
建立数据库表(hsweb暂未使用jpa等方式自动建表):
22+
23+
方式1: 编辑`resources/scripts/initialize.groovy` (此脚本在项目首次运行时执行) 并加入
24+
```groovy
25+
database.createOrAlter("s_test")
26+
.addColumn().name("u_id").alias("id").comment("ID").jdbcType(JDBCType.VARCHAR).length(32).primaryKey().commit()
27+
.addColumn().name("age").alias("age").comment("年龄").jdbcType(JDBCType.DECIMAL).length(16,0).commit()
28+
.addColumn().name("name").alias("name").comment("姓名").jdbcType(JDBCType.VARCHAR).length(128).commit()
29+
.comment("测试").commit();
30+
```
31+
32+
方式2: 如果系统已经初始化,则需要手动建立表结构,或者使用更新版本的方式进行初始化:
33+
假设当前版本为 1.0.0, 升级为 1.0.1,则新建文件 ``resources/scripts/upgrade/1.0.1.groovy`` 并加入方式1中的脚本内容.
34+
在启动后,更新版本时会自动执行此脚本.
35+
36+
## 2. dao 接口
37+
38+
定义接口 ``org.hsweb.demo.dao.test.MyTestMapper``
39+
40+
(增删改查 继承GenericMapper即可)
41+
```java
42+
public interface MyTestMapper extends GenericMapper<MyTest, String> {
43+
}
44+
```
45+
## 3.mybatis dao实现
46+
mybatis 采用配置文件(xml)的方式
47+
48+
新建xml配置`resources/org/hsweb/demo/mappers/test/MyTestMapper`如下:
49+
```xml
50+
<?xml version="1.0" encoding="UTF-8" ?>
51+
<!DOCTYPE mapper
52+
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
53+
"http://www.mybatis.org/dtd/mybatis-3-mapper.dtd">
54+
<mapper namespace="org.hsweb.demo.dao.test.MyTestMapper">
55+
<resultMap id="TestResultMap" type="org.hsweb.demo.bean.test.MyTest">
56+
<id property="id" column="u_id" javaType="string" jdbcType="VARCHAR"/>
57+
<result property="name" column="name" javaType="String" jdbcType="VARCHAR"/>
58+
<result property="age" column="age" javaType="int" jdbcType="INTEGER"/>
59+
</resultMap>
60+
61+
<!--用于动态生成sql所需的配置-->
62+
<sql id="config">
63+
<!--动态sql使用resultMapId对应的配置,来生成sql-->
64+
<bind name="resultMapId" value="'TestResultMap'"/>
65+
<bind name="tableName" value="'s_test'"/>
66+
</sql>
67+
<insert id="insert" parameterType="org.hsweb.web.bean.common.InsertParam">
68+
<include refid="config"/>
69+
<include refid="BasicMapper.buildInsertSql"/>
70+
</insert>
71+
72+
<delete id="delete" parameterType="org.hsweb.web.bean.common.DeleteParam">
73+
<include refid="config"/>
74+
<include refid="BasicMapper.buildDeleteSql"/>
75+
</delete>
76+
77+
<update id="update" parameterType="org.hsweb.web.bean.common.UpdateParam">
78+
<include refid="config"/>
79+
<include refid="BasicMapper.buildUpdateSql"/>
80+
</update>
81+
82+
<select id="selectByPk" parameterType="string" resultMap="TestResultMap">
83+
select * from s_test where u_id=#{id}
84+
</select>
85+
86+
<select id="select" parameterType="org.hsweb.web.bean.common.QueryParam" resultMap="TestResultMap">
87+
<include refid="config"/>
88+
<include refid="BasicMapper.buildSelectSql"/>
89+
</select>
90+
91+
<select id="total" parameterType="org.hsweb.web.bean.common.QueryParam" resultType="int">
92+
<include refid="config"/>
93+
<include refid="BasicMapper.buildTotalSql"/>
94+
</select>
95+
</mapper>
96+
```
97+
98+
## 4. service 接口
99+
100+
定义service接口 ``org.hsweb.demo.service.test.MyTestService``
101+
102+
(增删改查 GenericService)
103+
```java
104+
public interface MyTestService extends GenericService<MyTest, String> {
105+
}
106+
```
107+
108+
## 5. service 实现
109+
110+
定义service实现类 ``org.hsweb.demo.service.test.impl.SimpleMyTestService``
111+
112+
继承 AbstractServiceImpl
113+
```java
114+
@Service("testService")
115+
public class SimpleMyTestService extends AbstractServiceImpl<MyTest, String> implements MyTestService {
116+
@Autowired
117+
private MyTestMapper myTestMapper;
118+
119+
//AbstractServiceImpl 使用GenericMapper的实现类进行CRUD操作
120+
@Override
121+
protected MyTestMapper getMapper() {
122+
return myTestMapper;
123+
}
124+
}
125+
```
126+
127+
## 6. controller
128+
129+
定义Controller ``org.hsweb.demo.controller.test.MyTestController``
130+
131+
```java
132+
@RestController
133+
@RequestMapping("/myTest")
134+
@Authorize(module = "myTest") //权限验证
135+
@AccessLogger("测试模块") //访问日志描述
136+
public class MyTestController extends GenericController<MyTest, String> {
137+
138+
@Autowired
139+
MyTestService myTestService;
140+
141+
@Override
142+
protected MyTestService getService() {
143+
return myTestService;
144+
}
145+
}
146+
```
147+
148+
## 7. 添加权限
149+
150+
1、启动并登录系统,进入系统管理-权限管理模块加入对应的权限,重新登录即可使用了。
151+
2、或者参照初始化表的方式,以脚本的方式进行初始化,如:
152+
153+
```groovy
154+
def module= [u_id: 'myTest', name: '测试', uri: 'admin/myTest/list.html', icon: '', parent_id: '-1', remark: '', status: 1, optional: '[{"id":"M","text":"菜单可见","checked":true},{"id":"import","text":"导入excel","checked":true},{"id":"export","text":"导出excel","checked":true},{"id":"R","text":"查询","checked":true},{"id":"C","text":"新增","checked":true},{"id":"U","text":"修改","checked":true},{"id":"D","text":"删除","checked":false}]', sort_index: 1];
155+
database.getTable("s_modules").createInsert().value(module).exec();
156+
```
157+
158+
## 8. 感觉太麻烦?
159+
160+
**使用在线代码生成器,一键生成上诉全部代码!**

doc/use-crud.md

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
2+
# 1.查询:
3+
```java
4+
5+
import static MyBean.Property.*; //属性名
6+
myService.createQuery()
7+
.where(name,"admin")
8+
.or(name,"root")
9+
.list(); //list(), list(0,10), single(),total();
10+
//or
11+
myService.createQuery().fromBean(myBean)
12+
.where(name)
13+
.or(name)
14+
.list();
15+
16+
// 复杂查询条件
17+
// 等同sql where name is not null and (name like '李%' or name like '周%') and age >0
18+
// 参数全部预编译,不用担心注入
19+
myService.createQuery()
20+
.where().notNull(name)
21+
.nest().or().like$(name,"").or().like$(name,"").end()
22+
.and().gt(age,10).list();
23+
24+
//自定义sql条件
25+
myService.createQuery()
26+
.where()
27+
.and().sql("name !=''")
28+
.or().sql("age < #{age}",{age:10})// 使用预编译方式
29+
.or().sql("age = #{[0]}",Arrays.asList(20))//获取集合参数
30+
.or().sql("age > ? and (age <?)",60,100)//使用参数列表方式
31+
.list();
32+
```
33+
34+
# 2.修改,支持和query一致的条件
35+
```java
36+
import static MyBean.Property.*;
37+
myService.createUpdate()
38+
.set(status,1)
39+
.where(id,"data-id").exec();
40+
// or
41+
myService.createUpdate(myBean).fromBean().where(id).exec();
42+
```
43+
44+
# 3.删除,支持和query一致的条件
45+
```java
46+
import static MyBean.Property.*;
47+
myService.createDelete().where(id,"data-id").exec();
48+
```

0 commit comments

Comments
 (0)