美文网首页javaalready
[java]59、java项目开发

[java]59、java项目开发

作者: 史记_d5da | 来源:发表于2022-09-30 10:13 被阅读0次

1、项目中的对象

在项目开发中定义的对象POBODTOVOPOJOQuery

1.1、PO(Persistent Object):持久化对象

属性跟数据库表的字段对应,一个PO对象对应数据库表的一条记录

1.2、BO(Business Object):业务对象

一类业务就会对应一个BO,除了get\set方法以外,它会有很多业务操作,比如对自身数据进行计算的方法

  • 比如:PO1是教育经历,PO2是工作经历,PO3是项目经验。BO是简历,包含PO1~PO3
  • 比如:PO1是交易记录,PO2是登记记录,PO3是商品浏览记录,PO4是购物车记录,PO5是搜索记录。BO是个人行为,包含PO1~PO5
1.3、DTO(Data Transfer Object):数据传输对象

很多时候并不需要PO的所有属性(数据库表的所有字段)传输给客户端
所以可以根据客户的业务需要对POBO的属性进行删减或增加,重新组装成DTO对象

1.4、VO(View Object):视图对象

传输给客户端的数据展示对象,通常对应一个页面
在有些时候,业务字段的值和最终展示的值是不一样的,比如:在DTO中,sex的值是01
页面AVO中,sex的值是男生、女生
页面BVO中,sex的值是帅哥、美女

1.5、POJO(Plain Ordinary Java Object):简单的Java对象

POBODTOVO的统称

1.6、Query:数据查询对象
对象

2、Layui

Layui是一款前端UI框架,可以帮助开发者快速搭建后台管理系统的前端页面

2.1、Layui的使用

下载解压文件放到项目中

layui

3、MyBatis Generator

MyBatis GeneratorMyBatis官方提供的代码生成器
可以根据数据库信息,逆向生成Model类、Mapper类、Mapper配置文件。大大节省开发者的编码时间,提高开发效率

3.1、MyBatis Generator的配置文件

mybatis-generator的作用:
能够生成PO类,能生成mapper映射文件(其中包括基本的增删改查功能)、能生成mapper接口。
1、添加maven的plugin依赖

<build>
    <plugins>
        <plugin>
            <groupId>org.mybatis.generator</groupId>
            <artifactId>mybatis-generator-maven-plugin</artifactId>
            <version>1.3.2</version>
            <configuration>
                <configurationFile>src/main/test/resources/generatorConfig.xml</configurationFile>
                <overwrite>true</overwrite>
                <verbose>true</verbose>
            </configuration>
            <dependencies>
                <dependency>
                    <groupId>mysql</groupId>
                    <artifactId>mysql-connector-java</artifactId>
                    <version>5.1.49</version>
                </dependency>
            </dependencies>
        </plugin>
    </plugins>
</build>

2、配置generatorConfig.xml文件
可以到官网拷贝头信息

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE generatorConfiguration
        PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
        "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
    <context id="default" targetRuntime="MyBatis3Simple">
        <commentGenerator>
            <!--            去掉所有注释-->
            <property name="suppressAllComments" value="true"/>
        </commentGenerator>
        <!--        数据库连接-->
        <jdbcConnection driverClass="com.mysql.jdbc.Driver"
                        connectionURL="jdbc:mysql://localhost:3306/jiakao?serverTimezone=GMT%2B8"
                        userId="root" password="shijikl126"/>
        <!--        XML的位置-->
        <javaModelGenerator targetPackage="com.mj.jk.pojo.po"
                            targetProject="src/test/java" />
        <!--        XML的位置-->
        <sqlMapGenerator targetPackage="com.mj.jk.mapper"
                         targetProject="src/test/resources" />
        <!--        Mapper的位置-->
        <javaClientGenerator type="XMLMAPPER"
                             targetPackage="com.mj.jk.mapper"
                             targetProject="src/test/java"/>
        <!--        %代表所有表-->
        <table tableName="%" />
    </context>
</generatorConfiguration>

3、双击启动


mybatis-generator

4、Freemarker

