SpringBoot整合MybatisPlusl连接SqlServer数据库

一、Mybatis-Plus是什么?

Mybatis-Plus是Mybatis的增强版本,而且是只做增强不做出改变。可以让我们的开发更加有效率!其中就有一个自动注入基本CRUD,是不是更加快速了捏。
在这里插入图片描述

二、搭建步骤

1.使用开发工具idea创建springboot项目

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这一步的就是选择一些所需的包

在这里插入图片描述
以下是pom文件的全部依赖

<properties>
    <java.version>1.8</java.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <scope>runtime</scope>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>com.microsoft.sqlserver</groupId>
        <artifactId>mssql-jdbc</artifactId>
        <scope>runtime</scope>
    </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>

    <!--- SqlServer驱动 -->
    <dependency>
        <groupId>com.microsoft.sqlserver</groupId>
        <artifactId>sqljdbc4</artifactId>
        <scope>4.0</scope>
        <version>4.0</version>
    </dependency>

    <!-- druid 连接池 -->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid-spring-boot-starter</artifactId>
        <version>1.1.10</version>
    </dependency>

    <!-- Mybats-Plus -->
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-boot-starter</artifactId>
        <version>3.1.2</version>
    </dependency>
    <dependency>
        <groupId>com.baomidou</groupId>
        <artifactId>mybatis-plus-generator</artifactId>
        <version>3.1.2</version>
    </dependency>


    <dependency>
        <groupId>org.freemarker</groupId>
        <artifactId>freemarker</artifactId>
    </dependency>
    <dependency>
        <groupId>ch.qos.logback</groupId>
        <artifactId>logback-core</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>springloaded</artifactId>
        <version>1.2.8.RELEASE</version>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

2 . 创建一个启动类

package com.cptcolour.cpt.generator;

import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.generator.AutoGenerator;
import com.baomidou.mybatisplus.generator.InjectionConfig;
import com.baomidou.mybatisplus.generator.config.*;
import com.baomidou.mybatisplus.generator.config.po.TableFill;
import com.baomidou.mybatisplus.generator.config.po.TableInfo;
import com.baomidou.mybatisplus.generator.config.rules.NamingStrategy;
import com.baomidou.mybatisplus.generator.engine.FreemarkerTemplateEngine;

import java.util.ArrayList;
import java.util.List;

public class SqlserverGenerator {
/**
* RUN THIS
*/
//生成文件所在项目路径
private static String baseProjectPath = “E:\ColourData\cpt”;

//基础包名
private static String basePackage="com.cptcolour.cpt";
//设置作者
private static String authorName="admin";
//这里是要生成的表名(如果全部要生成的话,这里注释掉)
//private static String[] tables= {"t_role","t_resource","t_role_resource","t_user_role"};
//可以设置table前缀
private static String prefix="t_";

//数据库配置四要素
private static String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
private static String url = "jdbc:sqlserver://106.14.45.25:1433;databaseName=TB_CPT_TEST";
private static String username = "common";
private static String password = "test123";


public static void main(String[] args) {
    // 代码生成器
    AutoGenerator mpg = new AutoGenerator();

    // 全局配置
    GlobalConfig gc = new GlobalConfig();
    String projectPath = System.getProperty("user.dir");
    gc.setOutputDir(baseProjectPath + "/src/main/java");
    // TODO 设置用户名
    gc.setAuthor("admin");
    gc.setOpen(true);
    // service 命名方式
    gc.setServiceName("%sService");
    // service impl 命名方式
    gc.setServiceImplName("%sServiceImpl");
    // 自定义文件命名,注意 %s 会自动填充表实体属性!
    gc.setMapperName("%sMapper");
    gc.setXmlName("%sMapper");
    gc.setFileOverride(true);
    gc.setActiveRecord(true);
    // XML 二级缓存
    gc.setEnableCache(false);
    // XML ResultMap
    gc.setBaseResultMap(true);
    // XML columList
    gc.setBaseColumnList(false);
    mpg.setGlobalConfig(gc);

    // TODO 数据源配置
    DataSourceConfig dsc = new DataSourceConfig();
    dsc.setUrl(url);
    dsc.setDriverName(driverName);
    dsc.setUsername(username);
    dsc.setPassword(password);
    mpg.setDataSource(dsc);

    // TODO 包配置
    PackageConfig pc = new PackageConfig();
    //pc.setModuleName(scanner("模块名"));
    pc.setParent("com.cptcolour.cpt");
    pc.setEntity("entity");
    pc.setService("service");
    pc.setServiceImpl("service.impl");
    mpg.setPackageInfo(pc);

    // 自定义需要填充的字段
    List<TableFill> tableFillList = new ArrayList<>();

    // 自定义配置
    InjectionConfig cfg = new InjectionConfig() {
        @Override
        public void initMap() {
            // to do nothing
        }
    };
    List<FileOutConfig> focList = new ArrayList<>();
    focList.add(new FileOutConfig("/templates/mapper.xml.ftl") {
        @Override
        public String outputFile(TableInfo tableInfo) {
            // 自定义输入文件名称
            return projectPath + "/src/main/resources/mapper/"
                    + "/" + tableInfo.getEntityName() + "Mapper" + StringPool.DOT_XML;
        }
    });
    cfg.setFileOutConfigList(focList);
    mpg.setCfg(cfg);
    mpg.setTemplate(new TemplateConfig().setXml(null));

    // 策略配置
    StrategyConfig strategy = new StrategyConfig();
    strategy.setNaming(NamingStrategy.underline_to_camel);
    strategy.setColumnNaming(NamingStrategy.underline_to_camel);
    strategy.setEntityLombokModel(true);
    // 设置逻辑删除键(这个是逻辑删除的操作)
    strategy.setLogicDeleteFieldName("deleted");
    // TODO 指定生成的bean的数据库表名(如果全部生成,这里要注释掉)
    //strategy.setInclude("userinfos");
    //strategy.setSuperEntityColumns("id");
    // 驼峰转连字符
    strategy.setControllerMappingHyphenStyle(true);
    mpg.setStrategy(strategy);
    // 选择 freemarker 引擎需要指定如下加,注意 pom 依赖必须有!
    mpg.setTemplateEngine(new FreemarkerTemplateEngine());
    mpg.execute();
}

}

