oracle+mybatis-plus+springboot项目整合

oracle+mybatis-plus+springboot项目整合

1、导包

简单项目结构:
在这里插入图片描述

    <dependencies>
        <!--用的是2.3.12.RELEASE版本-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.2</version>
        </dependency>

        <!-- https://mvnrepository.com/artifact/com.oracle.database.nls/orai18n -->
        <!--oracle 必备 , 用于处理oracle中文乱码 , 可以删除试试代码运行情况,-->
        <dependency>
            <groupId>com.oracle.database.nls</groupId>
            <artifactId>orai18n</artifactId>
            <version>19.7.0.0</version>
        </dependency>


<!--        <dependency>-->
<!--            <groupId>com.baomidou</groupId>-->
<!--            <artifactId>mybatis-plus-generator</artifactId>-->
<!--            <version>${mybatis-plus-generator.version}</version>-->
<!--            <scope>test</scope>-->
<!--        </dependency>-->

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
        </dependency>
        <dependency>
            <groupId>com.oracle.database.jdbc</groupId>
            <artifactId>ojdbc8</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

2、配置

spring.datasource.driver-class-name= oracle.jdbc.driver.OracleDriver
spring.datasource.url=jdbc:oracle:thin:@127.0.0.1:1521:服务名
spring.datasource.username=username
spring.datasource.password=password

mybatis-plus.mapper-locations=classpath*:/mapper/**/*Mapper.xml
logging.level.com.ycz.mapper=debug
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.slf4j.Slf4jImpl

3、mybatis-plus的分页配置

package com.ycz.config;

import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @author alex
 * @date 2023/01/13 1:44
 * @Version 1.0
 */
@Configuration
@ConditionalOnClass(value = {PaginationInterceptor.class})
public class MybatisPlusConfig {

    // 最新版
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
//        数据库的配置DbType.ORACLE 根据自己的数据库选择
        interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.ORACLE));
        return interceptor;
    }

}

4、写entity,mapper,service,impl

package com.ycz.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.util.Date;

@Data
@TableName("PRODUCT")
public class Product {

    @TableField(value = "ID")
    @TableId(type = IdType.ASSIGN_ID)
    private String id;

    @TableField(value = "NAME")
    private String name;

    @TableField(value = "PRICE")
    private BigDecimal price;

    @TableField(value = "CREATE_TIME")
    private Date createTime;
}

package com.ycz.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ycz.entity.Product;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface ProductMapper extends BaseMapper<Product> {



}

package com.ycz.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.ycz.entity.Product;
import com.ycz.params.ProductParams;

public interface ProductService {

    IPage<Product> page(ProductParams params);


}

package com.ycz.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ycz.entity.Product;
import com.ycz.mapper.ProductMapper;
import com.ycz.params.ProductParams;
import com.ycz.service.ProductService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class ProductServiceImpl implements ProductService {

    @Autowired
    private ProductMapper mapper;
    @Override
    public IPage<Product> page(ProductParams params) {
        QueryWrapper<Product> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq(params.getId()!=null , "ID" , params.getId());
        queryWrapper.eq(params.getName()!=null , "NAME" , params.getName());
        return mapper.selectPage(new Page<>(params.getCurrent(),params.getSize()), queryWrapper);
    }
}

5、测试

分页

    @Test
    void page(){
        ProductParams params = new ProductParams();
        params.setCurrent(1);
        params.setSize(2);
        service.page(params).getRecords().forEach(System.out::println);
    }

结果:
在这里插入图片描述

日志是这样的:

2023-01-14 20:57:32.793 DEBUG 13800 --- [           main] c.y.m.ProductMapper.selectPage_mpCount   : ==>  Preparing: SELECT COUNT(*) FROM PRODUCT
2023-01-14 20:57:32.964 DEBUG 13800 --- [           main] c.y.m.ProductMapper.selectPage_mpCount   : ==> Parameters: 
2023-01-14 20:57:33.105 DEBUG 13800 --- [           main] c.y.m.ProductMapper.selectPage_mpCount   : <==      Total: 1
2023-01-14 20:57:33.124 DEBUG 13800 --- [           main] com.ycz.mapper.ProductMapper.selectPage  : ==>  Preparing: SELECT * FROM ( SELECT TMP.*, ROWNUM ROW_ID FROM ( SELECT id,NAME,PRICE,CREATE_TIME FROM PRODUCT ) TMP WHERE ROWNUM <=?) WHERE ROW_ID > ?
2023-01-14 20:57:33.128 DEBUG 13800 --- [           main] com.ycz.mapper.ProductMapper.selectPage  : ==> Parameters: 2(Long), 0(Long)
2023-01-14 20:57:33.154 DEBUG 13800 --- [           main] com.ycz.mapper.ProductMapper.selectPage  : <==      Total: 2

插入

    @Test
    void insert(){
        Product product = new Product();
        product.setPrice(new BigDecimal("50.0"));
        product.setName("可口可乐");
        product.setCreateTime(new Date());
        mapper.insert(product);
    }

在这里插入图片描述

更新

    @Test
    void update(){
        Product product = new Product();
        product.setId("1614246758689378305");
        product.setPrice(new BigDecimal("50.0"));
        product.setName("百事可乐");
        mapper.updateById(product);
    }

在这里插入图片描述

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1. 创建一个SpringBoot项目 首先,我们需要创建一个SpringBoot项目,可以使用Spring Initializr或者在IDE中创建。 2. 添加MyBatis-Plus依赖 在pom.xml文件中添加MyBatis-Plus的依赖。 ``` <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.4.2</version> </dependency> ``` 3. 配置数据源和MyBatis-Plus 在application.properties文件中配置数据源和MyBatis-Plus的相关配置。 ``` # 数据源配置 spring.datasource.url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT%2B8 spring.datasource.username=root spring.datasource.password=root spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver # MyBatis-Plus配置 mybatis-plus.mapper-locations=classpath*:mapper/*.xml mybatis-plus.global-config.id-type=auto mybatis-plus.global-config.db-config.logic-delete-value=1 mybatis-plus.global-config.db-config.logic-not-delete-value=0 ``` 4. 创建实体类和Mapper接口 创建实体类和Mapper接口,并在Mapper接口中使用注解或者XML的方式定义SQL语句。 ``` // User实体类 @Data @TableName("user") public class User { @TableId(type = IdType.AUTO) private Long id; private String name; private Integer age; private String email; } // UserMapper接口 public interface UserMapper extends BaseMapper<User> { } ``` 5. 编写Service层和Controller层 在Service层和Controller层中调用Mapper接口中定义的方法,并将结果返回给前端。 ``` // UserService @Service public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements UserService { } // UserController @RestController @RequestMapping("/user") public class UserController { @Autowired private UserService userService; @GetMapping("/list") public List<User> list() { return userService.list(); } } ``` 6. 启动应用程序 在IDE中运行应用程序,或者使用命令行启动。 ``` mvn spring-boot:run ``` 至此,一个基于SpringBootMyBatis-Plus项目就搭建完成了。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值