1.数据库设计
    schedule(排片表)

    字段名 含义 类型
    id 主键(自增) bigint
    schedule_id 场次唯一id varchar
    schedule_time 放映时间 datetime
    lan_type 语言版本 varchar
    price 票价 decimal(double)
    room_id 放映厅唯一id varchar
    room_name 放映厅名字 varchar
    film_id 电影唯一id varchar
    实现买票功能后才能体现 售卖情况 暂时不写

    room(放映厅表)

    字段名 含义 类型
    id 主键(自增) bigint
    room_id 放映厅唯一id varchar
    room_name 放映厅名字 varchar
    situation 座位分布 varchar

    先通过电影详情页展示出排片信息,点击选座后,加载放映厅的座位分布及售卖情况;可选座位在被选择后,能够显示出座位的名字以及订单价格。
    设计好数据库后,我们发现每次都是重复的去创建实体类、DAO类,以及dao对应的mapper配置文件,
    既然是重复工作,能不能通过自动化的方式去生成呢?这里我们介绍⼀个mybatis推出的工具, mybatis-generator。
    2、mybatis-generator
    image.png
    使⽤说明: http://mybatis.org/generator/quickstart.html
    我们先通过查询maven仓库,引⼊mybatis-generator-core的jar包,最新版是1.4.0。
    然后参考官⽹中给出的配置示例,创建⼀个配置⽂件,并修改成我们需要代码⽣成的地址
    我们放在项⽬根⽬录下,创建mybatis/generatorConfig.xml

    1. <!DOCTYPE generatorConfiguration PUBLIC
    2. "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
    3. "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
    4. <generatorConfiguration>
    5. <context id="simple" targetRuntime="MyBatis3Simple">
    6. <!-- 生成的java文件编码格式-->
    7. <property name="javaFileEncoding" value="UTF-8"/>
    8. <!-- 注释生成器-->
    9. <commentGenerator>
    10. <property name="suppressDate" value="true"/>
    11. <property name="suppressAllComments" value="true"/>
    12. </commentGenerator>
    13. <!--数据库连接配置-->
    14. <jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"
    15. connectionURL="jdbc:mysql://localhost:3306/ssm"
    16. userId="root" password="cy414ljh212,,,"/>
    17. <!--⽣成entity/domain对象-->
    18. <javaModelGenerator targetPackage="com.duyi.entity" targetProject="src/main/java"/>
    19. <!--生成mapper配置文件的地址-->
    20. <sqlMapGenerator targetPackage="mappers" targetProject="src/main/resources"/>
    21. <!--生成mapper接口类的地址(dao)-->
    22. <javaClientGenerator type="XMLMAPPER" targetPackage="com.duyi.dao" targetProject="src/main/java"/>
    23. <!--表名-->
    24. <table tableName="room"/>
    25. </context>
    26. </generatorConfiguration>

    启动⽅式这⾥,我们选择了执⾏代码的⽅式,
    参考代码地址:http://mybatis.org/generator/running/runningWithJava.html
    GeneratorUtil.java

    1. package com.duing.util;
    2. import org.mybatis.generator.api.MyBatisGenerator;
    3. import org.mybatis.generator.config.Configuration;
    4. import org.mybatis.generator.config.xml.ConfigurationParser;
    5. import org.mybatis.generator.internal.DefaultShellCallback;
    6. import java.io.File;
    7. import java.util.ArrayList;
    8. import java.util.List;
    9. public class GeneratorUtil {
    10. public static void main(String[] args) throws Exception {
    11. // 执行过程中的告警信息
    12. List<String> warnings = new ArrayList<String>();
    13. // 当生成的代码重复时 是否覆盖
    14. boolean overwrite = true;
    15. // A ssm-duing-buyTicket 根路径 这个是正确的
    16. // B ssm-duing-buyTicket/../resources
    17. // C ssm-duing-buyTicket/../java/com.duing.util
    18. // D ssm-duing-buyTicket/../webapp
    19. File configFile = new File("mybatis/generatorConfig.xml");
    20. ConfigurationParser cp = new ConfigurationParser(warnings);
    21. Configuration config = cp.parseConfiguration(configFile);
    22. DefaultShellCallback callback = new DefaultShellCallback(overwrite);
    23. MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);
    24. myBatisGenerator.generate(null);
    25. for(String warning:warnings){
    26. System.out.println(warning);
    27. }
    28. }
    29. }

    在执⾏后,可以看到,在entity,dao和mappers⽂件夹中,都⽣成了对应的类或配置⽂件
    image.png
    打开其中的Mapper可以看到,⽣成的增删改查⽅法如下:
    image.png