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 
使⽤说明: http://mybatis.org/generator/quickstart.html
我们先通过查询maven仓库,引⼊mybatis-generator-core的jar包,最新版是1.4.0。
然后参考官⽹中给出的配置示例,创建⼀个配置⽂件,并修改成我们需要代码⽣成的地址
我们放在项⽬根⽬录下,创建mybatis/generatorConfig.xml
<!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="simple" targetRuntime="MyBatis3Simple"><!-- 生成的java文件编码格式--><property name="javaFileEncoding" value="UTF-8"/><!-- 注释生成器--><commentGenerator><property name="suppressDate" value="true"/><property name="suppressAllComments" value="true"/></commentGenerator><!--数据库连接配置--><jdbcConnection driverClass="com.mysql.cj.jdbc.Driver"connectionURL="jdbc:mysql://localhost:3306/ssm"userId="root" password="cy414ljh212,,,"/><!--⽣成entity/domain对象--><javaModelGenerator targetPackage="com.duyi.entity" targetProject="src/main/java"/><!--生成mapper配置文件的地址--><sqlMapGenerator targetPackage="mappers" targetProject="src/main/resources"/><!--生成mapper接口类的地址(dao)--><javaClientGenerator type="XMLMAPPER" targetPackage="com.duyi.dao" targetProject="src/main/java"/><!--表名--><table tableName="room"/></context></generatorConfiguration>
启动⽅式这⾥,我们选择了执⾏代码的⽅式,
参考代码地址:http://mybatis.org/generator/running/runningWithJava.html
GeneratorUtil.java
package com.duing.util;import org.mybatis.generator.api.MyBatisGenerator;import org.mybatis.generator.config.Configuration;import org.mybatis.generator.config.xml.ConfigurationParser;import org.mybatis.generator.internal.DefaultShellCallback;import java.io.File;import java.util.ArrayList;import java.util.List;public class GeneratorUtil {public static void main(String[] args) throws Exception {// 执行过程中的告警信息List<String> warnings = new ArrayList<String>();// 当生成的代码重复时 是否覆盖boolean overwrite = true;// A ssm-duing-buyTicket 根路径 这个是正确的// B ssm-duing-buyTicket/../resources// C ssm-duing-buyTicket/../java/com.duing.util// D ssm-duing-buyTicket/../webappFile configFile = new File("mybatis/generatorConfig.xml");ConfigurationParser cp = new ConfigurationParser(warnings);Configuration config = cp.parseConfiguration(configFile);DefaultShellCallback callback = new DefaultShellCallback(overwrite);MyBatisGenerator myBatisGenerator = new MyBatisGenerator(config, callback, warnings);myBatisGenerator.generate(null);for(String warning:warnings){System.out.println(warning);}}}
在执⾏后,可以看到,在entity,dao和mappers⽂件夹中,都⽣成了对应的类或配置⽂件 
打开其中的Mapper可以看到,⽣成的增删改查⽅法如下:
