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/../webapp
File 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可以看到,⽣成的增删改查⽅法如下: