Maven项目创建springboot项目mybatis-plus

创建maven项目

java版本环境

版本:

1. java version "1.8.0_251"
2. Apache Maven 3.8.4

实体类

create table tf_users
(
user_id int PRIMARY KEY  comment'用户ID(主键)'
,user_name varchar(200)  comment'用户名'
,password  varchar(100) comment'密码(加密存储)'
,email     varchar(100) comment'邮箱'
,phone_number int       comment'手机号'   
,id_card   varchar(100) comment'证件号'
,create_time date       comment'注册时间'
,login_time  date       comment'最后登录时间'
,avatar_link varchar(200)  comment'用户头像链接'
,user_profile varchar(800) comment'用户简介'
,role_rule    varchar(100) comment'角色/权限等级'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 comment'用户'
;
package com.mode.tables;

import lombok.Data;

@Data
public class tf_UsersMode {

	String user_id;
	String user_name;
	String password;
	String email;
	String phone_number;
	String id_card  ;
	String create_time;
	String login_time ;
	String avatar_link ;
	String user_profile;
	String role_rule;

}

接口层

package com.service;

import com.mapper.tf_UsersMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;

import java.util.List;

@Mapper
public interface tf_UsersApi   {
    @Select("select * from tf_users")
    List<tf_UsersMapper> qq();
}

控制层

package com.controller;

import com.mapper.tf_UsersMapper;
import com.service.tf_UsersApi;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class ControllerWG {

    @Autowired
    private tf_UsersApi tf_UsersApi;

    @RequestMapping(value="/ss",method= RequestMethod.GET)
    public List quest()  {
        System.out.println("asdasdsad");
        List<tf_UsersMapper>  a=tf_UsersApi.qq();
        return  a;
    }
}

Swagger2

package com.controller;

import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

import java.util.ArrayList;

@Configuration
@EnableSwagger2
//@ComponentScan("com.yichun.swagger_boot_demo.controller")
public class Swagger2 {
    @Bean
    public Docket docker(){
        // 构造函数传入初始化规范,这是swagger2规范
        return new Docket(DocumentationType.SWAGGER_2)
                //apiInfo: 添加api详情信息,参数为ApiInfo类型的参数,这个参数包含了第二部分的所有信息比如标题、描述、版本之类的,开发中一般都会自定义这些信息
                .apiInfo(apiInfo())
                .groupName("sws_v1.0")
                //配置是否启用Swagger,如果是false,在浏览器将无法访问,默认是true
                .enable(true)
                .select()
                //apis: 添加过滤条件,
                .apis(RequestHandlerSelectors.basePackage("com.controller"))
                //paths: 这里是控制哪些路径的api会被显示出来,比如下方的参数就是除了/user以外的其它路径都会生成api文档
                .paths((String a) ->
                        !a.equals("/user"))
                .build();
    }

    private ApiInfo apiInfo(){
        Contact contact = new Contact("名字:XXX", "个人链接:https://XXX", "邮箱:XXX@sina.com");
        return new ApiInfo(
                "标题", // 标题
                "API接口文档", // 描述
                "版本内容:v1.0", // 版本
                "链接:https://XXX", // 组织链接
                contact, // 联系人信息
                "设计:1.0 ", //版本
                "版本链接:https://XXX", // 许可连接
                new ArrayList<>()// 扩展
        );
    }
}

启动类

package com;

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@MapperScan(basePackages = {"com.service"})
public class ControllerApplication {

    public static void main(String[] args) {
        SpringApplication.run(ControllerApplication.class, args);
        System.out.println("服务已启动……");
    }
}

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>

    <groupId>com.wg</groupId>
    <artifactId>wgapp</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
            <version>2.5.1</version>
        </dependency>
        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.2</version>
        </dependency>

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.27</version>
        </dependency>
        <dependency>
            <!-- 引用Druid为数据源依赖 -->
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.2.8</version>
        </dependency>
        <!--Swagger2-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.datatype</groupId>
            <artifactId>jackson-datatype-guava</artifactId>
            <version>2.10.1</version>
        </dependency>
        <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>swagger-bootstrap-ui</artifactId>
            <version>1.8.5</version>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>RELEASE</version>
            <scope>compile</scope>
        </dependency>

        <!-- tocken生成依赖start-->
        <!--     <dependency>-->
        <!--         <groupId>io.jsonwebtoken</groupId>-->
        <!--         <artifactId>jjwt-api</artifactId>-->
        <!--         <version>0.11.2</version>-->
        <!--     </dependency>-->
        <!--     <dependency>-->
        <!--         <groupId>io.jsonwebtoken</groupId>-->
        <!--         <artifactId>jjwt-impl</artifactId>-->
        <!--         <version>0.11.2</version>-->
        <!--         <scope>runtime</scope>-->
        <!--     </dependency>-->
        <!--     <dependency>-->
        <!--         <groupId>io.jsonwebtoken</groupId>-->
        <!--         <artifactId>jjwt-jackson</artifactId> &lt;!&ndash; or jjwt-gson if Gson is preferred &ndash;&gt;-->
        <!--         <version>0.11.2</version>-->
        <!--         <scope>runtime</scope>-->
        <!--     </dependency>-->
        <!--     &lt;!&ndash;  图片识别 start  &ndash;&gt;-->
        <!--     <dependency>-->
        <!--         <groupId>net.sourceforge.tess4j</groupId>-->
        <!--         <artifactId>tess4j</artifactId>-->
        <!--         <version>5.7.0</version>-->
        <!--     </dependency>-->
        <!--     &lt;!&ndash; 解决输出的时候 slf4j 报错 &ndash;&gt;-->
        <!--     <dependency>-->
        <!--         <groupId>org.slf4j</groupId>-->
        <!--         <artifactId>slf4j-api</artifactId>-->
        <!--         <version>1.8.0-beta4</version>-->
        <!--     </dependency>-->
        <!--     <dependency>-->
        <!--         <groupId>org.slf4j</groupId>-->
        <!--         <artifactId>slf4j-simple</artifactId>-->
        <!--         <version>1.8.0-beta4</version>-->
        <!--     </dependency>-->
        <!--  图片识别 end  -->
        
    </dependencies>
</project>

application.properties文件配置

#设置端口
#server.port=8080
#Druid是一个流行的数据库连接池,它提供了强大的监控和扩展功能,比标准的HikariCP或Tomcat连接池更加灵活
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.url=jdbc:mysql://localhost:3306/s0?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

# Druid特定配置
spring.datasource.druid.initial-size=5  
spring.datasource.druid.min-idle=5  
spring.datasource.druid.max-active=20  
spring.datasource.druid.max-wait=60000  
spring.datasource.druid.time-between-eviction-runs-millis=60000  
spring.datasource.druid.min-evictable-idle-time-millis=300000  
spring.datasource.druid.validation-query=SELECT 1 FROM DUAL  
spring.datasource.druid.test-while-idle=true  
spring.datasource.druid.test-on-borrow=false  
spring.datasource.druid.test-on-return=false  
spring.datasource.druid.pool-prepared-statements=true  
spring.datasource.druid.max-pool-prepared-statement-per-connection-size=20  
spring.datasource.druid.filter.stat.enabled=true  
spring.datasource.druid.filter.stat.slow-sql-millis=5000


#MyBatis-Plus会使用标准输出(通常是控制台)作为日志输出目标。这意味着所有的日志信息都会直接打印到控制台上,方便开发者在开发过程中查看和调试。
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

#这个配置项就是用来指定逻辑删除字段的值。在这里,1 表示当记录的状态字段值为 1 时,该记录被认为是已删除的,deleted=0 表示记录未被删除,你需要在实体类中对应的状态字段上添加 @TableLogic 注解,以告诉 MyBatis-Plus 这个字段是用于逻辑删除的
#mybatis-plus.global-config.db-config.logic-delete-value=1
#mybatis-plus.global-config.db-config.logic-not-delete-value=0

#允许循环依赖
spring.main.allow-circular-references=true

#MyBatis 会自动将数据库中的下划线命名(snake_case)转换为 Java 对象中的驼峰命名(camelCase),不设置查询结果会为null
#mybatis.configuration.map-underscore-to-camel-case=true

#这个属性用于配置 Jackson(一个用于处理 JSON 的 Java 库)如何序列化(将 Java 对象转换为 JSON 字符串)和反序列化(将 JSON 字符串转换为 Java 对象)日期和时间对象
#spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
#这个属性设置了 Jackson 在序列化和反序列化日期和时间对象时使用的时区。在这里,它被设置为 GMT+8,即东八区的时间,这通常是中国、新加坡、马来西亚和菲律宾等国家或地区所使用的时区
#spring.jackson.time-zone=GMT+8
#这个属性用于配置 Spring Boot 应用的 HTTP 请求字符编码。当设置为 true 时,它将强制 Spring Boot 应用在读取 HTTP 请求时使用指定的字符编码。这通常用于确保请求数据的正确性,特别是当客户端发送的数据包含非 ASCII 字符时
#server.servlet.encoding.force-request=true
#这个属性指定了 HTTP 请求和响应的字符编码。当 server.servlet.encoding.force-request 或 server.servlet.encoding.force-response(虽然配置中没有列出后者,但通常也会一起使用)被设置为 true 时,Spring Boot 应用将使用此属性指定的字符编码来读取请求和写入响应。UTF-8 是一种非常流行的字符编码,能够表示几乎所有的 Unicode 字符
#server.servlet.encoding.charset=UTF-8
#这个属性是一个简化的设置,它同时启用了 server.servlet.encoding.force-request 和 server.servlet.encoding.force-response(如果后者没有被明确设置)。当设置为 true 时,它将强制 Spring Boot 应用在读取 HTTP 请求和写入 HTTP 响应时使用指定的字符编码(即 server.servlet.encoding.charset 中指定的编码)。
#server.servlet.encoding.force=true

## 配置swagger文档的访问路径,访问地址:
#http://localhost:8080/swagger-ui.html
#http://localhost:8080//doc.html

## 上传单个文件的最大值为10MB
#spring.servlet.multipart.max-file-size=100MB
## 单次请求中, 上传的所有文件总大小最大为10MB
#spring.servlet.multipart.max-request-size=100MB
#
## http://10.211.55.9:8080/swagger-ui/index.html#
## http://47.97.71.69:8080/swagger-ui/index.html#

# sftp root@XXX
#mac查询端口进程
#lsof -i:端口号
#lsof -i:8080
#杀进程
#kill pid

  • 10
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
1. 创建SpringBoot项目 首先,在IDE中创建一个SpringBoot项目,选择Maven作为构建工具,并在pom文件中添加SpringBootmybatis-plus的依赖。 2. 配置数据库连接 在application.properties文件中添加数据库连接信息,包括url、username、password等。 ``` spring.datasource.url=jdbc:mysql://localhost:3306/dbname?useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8 spring.datasource.username=root spring.datasource.password=123456 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver ``` 3. 创建实体类和mapper 创建实体类和对应的mapper接口,使用mybatis-plus的注解来简化SQL操作。例如: ```java @Data @TableName("user") // 表名 public class User { @TableId(value = "id", type = IdType.AUTO) // id字段自增 private Long id; @TableField("name") // name字段 private String name; @TableField("age") // age字段 private Integer age; } ``` ```java public interface UserMapper extends BaseMapper<User> { } ``` 4. 编写业务逻辑 根据具体需求编写业务逻辑代码,例如实现对用户的增删改查操作。使用mybatis-plus的CRUD方法来简化操作。 ```java @Service public class UserServiceImpl implements UserService { @Autowired private UserMapper userMapper; @Override public boolean saveUser(User user) { return userMapper.insert(user) > 0; } @Override public boolean updateUser(User user) { return userMapper.updateById(user) > 0; } @Override public boolean deleteUser(Long id) { return userMapper.deleteById(id) > 0; } @Override public User getUserById(Long id) { return userMapper.selectById(id); } @Override public List<User> getUserList() { return userMapper.selectList(null); } } ``` 5. 编写Controller层 编写Controller层代码,处理HTTP请求并调用对应的业务逻辑方法。使用@RestController注解来标注该类是一个REST风格的控制器。 ```java @RestController public class UserController { @Autowired private UserService userService; @PostMapping("/user") public Result saveUser(@RequestBody User user) { boolean result = userService.saveUser(user); return result ? Result.success() : Result.error("保存用户失败"); } @PutMapping("/user") public Result updateUser(@RequestBody User user) { boolean result = userService.updateUser(user); return result ? Result.success() : Result.error("更新用户失败"); } @DeleteMapping("/user/{id}") public Result deleteUser(@PathVariable Long id) { boolean result = userService.deleteUser(id); return result ? Result.success() : Result.error("删除用户失败"); } @GetMapping("/user/{id}") public Result getUserById(@PathVariable Long id) { User user = userService.getUserById(id); return Result.success(user); } @GetMapping("/user") public Result getUserList() { List<User> userList = userService.getUserList(); return Result.success(userList); } } ``` 6. 测试接口 启动SpringBoot应用程序,使用Postman等工具测试接口,确认接口功能正常。 以上便是搭建SpringBoot mybatis-plus项目的基本流程。通过使用mybatis-plus来简化SQL操作,可以极大的提高开发效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

青鸟遇鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值