Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
jinli gu
Litemall
Commits
fca65981
Commit
fca65981
authored
Apr 11, 2018
by
Junling Bu
Browse files
update[doc]
parent
b72e5919
Changes
2
Hide whitespace changes
Inline
Side-by-side
doc/2.md
View file @
fca65981
...
...
@@ -227,15 +227,62 @@ litemall.sql数据库基于nideshop中的[nideshop.sql](https://github.com/tumob
### 2.2.1 自动化代码
通过mybatis generator插件可以自动生成三种代码:
*
src文件夹
`domain`
Java代码
*
src文件夹
`dao`
Java代码
*
resources文件夹
`dao`
Mapper代码
这里的代码封装了对数据库的操作,因此用户不需要直接操作sql代码,而是直接操作Java代码即可完成对数据库的访问处理。
当然,为了达到数据库访问效率,用户也可以自定义mapper文件和对应的Java代码,但是至少目前这里不采用。例如,当需要访问两个表的数据时,这里是在业务层通过Java代码遍历的形式来访问两个表。

如上图所示,双击
`mybatis-generator:generate`
,则mybatis generator插件会:
1.
读取
`mybatis-generator`
文件夹下的
`generatorConfig.xml`
文件
2.
根据
`jdbcConnection`
访问数据库
3.
根据
`table`
, 自动生成三种代码:
*
src文件夹
`org.linlinjava.litemall.db.domain`
包内的Java代码
*
src文件夹
`org.linlinjava.litemall.db.domain`
包内的Java代码
*
resources文件夹
`org.linlinjava.litemall.db.domain.dao`
内的XML文件
以上三种代码即可封装对数据库的操作,用户无需直接操作sql代码,
而是直接操作Java代码来完成对数据库的访问处理。
关于如何基于mybatis的Example代码来访问数据库,请查阅相关资料,
或者参考本模块
`org.linlinjava.litemall.db.dservice`
包内的Java代码。
当然,为了达到数据库访问效率,用户也可以手动自定义mapper文件和对应的Java代码,但目前这里不采用或者不建议采用。
例如,当需要访问两个表的数据时,这里是在业务层通过Java代码遍历的形式来访问两个表。
这里,以
`litemall_brand`
表举例说明:
1.
mybatis generator插件会根据数据库
`table`
标签
```
<generatorConfiguration>
<table tableName="litemall_brand">
<generatedKey column="id" sqlStatement="MySql" identity="true" />
<columnOverride javaType="java.time.LocalDateTime" column="add_time"/>
</table>
</generatorConfiguration>
```
2.
自动生产src文件夹下domain包内的LitemallBrand.java类、LitemallBrandExample.java类、
dao包内的LitemallBrandMapper.java接口和resources文件夹下dao包内的LitemallBrandMapper.xml文件。
3.
手动在service包内创建LitemallBrandService.java来对外提供具体的服务。
例如,为了得到Brand列表,那么创建list方法,基于前面创建的三个Java来来实现。
```
java
@Service
public
class
LitemallBrandService
{
@Resource
private
LitemallBrandMapper
brandMapper
;
public
List
<
LitemallBrand
>
query
(
int
offset
,
int
limit
)
{
LitemallBrandExample
example
=
new
LitemallBrandExample
();
example
.
or
().
andDeletedEqualTo
(
false
);
PageHelper
.
startPage
(
offset
,
limit
);
return
brandMapper
.
selectByExample
(
example
);
}
}
```
如果基于一个新表创建新访问组件,请阅读下面章节2.2.6
### 2.2.2 业务代码
...
...
@@ -249,6 +296,87 @@ litemall.sql数据库基于nideshop中的[nideshop.sql](https://github.com/tumob
采用Java注解的方式来完成一些特定的配置操作。
### 2.2.6 新服务组件
本节介绍如果基于一个表创建新的服务组件。
1.
在数据库里面创建一个表,例如
`litemall_demo`
:
```sql
CREATE TABLE `litemall`.`litemall_demo` (
`id` INT NOT NULL AUTO_INCREMENT,
`name` VARCHAR(45) NULL,
`address` VARCHAR(45) NULL,
PRIMARY KEY (`id`));
INSERT INTO `litemall`.`litemall_demo` (`id`, `name`, `address`)
VALUES ('1', 'hello', 'world');
```
2.
在generatorConfig.xml中增加一个新的table标签
```
<generatorConfiguration>
<table tableName="litemall_demo">
<generatedKey column="id" sqlStatement="MySql" identity="true" />
</table>
</generatorConfiguration>
```
3.
双击mybatis generator插件,检查LitemallDemo.java类、LitemallDemoExample.java类、
LitemallDemoMapper.java接口和LitemallDemoMapper.xml是否生产。
4.
在service里面新建LitemallDemoService.java类,
```
java
@Service
public
class
LitemallDemoService
{
@Resource
private
LitemallDemoMapper
demoMapper
;
public
List
<
LitemallDemo
>
list
()
{
LitemallDemoExample
example
=
new
LitemallDemoExample
();
return
demoMapper
.
selectByExample
(
example
);
}
}
```
5.
可以在
`src/test/java/org.linlinjava.litemall.db`
包里面创建LitemallDemoTest.java类,
使用Junit进行测试。
```java
@WebAppConfiguration
@RunWith(SpringJUnit4ClassRunner.class)
@SpringBootTest
public class LitemallDemoTest {
@Autowired
private LitemallDemoService demoService;
@Test
public void test() {
List<LitemallDemo> litemallDemoList = demoService.list();
Assert.assertTrue(litemallDemoList.size() != 0);
}
}
```
6.
同样地,可以在Controller中使用LitemallDemoService来对外提供服务。
```
java
@RestController
@RequestMapping
(
"/demo"
)
public
class
DemoController
{
@Autowired
private
LitemallDemoService
demoService
;
@RequestMapping
(
"/list"
)
public
Object
list
(){
List
<
LitemallDemo
>
demoList
=
demoService
.
list
();
return
demoList
;
}
}
```
## 2.3 litemall-os-api
对象存储服务目前的目标是支持图片的上传下载。
...
...
doc/pic2/2-3.png
0 → 100644
View file @
fca65981
206 KB
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment