1.springboot搭建
2.MBG逆向工程
3.SSM开发
4.集成PageHelper
5.集成通用Mapper
一、SpringBoot搭建 ①建模
阿里云网站:
https://start.aliyun.comhttps://start.aliyun.com
Spring Web:集成ssm环境,搭服务器;
MyBatis framework:集成MyBatis;
MySQL Driver:数据库;
②yml文件二、MBG逆向工程 ①连接数据库server:
port: 8080
②逆向生成器代码 1.导入依赖
2.导入配置文件
org.mybatis.generator
mybatis-generator-core
1.3.7
org.mybatis.generator
mybatis-generator-maven-plugin
1.3.7
true
true
在resource包内:
Generator.properties:
userSSL意思是非加密的;serverTimezone:时区;useUnicode:防止乱码;allowPublicKeyRetrieval:允许加密访问
jdbc.driver=com.mysql.cj.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/boot?useSSL=false&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&allowPublicKeyRetrieval=true jdbc.username=root jdbc.password=123456----mysql密码 jdbc.driverLocation=F:\maven\jar\mysql\mysql-connector-java\8.0.25\mysql-connector-java-8.0.25.jar----mysql驱动地址 model.package=com.xhy.code.entity mapper.package=com.xhy.code.mapper xml.mapper.package=mapper
generatorConfig.xml:
3.生成表对象上的注解以及文档上的注释
在Java包内新建软件包,包名与此一致org.mybatis.generator.plugins
package org.mybatis.generator.plugins;
import lombok.extern.slf4j.Slf4j;
import org.mybatis.generator.api.IntrospectedColumn;
import org.mybatis.generator.api.IntrospectedTable;
import org.mybatis.generator.api.Plugin;
import org.mybatis.generator.api.PluginAdapter;
import org.mybatis.generator.api.dom.java.*;
import java.time.LocalDateTime;
import java.util.List;
@Slf4j
public class MyBatisPlugin extends PluginAdapter {
@Override
public boolean validate(Listlist) {
return true;
}
// 生成类上面的注释
@Override
public boolean modelbaseRecordClassGenerated(TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
boolean hasLombok = Boolean.parseBoolean(getProperties().getProperty("hasLombok", "false"));
log.warn("hasLombok:t" + hasLombok);
if (hasLombok) {
topLevelClass.addimportedType("lombok.Data");
topLevelClass.addimportedType("lombok.NoArgsConstructor");
topLevelClass.addimportedType("lombok.AllArgsConstructor");
topLevelClass.addimportedType("lombok.experimental.Accessors");
topLevelClass.addAnnotation("@Data");
topLevelClass.addAnnotation("@NoArgsConstructor");
topLevelClass.addAnnotation("@AllArgsConstructor");
topLevelClass.addAnnotation("@Accessors(chain = true)");
}
topLevelClass.addJavaDocLine("");
return true;
}
// 生成在每个字段上面的注释
@Override
public boolean modelFieldGenerated(Field field, TopLevelClass topLevelClass, IntrospectedColumn introspectedColumn, IntrospectedTable introspectedTable, ModelClassType modelClassType) {
field.addJavaDocLine("");
return true;
}
// 生成接口注解
@Override
public boolean clientGenerated(Interface interfaze, TopLevelClass topLevelClass, IntrospectedTable introspectedTable) {
interfaze.addimportedType(new FullyQualifiedJavaType("org.apache.ibatis.annotations.Mapper"));
interfaze.addAnnotation("@Mapper");
interfaze.addimportedType(new FullyQualifiedJavaType("org.springframework.stereotype.Repository"));
interfaze.addAnnotation("@Repository");
interfaze.addJavaDocLine("");
return true;
}
// 模型是否需要生成set方法
@Override
public boolean modelSetterMethodGenerated(Method method, TopLevelClass topLevelClass, IntrospectedColumn introspectedColumn, IntrospectedTable introspectedTable, ModelClassType modelClassType) {
boolean hasLombok = Boolean.parseBoolean(getProperties().getProperty("hasLombok", "false"));
return !hasLombok;
}
// 模型是否需要生成get方法
@Override
public boolean modelGetterMethodGenerated(Method method, TopLevelClass topLevelClass, IntrospectedColumn introspectedColumn, IntrospectedTable introspectedTable, ModelClassType modelClassType) {
boolean hasLombok = Boolean.parseBoolean(getProperties().getProperty("hasLombok", "false"));
return !hasLombok;
}
}
4.将这个类的编译文件丢到pom.xml文件所指的mybatis-generator-core文件内相应版本的jar包里面去:
首先执行一下文件,获得编译文件:
将此文件丢到本地仓库中:F:mavenjarorgmybatisgeneratormybatis-generator-core1.3.7
5.点击逆向生成代码 ③配置数据源、mybatis
application.yml文件:
server:
port: 8080
spring:
datasource:
username: root
password: 123456
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/eshop?useSSL=false&serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&allowPublicKeyRetrieval=true
mybatis:
config-location: classpath*:mapper/*.xml
type-aliases-package: com.xhy.code.entity
configuration:
map-underscore-to-camel-case: true
4、查询表数据
StudentMapper.java:
package com.xhy.code.mapper;
import com.xhy.code.entity.Student;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;
import java.util.List;
@Mapper
@Repository
public interface StudentMapper {
int deleteByPrimaryKey(Long stuId);
int insert(Student record);
int insertSelective(Student record);
Student selectByPrimaryKey(Long stuId);
int updateByPrimaryKeySelective(Student record);
int updateByPrimaryKey(Student record);
Listselect();
}
StudentMapper.xml:
student.stu_id as student_stu_id, student.stu_name as student_stu_name, student.stu_phone as student_stu_phone, student.stu_class as student_stu_class, student.stu_address as student_stu_address
测试:SpringBoot03ApplicationTests.java
package com.xhy.code;
import com.xhy.code.mapper.StudentMapper;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import javax.sql.DataSource;
@SpringBootTest
class Springboot03ApplicationTests {
@Autowired
DataSource dataSource;
@Autowired
StudentMapper mapper;
@Test
void contextLoads() throws Exception{
System.out.println(dataSource);
System.out.println(dataSource.getConnection());
System.out.println( mapper.select());
}
}
三、SSM开发
`



