最近一月工作室开发流程总结

一、数据库创建:
1.设计好每一张实体表,关联表,确定字段是否非空,是否需要建立唯一索引
2.lastModifiedTime字段设置注意:需要设置为 自动更新为当前时间
ALTER TABLE `t_training_course`
MODIFY COLUMN `last_modified_time` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间'

二、实体创建(Class): 
1.一个表(包括关联表)对应一个实体,其目的是方便对数据库进行增删改查;
  (1)类中变量定义时 类型必须是类;service用简单类型;容器中一般用类类型List<Integer>防止其不能接收null对象;
  (2)类注解:@Entity @Table(name = "数据库表名");
  (3)变量注解:@Id 变量名称需要与数据库中名称对应 @Column(name = "last_modified_time");
  (4)对象序列化问题:private static final long serialVersionUID = -6411614473004852343L;(序列号自动生成);
  (5)Alt+Insert  添加get set方法;
 
三、DTO创建( Class): 
1.Dto用于方便界面显示几张表(关联表中关联的表)中的数据时直接将数据从数据库中联表查询出来存到Dto类型的容器中即可
  (1)此类不需要类注解;
  (2)变量类型为类类型;
  (3)Id变量:不需要注解,最好定义一个其他的名称(如sId)查询出关联表的Id与其对应;如果不取别名sId可能会出现查询出的Dto的Id 值为空的情况; 
  (4)其余变量注解:与类实体相同, @Column(name = "对应数据库中的对应字段");

四、Mapper.java 创建(interface):
1.主要是定义一些与mapper.xml对应的查询方法,抛出异常Exception

五、Mapper.xml 创建:
1.文件头部分定义内容(编码+mybatis的引用吧); 
<?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"> 
2.在其中添加SQL语句 
<mapper namespace= "com.quality.mapper.PrinterMapper"> ----此处对应相关的Mapper文件位置 
sql查询语句········· 
</mapper>

六、SQL语句使用:
注意(1) 只有有对应实体类才能resultMap="pw.Printer" (2) 否则resultType="int" (3) 删除更新没有返回值
1.根据传入的关键字排序(排序时接受变量时:#{} `${}`使用区别(程序中使用前者排序不生效)):
<select id="listByPage" resultMap="pw.Printer">
        SELECT * FROM `t_quality_printer`
        ORDER BY `${orderName}`
        <if test="type==0">
            DESC
        </if>
        limit #{offset}, #{size}
</select>

2.子表查询: 根据关联中的字段值查询出 一个id值 再根据其id值查询出另外一个表中的数据
<select id="queryPrinterByPartyId" resultMap="pw.Printer">
        SELECT printer.* FROM t_quality_printer printer, t_quality_printer_group g
        WHERE printer.id = g.`printer_id` AND g.`party_id` = #{partyId}
</select>

3.删除:根据ID删除一个表中的数据以及其关联表中与其相关的数据
<delete id="delUserAndPrinterByPrinterId">
        DELETE t_quality_printer,t_quality_printer_group
        FROM t_quality_printer
        LEFT JOIN t_quality_printer_group ON t_quality_printer.id = t_quality_printer_group.printer_id
        WHERE t_quality_printer.id = #{id}
</delete>

4.更新数据库表信息
<update id="updatePrinter">
        UPDATE `t_quality_printer` SET
        `code` = #{code},
        `ip` = #{ip},
        `desc` = #{desc}
        WHERE `id` = #{id}
</update>

5.根据条件查询数据量
<select id="countIpIsExist" resultType="int">
        SELECT COUNT(1) FROM t_quality_printer
        WHERE `ip` = #{ips}
</select>

6.联表查询
<select id="listPartyByPrinterId" resultType="PrinterGroupDTO">
        SELECT t_quality_printer_group.id AS sid,

        t_quality_printer_group.printer_id AS printerId,
        t_quality_printer_group.party_id AS partyId,
        t_party_group.party_name AS partyName,
        t_party_group.english_name AS englishName,
        t_party_group.`desc` AS descOfParty

        FROM t_quality_printer_group
        LEFT JOIN t_party_group ON t_quality_printer_group.party_id = t_party_group.party_id
        WHERE t_quality_printer_group.printer_id = #{printerId}
</select>

七、Service实现
1、service接口定义( interface):定义一些逻辑接口    throws SSexception(工作室定义)
2、service接口实现( class):
(1)在类之前需要  @Service(" printerService")----首字母小写(即使类名大写);
(2)选中类名Alt+Enter,选择“Implement merhods”即可添加所有的方法实现体;
(3)使用Mapper或者其他Service时需要注入:
        不注入则会导致使用的对象找不到(出现空指针问题,遇到过问题:没有@Qualifier("commonDao")出现空指针错误));
@Autowired
@Qualifier("commonDao")
 private CommonDao commonDao; 

@Autowired
private PrinterMapper printerMapper;

@Autowired
PrinterGroupService printerGroupService;
(4)对接收的参数进行判断处理(封装工具类):Assert
(5)异常代码规范问题:不要把语句都放在Try语句中(  Controller中不需要抛异常):
         a.能预料其会出现异常的代码需要做处理(如:没有目录创建目录);
         b.能抛出具体的异常的代码放在try代码外,用throw跑出异常;
         c.普通的定义变量等放在try外面;
         d.被调用方法已经有trycatch保护,且异常等级比调用者更低(更具体)或者同等级,则该被调用方法不应该放在try里面;

八、Controller与套界面
(1)类注解与权限、请求地址等
         @Module(ModuleEnums.Party)---------------权限   ModuleEnums为权限配置(抑或是URL的枚举??)
         @RequiresPermissions("Party:Printer")--------权限
         @Controller-----------controller必须注解
         @RequestMapping("admin/party/printer")--------请求地址
(2)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值