SpringBoot+StringCloud+mybatis+mybatis-plus+mysql开发简介

1. 项目环境创建

去看别人的哈,这里不说了。

2. 引入相关包

在pom.xml中整体包信息如下:



    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.4.2
         
    
    com.lexue
    fir
    0.0.1-SNAPSHOT
    fir
    LeXue Fir for Spring Boot

    
        1.8
        2020.0.0
    

    
        
            org.springframework.boot
            spring-boot-starter
        
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            org.mybatis.spring.boot
            mybatis-spring-boot-starter
            2.1.4
        

        
        
            com.baomidou
            mybatis-plus-boot-starter
            3.1.2
        
        
        
            org.projectlombok
            lombok
            
        

        
            org.springframework.cloud
            spring-cloud-config-server
        
        
            org.springframework.cloud
            spring-cloud-function-web
        
        
            org.springframework.cloud
            spring-cloud-starter
        
        
            org.springframework.cloud
            spring-cloud-starter-task
        

        
            mysql
            mysql-connector-java
            8.0.15
            
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
        

        
        
            com.alibaba
            fastjson
            1.2.54
        

        
        
            org.apache.commons
            commons-collections4
            4.3
        

    

    
        
            
                org.springframework.cloud
                spring-cloud-dependencies
                ${spring-cloud.version}
                pom
                import
            
        
    

    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    
    
        
            spring-milestones
            Spring Milestones
            https://repo.spring.io/milestone
        
    

    


1.1 mysql

        
            mysql
            mysql-connector-java
            8.0.15
            
        

1.2 mybatis

        
            org.mybatis.spring.boot
            mybatis-spring-boot-starter
            2.1.4
        

注意版本号,最新的版本可用 

runtime  代替 2.1.4

1.3 plus相关


        
            com.baomidou
            mybatis-plus-boot-starter
            3.1.2
        
        
        
            org.projectlombok
            lombok
            
        

lombok的使用需要在plugins中倒入插件lombok,否则无效。

1.4 其他工具类


        
            com.alibaba
            fastjson
            1.2.54
        

        
        
            org.apache.commons
            commons-collections4
            4.3
        

fastjson是json解析工具类

1.5 SpringCloud

        
            org.springframework.cloud
            spring-cloud-config-server
        
        
            org.springframework.cloud
            spring-cloud-function-web
        
        
            org.springframework.cloud
            spring-cloud-starter
        
        
            org.springframework.cloud
            spring-cloud-starter-task
        

3. 开发

3.1 数据库配置

在application.yml中配置

# mysql配置
spring:
  freemarker:
    cache: false
  thymeleaf:
      cache: false
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/sensor?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=UTF-8
    name: sener
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver

# mybatis配置
mybatis:
  mapper-locations: classpath:mapper/*.xml   #对应mapper映射xml文件所在路径
  type-aliases-package: com.lexue.fir.model  #对应实体类路径
  #开启驼峰命名
  configuration:
    map-underscore-to-camel-case: true

3.2 mybatis使用包含4部分

1⃣️  新建model包,创建UserInfo对象

@Data
public class UserInfo {

    private String account;//账号
    private String pwd;
    private String name;//姓名
    private int sex;//性别
    private int age;
    private String nickName;//昵称
    private String idCard;//身份证
    private String mobile;//手机号
    private String email;//邮箱

}

用@Data是使用了lombok插件,不然要自己写set和get方法了,乱极了。

2⃣️  新建包mapper,创建 UserInfoMapper,里面可以实现一个方法,findAll,查询user_info表格中所有数据

@Repository
//@Mapper  //application
public interface UserInfoMapper {

    List findAll();
}

3⃣️  在resources目下,新建mapper文件,创建 UserInfoMapper.xml文件,这里是数据库查新sql语句




    

一定要注意,resultType是相对路径,带包名的,不然找不到。

4⃣️  在application中加入扫描路径,不然application找不到

@SpringBootApplication
@MapperScan(basePackages = {"com.lexue.fir.db.mapper"})
public class FirApplication {

    public static void main(String[] args) {
        SpringApplication.run(FirApplication.class, args);
    }

}

就是这句  @MapperScan(basePackages = {"com.lexue.fir.db.mapper"})

也可以用另一种方式,就是在UserInfo上加 @Mapper,两个方式都可以。

3.2 数据库使用

创建login包,创建 LoginController文件,内容如下

@RestController
@RequestMapping(value = "/login")
public class LoginController {

    private final UserInfoService userInfoService;

    public LoginController(UserInfoService userInfoService) {
        this.userInfoService = userInfoService;
    }

    /**
     * 获取用户列表
     *
     * @return 信息
     */
    @RequestMapping(value = "/getUserInfo")
    public String getUserInfo() {
        List userInfoList = userInfoService.findAll();
        BaseInfo> baseInfo = BaseInfo.fail(userInfoList);
        return JSON.toJSONString(baseInfo);
    }
}

"/login"是接口路径,"/getUserInfo"是接口,这里需要service,怎么创建呢,看下面

service代码

public interface UserInfoService {

    List findAll();

    void insertData(UserInfo userInfo);
}

impl代码

@Service
public class UserInfoServiceImpl implements UserInfoService {

    final UserInfoMapper userInfoMapper;

    public UserInfoServiceImpl(UserInfoMapper userInfoMapper) {
        this.userInfoMapper = userInfoMapper;
    }

    @Override
    public List findAll() {
        return userInfoMapper.findAll();
    }

    @Override
    public void insertData(UserInfo userInfo) {
        if (userInfo != null) {
            userInfoMapper.insert(userInfo);
        }
    }
}

其中的 

List userInfoList = userInfoService.findAll();

是获取返回对象。

3.3  mybatis-plus使用

很简单,让mapper继承BaseMapper即可

@Repository
//@Mapper  //application
public interface UserInfoMapper extends BaseMapper {

    List findAll();
}

这样就可以使用plus里面封装的数据库操作方式,这几个方式是不需要我们再写在mapper.xml里了,在plus中可以实现的数据库操作有条件查询,逻辑删除等。

比如:对于

UserInfoMapper userInfoMapper, 可以使用userInfoMapper.selectList(null)查询所有数据,这个selectList方法并不是我们自己自己定义的,而是plus框架里面定义好的,节约我们自己的处理时间。

 

 

更新中...     更新中...    更新中...    更新中...   更新中...   更新中...   更新中...   更新中...

你可能感兴趣的:(java,java,maven,spring,mybatis,spring,boot)