mongodb入门:
一. 项目数据库:
cms项目使用了mongodb作为数据库,这里主要演示实现springboot整合spring mongodb完成基本的数据库增删改查操作,当然也可以使用mysql做为cms项目数据库,就不多做累赘.
关于spring data mongodb
类似于 Spring Data JPA,里面整合了mongodb常用操作方法,新建的dao接口只需要继承MongoRepository类并指定实体类和id类型就可以.
二. 实现目标
三. 具体步骤
1.在mongodb数据库创建一个sc_cms库,导入数据到mogodb数据库
我把数据文件上传到项目中了,小伙伴们可以通过git下载
成功后数据库目录如下
2.打开model工程,新建如下数据库实体类
每个实体类上要添加注解实现与数据库映射
@Document(collection = "数据库表名")
例如cmsPage
@Data
@ToString
@Document(collection = "cms_page")
public class CmsPage {
/**
* 页面名称、别名、访问地址、类型(静态/动态)、页面模版、状态
*/
//站点ID
private String siteId;
//页面ID
@Id
private String pageId;
//页面名称
private String pageName;
//别名
private String pageAliase;
//访问地址
private String pageWebPath;
//参数
private String pageParameter;
//物理路径
private String pagePhysicalPath;
//类型(静态/动态)
private String pageType;
//页面模版
private String pageTemplate;
//页面静态化内容
private String pageHtml;
//状态
private String pageStatus;
//创建时间
private Date pageCreateTime;
//模版id
private String templateId;
//参数列表
private List pageParams;
//模版文件Id
// private String templateFileId;
//静态文件Id
private String htmlFileId;
//数据Url
private String dataUrl;
}
3.打开cms项目,后面几个步骤都是在cms创建
cms目录结构如下:
1)pom导入坐标
org.springframework.boot
spring-boot-starter-data-mongodb
2)application.yml配置mongodb连接
server:
port: 31001
spring:
application:
name: sc-multipl-manage-cms
data:
mongodb:
uri: mongodb://localhost:27017
database: sc_cms
注:这里url使用的是本地连接,如果是远程连接或需要账密连接,url需要添加账号和密码信息,如下
mongodb://root:123@localhost:27017
3)在dao层新建Repository类,MongoDBRespository提供了现成数据库方法,继承后可以直接调用,例如
public interface CmsPageRepository extends MongoRepository{
}
4)新建service和实现类,这里调用了Repository类原生方法查询
@Service
public class CmsPageServiceImpl implements CmsPageService {
@Autowired
CmsPageRepository cmsPageRepository;
@Override
public SCResponsResult findAll() {
Pageable pageable = PageRequest.of(0,10);
//调用Repository方法获得Page返回结果
Page pageList = cmsPageRepository.findAll(pageable);
ListResult listResult = new ListResult();
//数据总记录数
listResult.setTotal(pageList.getTotalElements());
//数据列表
listResult.setList(pageList.getContent());
SCResponsResult result = new SCResponsResult(ResultCodeEnum.SUCCESS,listResult);
return result;
}
}
5)在controller编写测试方法
//测试地址 http://localhost:31001/testMogoDB
@RequestMapping("testMogoDB")
public Object testMongoDB(){
return cmsPageService.findAll();
}
6)最后,作为分布式项目,记得要在application启动类添加扫描范围将其它项目的文件也扫描进来
@SpringBootApplication
@EntityScan("com.chen.domain") //扫描实体类
@ComponentScan(basePackages = {"com.chen.api"}) //扫描接口
@ComponentScan(basePackages = {"com.chen.manage_cms"}) //扫描本项目下的所有类
public class ManageCmsApplication {
public static void main(String[] args) {
SpringApplication.run(ManageCmsApplication.class,args);
}
}
在application.java启动类启动项目,访问:
http://localhost:31001/testMogoDB 测试是否成功