EasyCode — это плагин для генерации кода, разработанный на основе IntelliJ IDEA и поддерживающий настройку любого шаблона (Java, html, js, xml). Пока код, связанный с базой данных, можно генерировать с помощью пользовательских шаблонов. Поддерживает настройку связи между типом базы данных и типом Java. Поддерживает генерацию кода для нескольких таблиц одновременно. Каждая таблица содержит независимую информацию о конфигурации. Полностью настраиваемый, правила устанавливаются вами.
Нажмите Далее
file->settings->plugins Поиск Легко Code
После поиска нажмите Установить Я установил это здесь После завершения установки вам будет предложено перезапустить IDEA. Как определить, прошла ли установка успешно file->settings->Other settings Посмотрите, есть ли Easy Закодируйте эту опцию
file->settings->Other settings->Template Setting
НажмитеIDEAправая сторонаDatbase->Нажмитевышеизплюсик->выбиратьData Source.->Mysql
Примечание. Метод подключения должен быть методом подключения mysql8, в противном случае соединение может завершиться неудачно.
jdbc:mysql://localhost:3306/table?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC&useSSL=false
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
</dependencies>
Нужно использовать лаунчер mybatis, поэтому тоже цитирую вместе.
Щелкните правой кнопкой мыши по имени таблицы->Easy Code->Generate Code
Модуль: текущий модуль проекта пакет: место, где сгенерированный код хранит пакет. Шаблон: сгенерированный шаблон
pojo*(сущность): Код Brand.java:
package com.dj.entity;
import java.io.Serializable;
/**
* (Бренд)Класс сущности
*
* @author joker_dj
* @since 2020-03-24 11:18:22
*/
public class Brand implements Serializable {
private static final long serialVersionUID = 689051521458334271L;
/**
* ID
*/
private Integer bid;
/**
* торговая марка
*/
private String bname;
/**
* дата
*/
private String ctime;
public Integer getBid() {
return bid;
}
public void setBid(Integer bid) {
this.bid = bid;
}
public String getBname() {
return bname;
}
public void setBname(String bname) {
this.bname = bname;
}
public String getCtime() {
return ctime;
}
public void setCtime(String ctime) {
this.ctime = ctime;
}
@Override
public String toString() {
return "Brand{" +
"bid=" + bid +
"bname=" + bname +
"ctime=" + ctime +
'}';
}
}
интерфейс службы: Код BrandService.java выглядит следующим образом:
package com.dj.service;
import com.dj.entity.Brand;
import java.util.List;
/**
* @InterfaceName BrandService
* @Description (Бренд)Интерфейс обслуживания столов
* @author joker_dj
* @date 2020-03-24 11:18:22
* @Version 1.0
**/
public interface BrandService {
/**
* @Description Добавить бренд
* @author joker_dj
* @date 2020-03-24 11:18:22
* @param brand Пример объекта
* @return Это успешно?
*/
boolean insert(Brand brand);
/**
* @Description Удалить бренд
* @author joker_dj
* @date 2020-03-24 11:18:22
* @param bid первичный ключ
* @return Это успешно?
*/
boolean deleteById(Integer bid);
/**
* @Description Запрос данных об одном элементе
* @author joker_dj
* @date 2020-03-24 11:18:22
* @param bid первичный ключ
* @return Пример объекта
*/
Brand queryById(Integer bid);
/**
* @Description Искать все данные
* @author joker_dj
* @date 2020-03-24 11:18:22
* Пагинация реализована с помощью плагина MyBatis.
* @return список объектов
*/
List<Brand> queryAll();
/**
* @Description Сущность как данные запроса фильтра
* @author joker_dj
* @date 2020-03-24 11:18:22
* @param brand Пример объекта
* @return список объектов
*/
List<Brand> queryAll(Brand brand);
/**
* @Description Чтобы изменить данные, измените любой атрибут, который не является пустым.
* @author joker_dj
* @date 2020-03-24 11:18:22
* @param brand Пример объекта
* @return Это успешно?
*/
boolean update(Brand brand);
}
Класс реализации serviceImpl: код BrandServiceImpl.java выглядит следующим образом:
package com.dj.service.impl;
import com.dj.entity.Brand;
import com.dj.dao.BrandDao;
import com.dj.service.BrandService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
* @ClassName BrandServiceImpl
* @Description (Бренд)Класс реализации сервиса таблиц
* @author joker_dj
* @date 2020-03-24 11:18:22
* @Version 1.0
**/
@Service("brandService")
public class BrandServiceImpl implements BrandService {
@Autowired
protected BrandDao brandDao;
/**
* @Description Добавить бренд
* @author joker_dj
* @date 2020-03-24 11:18:22
* @param brand Пример объекта
* @return Это успешно?
*/
@Override
public boolean insert(Brand brand) {
if(brandDao.insert(brand) == 1){
return true;
}
return false;
}
/**
* @Description Удалить бренд
* @author joker_dj
* @date 2020-03-24 11:18:22
* @param bid первичный ключ
* @return Это успешно?
*/
@Override
public boolean deleteById(Integer bid) {
if(brandDao.deleteById(bid) == 1){
return true;
}
return false;
}
/**
* @Description Запрос данных об одном элементе
* @author joker_dj
* @date 2020-03-24 11:18:22
* @param bid первичный ключ
* @return Пример объекта
*/
@Override
public Brand queryById(Integer bid) {
return brandDao.queryById(bid);
}
/**
* @Description Искать все данные
* @author joker_dj
* @date 2020-03-24 11:18:22
* Пагинация реализована с помощью плагина MyBatis.
* @return список объектов
*/
@Override
public List<Brand> queryAll() {
return brandDao.queryAll();
}
/**
* @Description Сущность как данные запроса фильтра
* @author joker_dj
* @date 2020-03-24 11:18:22
* @param brand Пример объекта
* @return список объектов
*/
@Override
public List<Brand> queryAll(Brand brand) {
return brandDao.queryAll(brand);
}
/**
* @Description Чтобы изменить данные, измените любой атрибут, который не является пустым.
* @author joker_dj
* @date 2020-03-24 11:18:22
* @param brand Пример объекта
* @return Это успешно?
*/
@Override
public boolean update(Brand brand) {
if(brandDao.update(brand) == 1){
return true;
}
return false;
}
}
слой dao: код BrandDao.java выглядит следующим образом
package com.dj.dao;
import com.dj.entity.Brand;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @InterfaceName BrandDao
* @Description (Бренд) Уровень доступа к библиотеке данных таблицы
* @author joker_dj
* @date 2020-03-24 11:18:22
* @Version 1.0
**/
@Mapper
public interface BrandDao {
/**
* @Description Добавить бренд
* @author joker_dj
* @date 2020-03-24 11:18:22
* @param brand Пример объекта
* @return Количество затронутых строк
*/
int insert(Brand brand);
/**
* @Description Удалить бренд
* @author joker_dj
* @date 2020-03-24 11:18:22
* @param bid первичный ключ
* @return Количество затронутых строк
*/
int deleteById(Integer bid);
/**
* @Description Запрос данных об одном элементе
* @author joker_dj
* @date 2020-03-24 11:18:22
* @param bid первичный ключ
* @return Пример объекта
*/
Brand queryById(Integer bid);
/**
* @Description Искать все данные
* @author joker_dj
* @date 2020-03-24 11:18:22
* Пагинация реализована с помощью плагина MyBatis.
* @return список объектов
*/
List<Brand> queryAll();
/**
* @Description Сущность как данные запроса фильтра
* @author joker_dj
* @date 2020-03-24 11:18:22
* @param brand Пример объекта
* @return список объектов
*/
List<Brand> queryAll(Brand brand);
/**
* @Description Изменить бренд
* @author joker_dj
* @date 2020-03-24 11:18:22
* @param в соответствии сbrandизпервичный ключ Исправлятьданные
* @return Количество затронутых строк
*/
int update(Brand brand);
}
Код Mapper.xml выглядит следующим образом:
<?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">
<mapper namespace="com.dj.dao.BrandDao">
<!--brandиз Набор результатов сопоставления-->
<resultMap type="com.dj.entity.Brand" id="BrandMap">
<result property="bid" column="bid" jdbcType="INTEGER"/>
<result property="bname" column="bname" jdbcType="VARCHAR"/>
<result property="ctime" column="ctime" jdbcType="VARCHAR"/>
</resultMap>
<!--Все поля-->
<sql id="allColumn"> bid, bname, ctime </sql>
<!--Добавить заявлениеиз Список полей-->
<sql id="insertColumn">
<if test="bname != null and bname != ''">
bname,
</if>
<if test="ctime != null and ctime != ''">
ctime,
</if>
</sql>
<!--Добавить заявлениеизсписок значений-->
<sql id="insertValue">
<if test="bname != null and bname != ''">
#{bname},
</if>
<if test="ctime != null and ctime != ''">
#{ctime},
</if>
</sql>
<!--универсальная параBrandКаждый атрибутизценитьизнепустое суждение-->
<sql id="commonsValue">
<if test="bname != null and bname != ''">
bname = #{bname},
</if>
<if test="ctime != null and ctime != ''">
ctime = #{ctime},
</if>
</sql>
<!--Новыйbrand:Какой столбец добавляется, если поле не пусто?данные,Вернуться к приращениюпервичный ключ-->
<insert id="insert" keyProperty="bid" useGeneratedKeys="true">
insert into brand
<trim prefix="(" suffix=")" suffixOverrides=",">
<include refid="insertColumn"/>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<include refid="insertValue"/>
</trim>
</insert>
<!--удалитьbrand:проходитьпервичный ключ-->
<delete id="deleteById">
delete from brand
<where>
bid = #{bid}
</where>
</delete>
<!--Запросить одинbrand-->
<select id="queryById" resultMap="BrandMap">
select
<include refid="allColumn"></include>
from brand
<where>
bid = #{bid}
</where>
</select>
<!--Искать всеbrand-->
<select id="queryAllByLimit" resultMap="BrandMap">
select
<include refid="allColumn"></include>
from brand
</select>
<!--проходить Сущность как фильтрующий запрос-->
<select id="queryAll" resultMap="BrandMap">
select
<include refid="allColumn"></include>
from brand
<trim prefix="where" prefixOverrides="and" suffixOverrides=",">
<include refid="commonsValue"></include>
</trim>
</select>
<!--проходитьпервичный ключ Исправлятьданные-->
<update id="update">
update brand
<set>
<include refid="commonsValue"></include>
</set>
<where>
bid = #{bid}
</where>
</update>
</mapper>
<!--Статический выпуск ресурсов-->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>
Полный файл pom.xml выглядит следующим образом:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.2.4.RELEASE</version>
</parent>
<groupId>com.easycode</groupId>
<artifactId>easycode</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.38</version>
</dependency>
</dependencies>
<!--Статический выпуск ресурсов-->
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>
</project>
Конфигурационный файл выглядит следующим образом:
##Настройте информацию о драйвере данных (ключ фиксированный)
spring.datasource.driverClassName = com.mysql.jdbc.Driver
spring.datasource.url = jdbc:mysql:///brand
spring.datasource.username = root
spring.datasource.password =
#номер порта tomcat
server.port=8081
##Присвойте псевдоним классу сущности mybatis typeAliasesPackage
mybatis.type-aliases-package=com.dj.entity
## mybatis : место хранения картографа
mybatis.mapper-locations:classpath*:mybatis/mapper/*.xml
controller:
package com.dj.controller;
import com.dj.entity.Brand;
import com.dj.service.BrandService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
public class webController {
@Autowired
BrandService service;
@RequestMapping("/showAll")
public List<Brand> show(){
List<Brand> brands = service.queryAll();
System.out.println(brands);
return brands;
}
}
Ввод браузера localhost: 8081/showAll
##Введение определения макроса
$!define
##Использовать определение макроса для установки обратного вызова (сохранить местоположение и суффикс файла)
#save("/entity", ".java")
##Использовать определение макроса для установки суффикса пакета
#setPackageSuffix("entity")
##Используйте глобальные переменные для реализации импорта пакетов по умолчанию
$!autoImport
import java.io.Serializable;
##Используйте определения макросов для реализации информации аннотации класса
#tableComment("Класс сущности")
public class $!{tableInfo.name} implements Serializable {
private static final long serialVersionUID = $!tool.serial();
#foreach($column in $tableInfo.fullColumn)
#if(${column.comment})/**
* ${column.comment}
*/#end
private $!{tool.getClsNameByFullName($column.type)} $!{column.name};
#end
#foreach($column in $tableInfo.fullColumn)
##Используйте определение макроса для реализации методов get и set
#getSetMethod($column)
#end
@Override
public String toString() {
return "$!{tableInfo.name}{" +
#foreach($column in $tableInfo.fullColumn)
"$!{column.name}=" + $!{column.name} +
#end
'}';
}
}
##Определим начальные переменные
#set($tableName = $tool.append($tableInfo.name, "Dao"))
##Установить обратный вызов
$!callback.setFileName($tool.append($tableName, ".java"))
$!callback.setSavePath($tool.append($tableInfo.savePath, "/dao"))
##получатьпервичный ключ
#if(!$tableInfo.pkColumn.isEmpty())
#set($pk = $tableInfo.pkColumn.get(0))
#end
#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}dao;
import $!{tableInfo.savePackageName}.entity.$!{tableInfo.name};
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @InterfaceName $!{tableName}
* @Description $!{tableInfo.comment}($!{tableInfo.name}) уровень доступа к библиотеке данных таблицы
* @author $!author
* @date $!time.currTime()
* @Version 1.0
**/
@Mapper
public interface $!{tableName} {
/**
* @Description Добавьте $!{tableInfo.name}
* @author $!author
* @date $!time.currTime()
* @param $!tool.firstLowerCase($!{tableInfo.name}) Пример объекта
* @return Количество затронутых строк
*/
int insert($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name}));
/**
* @Description Удалить $!{tableInfo.name}
* @author $!author
* @date $!time.currTime()
* @param $!pk.name первичный ключ
* @return Количество затронутых строк
*/
int deleteById($!pk.shortType $!pk.name);
/**
* @Description Запрос данных об одном элементе
* @author $!author
* @date $!time.currTime()
* @param $!pk.name первичный ключ
* @return Пример объекта
*/
$!{tableInfo.name} queryById($!pk.shortType $!pk.name);
/**
* @Description Искать все данные
* @author $!author
* @date $!time.currTime()
* Пагинация реализована с помощью плагина MyBatis.
* @return список объектов
*/
List<$!{tableInfo.name}> queryAll();
/**
* @Description Сущность как данные запроса фильтра
* @author $!author
* @date $!time.currTime()
* @param $!tool.firstLowerCase($!{tableInfo.name}) Пример объекта
* @return список объектов
*/
List<$!{tableInfo.name}> queryAll($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name}));
/**
* @Description Измените $!{tableInfo.name}
* @author $!author
* @date $!time.currTime()
* @param в соответствии с$!tool.firstLowerCase($!{tableInfo.name})изпервичный ключ Исправлятьданные
* @return Количество затронутых строк
*/
int update($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name}));
}
##Определим начальные переменные
#set($tableName = $tool.append($tableInfo.name, "Service"))
##Установить обратный вызов
$!callback.setFileName($tool.append($tableName, ".java"))
$!callback.setSavePath($tool.append($tableInfo.savePath, "/service"))
##получатьпервичный ключ
#if(!$tableInfo.pkColumn.isEmpty())
#set($pk = $tableInfo.pkColumn.get(0))
#end
#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}service;
import $!{tableInfo.savePackageName}.entity.$!{tableInfo.name};
import java.util.List;
/**
* @InterfaceName $!{tableName}
* @Description $!{tableInfo.comment}($!{tableInfo.name}) интерфейс службы таблиц
* @author $!author
* @date $!time.currTime()
* @Version 1.0
**/
public interface $!{tableName} {
/**
* @Description Добавьте $!{tableInfo.name}
* @author $!author
* @date $!time.currTime()
* @param $!tool.firstLowerCase($!{tableInfo.name}) Пример объекта
* @return Это успешно?
*/
boolean insert($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name}));
/**
* @Description Удалить $!{tableInfo.name}
* @author $!author
* @date $!time.currTime()
* @param $!pk.name первичный ключ
* @return Это успешно?
*/
boolean deleteById($!pk.shortType $!pk.name);
/**
* @Description Запрос данных об одном элементе
* @author $!author
* @date $!time.currTime()
* @param $!pk.name первичный ключ
* @return Пример объекта
*/
$!{tableInfo.name} queryById($!pk.shortType $!pk.name);
/**
* @Description Искать все данные
* @author $!author
* @date $!time.currTime()
* Пагинация реализована с помощью плагина MyBatis.
* @return список объектов
*/
List<$!{tableInfo.name}> queryAll();
/**
* @Description Сущность как данные запроса фильтра
* @author $!author
* @date $!time.currTime()
* @param $!tool.firstLowerCase($!{tableInfo.name}) Пример объекта
* @return список объектов
*/
List<$!{tableInfo.name}> queryAll($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name}));
/**
* @Description Чтобы изменить данные, измените любой атрибут, который не является пустым.
* @author $!author
* @date $!time.currTime()
* @param $!tool.firstLowerCase($!{tableInfo.name}) Пример объекта
* @return Это успешно?
*/
boolean update($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name}));
}
##Определим начальные переменные
#set($tableName = $tool.append($tableInfo.name, "ServiceImpl"))
##Установить обратный вызов
$!callback.setFileName($tool.append($tableName, ".java"))
$!callback.setSavePath($tool.append($tableInfo.savePath, "/service/impl"))
##получатьпервичный ключ
#if(!$tableInfo.pkColumn.isEmpty())
#set($pk = $tableInfo.pkColumn.get(0))
#end
#if($tableInfo.savePackageName)package $!{tableInfo.savePackageName}.#{end}service.impl;
import $!{tableInfo.savePackageName}.entity.$!{tableInfo.name};
import $!{tableInfo.savePackageName}.dao.$!{tableInfo.name}Dao;
import $!{tableInfo.savePackageName}.service.$!{tableInfo.name}Service;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
* @ClassName $!{tableName}
* @Description $!{tableInfo.comment}($!{tableInfo.name}) класс реализации табличного сервиса
* @author $!author
* @date $!time.currTime()
* @Version 1.0
**/
@Service("$!tool.firstLowerCase($!{tableInfo.name})Service")
public class $!{tableName} extends BaseService implements $!{tableInfo.name}Service {
@Autowired
protected $!{tableInfo.name}Dao $!tool.firstLowerCase($!{tableInfo.name})Dao;
/**
* @Description Добавьте $!{tableInfo.name}
* @author $!author
* @date $!time.currTime()
* @param $!tool.firstLowerCase($!{tableInfo.name}) Пример объекта
* @return Это успешно?
*/
@Override
public boolean insert($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name})) {
if($!{tool.firstLowerCase($!{tableInfo.name})}Dao.insert($!tool.firstLowerCase($!{tableInfo.name})) == 1){
return true;
}
return false;
}
/**
* @Description Удалить $!{tableInfo.name}
* @author $!author
* @date $!time.currTime()
* @param $!pk.name первичный ключ
* @return Это успешно?
*/
@Override
public boolean deleteById($!pk.shortType $!pk.name) {
if($!{tool.firstLowerCase($!{tableInfo.name})}Dao.deleteById($!pk.name) == 1){
return true;
}
return false;
}
/**
* @Description Запрос данных об одном элементе
* @author $!author
* @date $!time.currTime()
* @param $!pk.name первичный ключ
* @return Пример объекта
*/
@Override
public $!{tableInfo.name} queryById($!pk.shortType $!pk.name) {
return $!{tool.firstLowerCase($!{tableInfo.name})}Dao.queryById($!pk.name);
}
/**
* @Description Искать все данные
* @author $!author
* @date $!time.currTime()
* Пагинация реализована с помощью плагина MyBatis.
* @return список объектов
*/
@Override
public List<$!{tableInfo.name}> queryAll() {
return $!{tool.firstLowerCase($!{tableInfo.name})}Dao.queryAll();
}
/**
* @Description Сущность как данные запроса фильтра
* @author $!author
* @date $!time.currTime()
* @param $!tool.firstLowerCase($!{tableInfo.name}) Пример объекта
* @return список объектов
*/
@Override
public List<$!{tableInfo.name}> queryAll($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name})) {
return $!{tool.firstLowerCase($!{tableInfo.name})}Dao.queryAll($!tool.firstLowerCase($!{tableInfo.name}));
}
/**
* @Description Чтобы изменить данные, измените любой атрибут, который не является пустым.
* @author $!author
* @date $!time.currTime()
* @param $!tool.firstLowerCase($!{tableInfo.name}) Пример объекта
* @return Это успешно?
*/
@Override
public boolean update($!{tableInfo.name} $!tool.firstLowerCase($!{tableInfo.name})) {
if($!{tool.firstLowerCase($!{tableInfo.name})}Dao.update($!tool.firstLowerCase($!{tableInfo.name})) == 1){
return true;
}
return false;
}
}
##Представляем поддержку mybatis
$!mybatisSupport
##Установите имя сохранения и место сохранения
$!callback.setFileName($tool.append($!{tableInfo.name}, "Dao.xml"))
$!callback.setSavePath($tool.append($modulePath, "/src/main/resources/mybatis/mapper"))
##получатьпервичный ключ
#if(!$tableInfo.pkColumn.isEmpty())
#set($pk = $tableInfo.pkColumn.get(0))
#end
<?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">
<mapper namespace="$!{tableInfo.savePackageName}.dao.$!{tableInfo.name}Dao">
<!--$!{tableInfo.obj.name}из Набор результатов сопоставления-->
<resultMap type="$!{tableInfo.savePackageName}.entity.$!{tableInfo.name}" id="$!{tableInfo.name}Map">
#foreach($column in $tableInfo.fullColumn)
<result property="$!column.name" column="$!column.obj.name" jdbcType="$!column.ext.jdbcType"/>
#end
</resultMap>
<!--Все поля-->
<sql id="allColumn"> #allSqlColumn() </sql>
<!--Добавить заявлениеиз Список полей-->
<sql id="insertColumn">
#foreach($column in $tableInfo.otherColumn)
<if test="$!column.name != null#if($column.type.equals("java.lang.String")) and $!column.name != ''#end">
$!column.obj.name,
</if>
#end
</sql>
<!--Добавить заявлениеизсписок значений-->
<sql id="insertValue">
#foreach($column in $tableInfo.otherColumn)
<if test="$!column.name != null#if($column.type.equals("java.lang.String")) and $!column.name != ''#end">
#{$!column.name},
</if>
#end
</sql>
<!--универсальная пара$!{tableInfo.name}Каждый атрибутизценитьизнепустое суждение-->
<sql id="commonsValue">
#foreach($column in $tableInfo.otherColumn)
<if test="$!column.name != null#if($column.type.equals("java.lang.String")) and $!column.name != ''#end">
$!column.obj.name = #{$!column.name},
</if>
#end
</sql>
<!--Новый$!{tableInfo.obj.name}:Какой столбец добавляется, если поле не пусто?данные,Вернуться к приращениюпервичный ключ-->
<insert id="insert" keyProperty="$!pk.name" useGeneratedKeys="true">
insert into $!{tableInfo.obj.name}
<trim prefix="(" suffix=")" suffixOverrides=",">
<include refid="insertColumn"/>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<include refid="insertValue"/>
</trim>
</insert>
<!--удалить$!{tableInfo.obj.name}:проходитьпервичный ключ-->
<delete id="deleteById">
delete from $!{tableInfo.obj.name}
<where>
$!pk.obj.name = #{$!pk.name}
</where>
</delete>
<!--Запросить один$!{tableInfo.obj.name}-->
<select id="queryById" resultMap="$!{tableInfo.name}Map">
select
<include refid="allColumn"></include>
from $!tableInfo.obj.name
<where>
$!pk.obj.name = #{$!pk.name}
</where>
</select>
<!--Искать все$!{tableInfo.obj.name}-->
<select id="queryAllByLimit" resultMap="$!{tableInfo.name}Map">
select
<include refid="allColumn"></include>
from $!tableInfo.obj.name
</select>
<!--проходить Сущность как фильтрующий запрос-->
<select id="queryAll" resultMap="$!{tableInfo.name}Map">
select
<include refid="allColumn"></include>
from $!tableInfo.obj.name
<trim prefix="where" prefixOverrides="and" suffixOverrides=",">
<include refid="commonsValue"></include>
</trim>
</select>
<!--проходитьпервичный ключ Исправлятьданные-->
<update id="update">
update $!{tableInfo.obj.name}
<set>
<include refid="commonsValue"></include>
</set>
<where>
$!pk.obj.name = #{$!pk.name}
</where>
</update>
</mapper>