3.运行完之后就是这个样子,一定要保证sqlserver的数据库中是有数据表的,不然运行出来的都是空的文件夹

在这里插入图片描述

做一个简单的测试

package com.cptcolour.cpt.controller;

import org.springframework.web.bind.annotation.RequestMapping;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

/**

  • 前端控制器

  • @author admin

  • @since 2020-10-10
    */
    @RestController
    @RequestMapping("/test")
    public class TestController {

    @RequestMapping(value = “/cpt”,method = RequestMethod.GET)
    public String test(){
    return “Hello,World!!!”;
    }

}

访问的路径

在这里插入图片描述

日期类型

如果数据库中有datetime类型的字段,通过以上的方法生成完之后,对应的实体类字段会显示localdatetime类型,所以会出错。详情请看:https://blog.csdn.net/zhang_adrian/article/details/100330162

本章部分内容来源于:zhang_adrian
内容链接:https://blog.csdn.net/zhang_adrian/article/details/100330162
2020/10/10

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
SQL Server存储过程是一组预编译的SQL语句,可以在数据库中创建并保存,以供以后重复使用。存储过程可以接受参数,并且可以返回结果。它们可以用于执行复杂的数据库操作,提高性能和安全性。 在SQL Server中,可以使用CREATE PROCEDURE语句来创建存储过程。存储过程可以包含SQL语句、控制流语句、变量和参数等。可以使用EXECUTE语句来调用存储过程,并传递参数。 例如,使用C#语言调用存储过程可以使用以下代码: ```csharp public static double GetBalance(string accountName) { SqlConnection conn; string cs = ConfigurationManager.ConnectionStrings\["sampleDB"\].ConnectionString; conn = new SqlConnection(cs); conn.Open(); SqlParameter\[\] paras = new SqlParameter\[2\]; paras\[0\] = new SqlParameter("@accountName", accountName); paras\[1\] = new SqlParameter("@balance", System.Data.SqlDbType.Float); paras\[1\].Direction = System.Data.ParameterDirection.Output; SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.CommandType = System.Data.CommandType.StoredProcedure; cmd.CommandText = "GetBalance"; for (int i = 0; i < paras.Length; i++) { cmd.Parameters.Add(paras\[i\]); } int n = cmd.ExecuteNonQuery(); object o = cmd.Parameters\["@balance"\].Value; return Convert.ToDouble(o); } ``` 这段代码使用C#语言连接数据库,并调用名为"GetBalance"的存储过程。它传递一个名为"accountName"的参数,并接收一个名为"balance"的输出参数。最后,它将输出参数的值转换为double类型并返回。 总之,SQL Server存储过程是一种在数据库中创建和保存的预编译SQL语句的集合,可以通过执行语句来调用并传递参数。 #### 引用[.reference_title] - *1* [SQL Server基础之存储过程](https://blog.csdn.net/q751681219/article/details/125267448)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [SQL Sever数据库存储过程](https://blog.csdn.net/aqiuisme/article/details/123177083)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [关于SQL Server 存储过程的一点问题](https://blog.csdn.net/weixin_33704234/article/details/85470101)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值