跟此前学过的JSPThymeleaf一样,Freemarker也是一款优秀的模板引擎。
可以生成任意格式的文本文件(HTMLXMLJava等),与web环境无关,不依赖web容器
JSPThymeleaf不同
JSP:只能用在web环境中,依赖于web容器
Thymeleaf:虽然不依赖web容器,但它只能生成XML规范的文本文件(比如HTMLXML

4.1、Freemaker的使用

1、在maven中添加依赖

<dependencies>
    <dependency>
        <groupId>org.freemarker</groupId>
        <artifactId>freemarker</artifactId>
        <version>2.3.30</version>
    </dependency>
</dependencies>

2、创建模板文件mapper.ftl

package com.sj.jk.mapper;
import com.sj.jk.pojo.po.${type};
import org.apache.ibatis.annotations.Select;
import java.util.List;
public interface ${type}Mappper extends BaseMapper<${type}>{
}

3、生成模板文件的java代码

public class Main {
    public static void main(String[] args) throws  Exception {
        Configuration configuration = new Configuration(Configuration.VERSION_2_3_30);
        // 设置编码
        configuration.setDefaultEncoding("UTF-8");
        // 模板文件的存放目录
        configuration.setDirectoryForTemplateLoading(new File("/Users/shiji/development/templates/"));
        // 获取模板文件
        Template tpl = configuration.getTemplate("mapper.ftl");
        // 数据
        Map<String, Object> data = new HashMap<>();
        data.put("type", "DictType");
        try( FileWriter out = new FileWriter(new File("/Users/shiji/development/templates/DictType.java"))) {
            tpl.process(data, out);
        }
    }
}
4.2、注释

<#-- -->这种注释不会渲染到HTML中

4.3、在SpringBoot中的使用
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>

Thymeleaf资源文件一样的地方
静态资源:放在classpath:/static/目录下
模板文件:放在classpath:/templates/目录下
freemarker的模板文件扩展名要用.ftlh,而不是.ftl
默认在视图解析器前增加:classpath:/templates/,后缀:.ftlh
获取context path,赋值给变量ctx(和jsp相似)
<#assign ctx="${springMacroRequestContext.getContextPath()}">

5、MyBatis-Plus

MyBatis-Plus(简称MP)是MyBatis增强工具
MyBatis的基础上只做增强不做改变,为简化开发,提高效率

5.1、MyBatis-Plus的简单使用

1、maven中添加依赖
mybatis-plus默认依赖mybatis

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.4.1</version>
</dependency>

2、mapper接口继承BaseMapper
BaseMapper实现了数据库的基本操作

@Mapper
public interface DictTypeMappper extends BaseMapper<DictType> {
}

3、service继承IService

public interface DictTypeService extends IService<DictType> {
}

4、impl中实现继承ServiceImpl

@Service
@Transactional
public class DictTypeServiceImpl extends ServiceImpl<DictTypeMappper, DictType> implements DictTypeService {
    @Autowired
    private DictTypeMappper mappper;
    @Override
    public List<DictType> list(DictTypeQuery query) {
        LambdaQueryWrapper<DictType> wrapper = new LambdaQueryWrapper<>();
        String keyword = query.getKeyword();
        wrapper.like(DictType::getName, keyword).or()
                .like(DictType::getValue, keyword).or()
                .like(DictType::getIntro, keyword);
        wrapper.orderByDesc(DictType::getId);

        Page<DictType> page = new Page<>(query.getPage(), query.getSize());
        return mappper.selectPage(page, wrapper).getRecords();
    }
}

相关文章

  • [java]59、java项目开发

    1、项目中的对象 在项目开发中定义的对象PO、BO、DTO、VO、POJO、Query 1.1、PO(Persis...

  • Servlet 学习

    Java web项目结构目录 前言 Java web 是指用Java开发的web项目。Java web开发至今已有...

  • JAVA入门知识整理

    一、java入门主要内容 1.java的体系 JAVA SE:核心基础 JAVA EE:大型项目的开发 JAVA ...

  • 精选国内优秀的 CMS 建站系统

    1. 项目名称:Java快速开发平台 MCMS 项目简介:完整开源,Java快速开发平台。基于Spring、Sp...

  • 2018-11-25

    JAVA 开发环境与配置培训课作业 前置作业 使用 Java代码模板WIKI 中的命令生成项目Java 标准项目....

  • [Java Tutorials] 01 | Getting St

    Java 环境与工具 JDK 与 JRE 的安装说明 仅运行Java项目,只下载安装JRE即可。开发Java项目,...

  • Spring Boot从入门到精通-项目搭建

    Spring Boot极大的简化了java项目的开发,在之前如果想要开发一个java项目,需要安装tomcat或者...

  • Spring Boot从入门到精通

    Spring Boot极大的简化了java项目的开发,在之前如果想要开发一个java项目,需要安装tomcat或者...

  • 在CentOS上安装Java环境

    在CentOS上安装Java环境:[1]使用yum安装java 现阶段做企业级项目开发一般都采用Java语言。开发...

  • java速成路线

    什么是java,为什么要使用java 环境搭建 开发工具选择 Core-java 高级进阶 项目实战

网友评论

    本文标题:[java]59、java项目开发

    本文链接:https://www.haomeiwen.com/subject/cwhuortx.html