<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          SpringBoot + SqlServer+Mybatis

          共 9873字,需瀏覽 20分鐘

           ·

          2021-03-13 02:01

          前提:項目搭建需要數(shù)據(jù)庫,運行這個項目之前需要先部署好sqlserver數(shù)據(jù)庫,上一篇文章簡單的用docker部署了sqlserver數(shù)據(jù)庫,有需要的可以去看下:Docker安裝部署Sql Server

          maven引入

          <?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">

          <modelVersion>4.0.0</modelVersion>
          <parent>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-parent</artifactId>
          <version>2.4.3</version>
          <relativePath/> <!-- lookup parent from repository -->
          </parent>
          <groupId>org.jeemp</groupId>
          <artifactId>jeemp-sqlserver</artifactId>
          <version>1.0.0</version>
          <name>jeemp-sqlserver</name>
          <description>Demo project for Spring Boot</description>
          <dependencies>
          <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-web</artifactId>
          </dependency>

          <dependency>
          <groupId>com.microsoft.sqlserver</groupId>
          <artifactId>mssql-jdbc</artifactId>
          <scope>runtime</scope>
          </dependency>

          <dependency>
          <groupId>org.mybatis.spring.boot</groupId>
          <artifactId>mybatis-spring-boot-starter</artifactId>
          <version>1.3.2</version>
          </dependency>

          <dependency>
          <groupId>org.projectlombok</groupId>
          <artifactId>lombok</artifactId>
          </dependency>

          <dependency>
          <groupId>org.apache.commons</groupId>
          <artifactId>commons-lang3</artifactId>
          </dependency>

          </dependencies>

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

          </project>

          application.properties配置


          #端口號
          server.port=8083
          #上下文
          server.servlet.context-path=/jeemp

          #sql server jdbc配置
          spring.datasource.url=jdbc:sqlserver://172.16.10.54:1433;DatabaseName=jeemp
          spring.datasource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
          spring.datasource.username=sa
          spring.datasource.password=Root123456

          #開發(fā)環(huán)境配置mapper層開啟debug模式打印sql調(diào)用,其他環(huán)境不要
          logging.level.org.jeemp.sqlserver.dao=debug
          #數(shù)據(jù)庫mapper文件路徑
          mybatis.mapper-locations=classpath:mapper/**/*.xml
          #指定POJO掃描包來讓mybatis自動掃描到自定義POJO
          mybatis.type-aliases-package=org.jeemp.sqlserver.entity

          #hikari數(shù)據(jù)庫連接池配置
          spring.datasource.hikari.minimum-idle=5
          spring.datasource.hikari.maximum-pool-size=15
          spring.datasource.hikari.auto-commit=true
          spring.datasource.hikari.idle-timeout=30000
          spring.datasource.hikari.pool-name=DatebookHikariCP
          spring.datasource.hikari.max-lifetime=900000
          spring.datasource.hikari.connection-timeout=15000
          spring.datasource.hikari.connection-test-query=SELECT 1

          創(chuàng)建User

          package org.jeemp.sqlserver.entity.po;

          import lombok.Data;

          import java.sql.Timestamp;

          /**
          * @author: xueshan.zeng
          * @date: 2019/8/7
          */

          @Data
          public class User {
          private int userId;
          private String username;
          private String password;
          private Timestamp createTime;
          private Timestamp updateTime;
          }

          創(chuàng)建UserMapper

          package org.jeemp.sqlserver.dao;

          import org.jeemp.sqlserver.entity.po.User;
          import org.apache.ibatis.annotations.Mapper;

          import java.util.List;

          /**
          * @author JackRen
          * @date 2021/3/11
          *
          **/

          @Mapper
          public interface UserMapper {
          /**
          * 獲取User信息
          *
          * @param pageStart 起始頁碼
          * @param pageEnd 結(jié)束頁碼
          * @param fetchAll 是否查詢?nèi)?br> * @return User信息
          */

          List<User> selectModels(int pageStart, int pageEnd, boolean fetchAll);
          /**
          * 獲取User信息個數(shù)
          *
          * @return User信息個數(shù)
          */

          int selectCount();

          void insertUser(User user);

          int updateUserById(User user);
          }

          創(chuàng)建Service

          package org.jeemp.sqlserver.service.impl;

          import org.jeemp.sqlserver.dao.UserMapper;
          import org.jeemp.sqlserver.entity.bo.BasePage;
          import org.jeemp.sqlserver.entity.dto.UserInfoParamsDTO;
          import org.jeemp.sqlserver.entity.po.User;
          import org.jeemp.sqlserver.entity.vo.UserInfoExport;
          import org.jeemp.sqlserver.service.IUserService;
          import org.jeemp.sqlserver.utils.StringConvertUtils;
          import org.springframework.stereotype.Service;

          import javax.annotation.Resource;
          import java.util.List;

          /**
          * @author JackRen
          * @date 2021/3/11
          *
          **/

          @Service("userService")
          public class UserServiceImpl implements IUserService {
          private static final String ONE = "1";

          @Resource
          private UserMapper userMapper;

          @Override
          public UserInfoExport getUserInfo(UserInfoParamsDTO userInfoParamsDTO) {
          checkParams(userInfoParamsDTO);

          BasePage basePage = StringConvertUtils.transferBasePage(userInfoParamsDTO.getPageIndex(), userInfoParamsDTO.getPageSize());
          List<User> users = userMapper.selectModels(basePage.getPageStart(), basePage.getPageEnd(), ONE.equals(userInfoParamsDTO.getFetchAll()));
          int total = userMapper.selectCount();

          return new UserInfoExport(users, total + "");
          }

          @Override
          public void getUserData(User user) {
          userMapper.insertUser(user);
          }

          @Override
          public void updateUserById(User user) {
          int ret = userMapper.updateUserById(user);
          System.out.println(ret);
          }

          private void checkParams(UserInfoParamsDTO userInfoParamsDTO) {
          try{
          Long.parseLong(userInfoParamsDTO.getPageIndex());
          Long.parseLong(userInfoParamsDTO.getPageSize());
          }catch (Exception e){
          throw new RuntimeException("請求不合法");
          }
          }
          }

          創(chuàng)建UserMapper.xml

          <?xml version="1.0" encoding="UTF-8" ?>
          <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
          <mapper namespace="org.jeemp.sqlserver.dao.UserMapper">
          <resultMap id="BaseResultMap" type="org.jeemp.sqlserver.entity.po.User">
          <result column="user_id" jdbcType="NUMERIC" property="userId" />
          <result column="username" jdbcType="VARCHAR" property="username" />
          <result column="password" jdbcType="VARCHAR" property="password" />
          <result column="create_time" jdbcType="VARCHAR" property="createTime" />
          <result column="update_time" jdbcType="VARCHAR" property="updateTime" />
          </resultMap>
          <sql id="selectModelsSql">
          select user_id,username,password,create_time,update_time,ROW_NUMBER() OVER (ORDER BY user_id ASC) as rn from [user]
          </sql>
          <select id="selectModels" resultMap="BaseResultMap">
          select a.*
          from (
          <include refid="selectModelsSql"></include>
          ) a
          <if test="fetchAll == false">
          where a.rn <![CDATA[>=]]> #{pageStart,jdbcType=INTEGER} and a.rn <![CDATA[<=]]> #{pageEnd,jdbcType=INTEGER}
          </if>
          </select>
          <select id="selectCount" resultType="int">
          select count(*)
          from (
          <include refid="selectModelsSql"></include>
          ) a
          </select>

          <insert id="insertUser" parameterType="org.jeemp.sqlserver.entity.po.User">
          insert into [user](user_id,username,password,create_time,update_time)values(#{userId},#{username},#{password},#{createTime},#{updateTime})
          </insert>

          <update id="updateUserById">
          update user
          <set>
          <if test="username != null">username=#{username}, </if>
          <if test="password != null">password=#{password}, </if>
          <if test="createTime != null">create_time=#{createTime}, </if>
          <if test="updateTime != null">update_time=#{updateTime}, </if>
          </set>
          where user_id=#{userId}
          </update>

          </mapper>

          Controller類

          package org.jeemp.sqlserver.controller;

          import org.jeemp.sqlserver.entity.dto.UserInfoParamsDTO;
          import org.jeemp.sqlserver.entity.po.User;
          import org.jeemp.sqlserver.service.IUserService;
          import org.jeemp.sqlserver.utils.IdUtil;
          import org.jeemp.sqlserver.utils.SnowflakeUtil;
          import org.springframework.web.bind.annotation.GetMapping;
          import org.springframework.web.bind.annotation.PostMapping;
          import org.springframework.web.bind.annotation.RequestBody;
          import org.springframework.web.bind.annotation.RestController;

          import javax.annotation.Resource;
          import java.sql.Timestamp;
          import java.util.Date;

          /**
          * @author JackRen
          * @date 2021/3/11
          *
          **/

          @RestController
          public class UserController {
          @Resource
          private IUserService userService;

          @GetMapping("userInfo")
          public Object getUserInfo(String pageIndex, String pageSize, String fetchAll){
          UserInfoParamsDTO userInfoParamsDTO = new UserInfoParamsDTO(pageIndex,pageSize,fetchAll);
          return userService.getUserInfo(userInfoParamsDTO);
          }

          @GetMapping("insertUserData")
          public void getUserData() {
          User user = new User();
          user.setUserId((int) SnowflakeUtil.nextId());
          user.setUsername(IdUtil.uuid());
          user.setPassword("123456");
          Date date = new Date();
          user.setCreateTime(new Timestamp(date.getTime()));
          user.setUpdateTime(new Timestamp(date.getTime()));
          userService.getUserData(user);
          }

          @PostMapping("updateUserData")
          public void updateUserById(@RequestBody User user) {
          userService.updateUserById(user);
          }

          }

          驗證測試

          插入方法調(diào)用:
          http://localhost:8083/jeemp/insertUserData


          查詢調(diào)用



          瀏覽 73
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  中文字幕a∨在线 | 黄色污污污网站 | 水蜜桃视频网 | 操xxx操xxx | 夜夜操夜夜操夜夜操 |