springboot +mybatis 用xml配置連接數據源

pom.xml

springboot整合mybatis+mysql需要添加一些依賴

        <!--連接mysql數據庫-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        
        <!--引入mybatis-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>1.3.1</version>
        </dependency>

這裏,我額外加了一個依賴,用來方便不用再寫set,get,toString方法

        <!--作用於實體類,自動封裝get,set方法-->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.16.10</version>
        </dependency>

配置 application.properties

#連接mysql數據庫
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf8 &serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

#映射mybatis
mybatis.mapper-locations=classpath:com/example/demo/mapper/*Mapper.xml
mybatis.type-aliases-package=com.example.demo.pojo
#打印sql語句
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

表數據及結構

DROP TABLE IF EXISTS `t_user`;
CREATE TABLE `t_user` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `phone` varchar(11) DEFAULT NULL COMMENT '手機號',
  `name` varchar(50) DEFAULT NULL COMMENT '姓名',
  `uuid` varchar(64) DEFAULT NULL COMMENT '鹽',
  `pwd` varchar(64) DEFAULT NULL COMMENT '密碼',
  PRIMARY KEY (`id`),
  UNIQUE KEY `t_user_uq_phone` (`phone`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8mb4;

-- ----------------------------
-- Records of t_user
-- ----------------------------
INSERT INTO `t_user` VALUES ('2', '15180474821', '周芷若', 'f69a4dd9-3d4b-4dcc-b14a-38409cc60139', 'fbfc54bc51cc3ce90584ca2e052670c8');
INSERT INTO `t_user` VALUES ('3', '13236170925', '敏敏特穆爾', '0ce101df-b9e2-47ad-b279-122107c4ff0a', '6738b1739ff9d78855a241ebb0665a3e');
INSERT INTO `t_user` VALUES ('4', '13479769366', '張無忌', 'bab88b92-3b99-4a8d-a778-f3219af24718', '25b22e9c8a167b55ca29d9ae5b47afb2');

com.example.demo 目錄下的代碼

項目結構

controller 爲控制層,dao爲連接mybatis的接口,service.impl爲實現類,mapper爲連接數據庫的sql語句配置
在這裏插入圖片描述

注意,若mapper裏的配置文件寫在scr.main.java 目錄下面,並且編譯工具爲idea 則需在pom.xml文件下添加入下代碼;若爲eclipse,則不需添加;若寫在resources目錄下,都不需要。這裏借鑑了一篇博客:https://blog.csdn.net/Sacredness/article/details/82533097

pom.xml裏添加的配置爲

        <resources>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.xml</include>
                </includes>
            </resource>
        </resources>

在springboot 的入口 DemoApplication.java處添加

@MapperScan("com.example.demo.dao")

實體類


import lombok.Data;

@Data
public class Tuser {

    private  Integer id;
    private String name;
    private  String phone;
    private  String uuid;
    private  String pwd;
}

TuserDao.java


import com.example.demo.pojo.Tuser;
import org.springframework.stereotype.Repository;

import java.util.List;

@Repository
public interface TuserDao {
    //查看所有Tuser信息
    List<Tuser> getListOfTuser();

    //根據id查找Tuser對象
    Tuser getTuserById(Integer id);

    //修改
    int UpdateByTuser(Tuser tuser);

    //刪除
    boolean deleteById(Integer id);

    //增加
    int insertOfTuser(Tuser tuser);
}

service 裏的TuserService.java 同 TuserDao.java一樣

service.impl


import com.example.demo.dao.TuserDao;
import com.example.demo.pojo.Tuser;
import com.example.demo.service.TuserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class Tuserserviceimpl implements TuserService {

    @Autowired
    private TuserDao dao;

    @Override
    public List<Tuser> getListOfTuser() {
        return dao.getListOfTuser();
    }

    @Override
    public Tuser getTuserById(Integer id) {
        return dao.getTuserById(id);
    }

    @Override
    public int UpdateByTuser(Tuser tuser) {
        return dao.UpdateByTuser(tuser);
    }

    @Override
    public boolean deleteById(Integer id) {
        return dao.deleteById(id);
    }

    @Override
    public int insertOfTuser(Tuser tuser) {
        return dao.insertOfTuser(tuser);
    }
}

控制層

@RestController
@RequestMapping("/tuser/")
public class TuserController {

    @Autowired
    private TuserService tuserServiceimpl;

    @GetMapping("getListOfTuser")
    public Object getListOfTuser(){
        List<Tuser> list=tuserServiceimpl.getListOfTuser();
        return list;
    }

    @GetMapping("getTuserById")
    public Object getTuserById(Integer id){
        Tuser tuser=tuserServiceimpl.getTuserById(id);
        return tuser;
    }

    @GetMapping("UpdateByTuser")
    public Object UpdateByTuser(){
        Tuser tuser=new Tuser();
        tuser.setId(2);
        tuser.setName("鍾花花");
        tuser.setPhone("11111111111");
        tuser.setPwd("123456");
        tuser=getMd5(tuser);
        int num=tuserServiceimpl.UpdateByTuser(tuser);
        return "成功修改的個數"+num;
    }

    @GetMapping("deleteById")
    public Object deleteById(Integer id){
        boolean  Result=tuserServiceimpl.deleteById(id);
        return "是否成功刪除"+Result;
    }


   @RequestMapping("insertOfTuser")
    public Object insertOfTuser(){
        Tuser tuser=new Tuser();
        tuser.setName("鍾花花");
        tuser.setPhone("12345678912");
        tuser.setPwd("123456");
        tuser=getMd5(tuser);
       int num= tuserServiceimpl.insertOfTuser(tuser);
       return "成功增加的個數"+num;
    }

    public Tuser getMd5(Tuser tuser){
        String pwd=tuser.getPwd();
        //生成uuid
        String uuid= String.valueOf(UUID.randomUUID());
        tuser.setUuid(uuid);
        //springboot自帶的md5加密工具
        String md5Password = DigestUtils.md5DigestAsHex((uuid+pwd).getBytes());
        tuser.setPwd(md5Password);
        return tuser;
    }
}

mapper 裏的配置

<?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="com.example.demo.dao.TuserDao">

    <sql id="Base_Column_List">
    id, phone, name, uuid, pwd
    </sql>

    <select id="getListOfTuser"  resultType="Tuser">
        select
        <include refid="Base_Column_List" />
        from t_user
    </select>

    <select id="getTuserById" resultType="Tuser" parameterType="java.lang.Integer">
        select
        <include refid="Base_Column_List" />
        from t_user where id=#{id}
    </select>

    <update id="UpdateByTuser" parameterType="Tuser" >
         update  t_user
        <set>
            <if test="phone != null">
                phone = #{phone,jdbcType=VARCHAR},
            </if>
            <if test="name != null">
                name = #{name,jdbcType=VARCHAR},
            </if>
            <if test="uuid != null">
                uuid = #{uuid,jdbcType=VARCHAR},
            </if>
            <if test="pwd != null">
                pwd = #{pwd,jdbcType=VARCHAR},
            </if>
        </set>
        where id = #{id,jdbcType=INTEGER}
    </update>

    <delete id="deleteById" parameterType="java.lang.Integer">
        delete  from  t_user where id=#{id}
    </delete>

    <insert id="insertOfTuser" parameterType="Tuser">
        <selectKey keyProperty="id" order="AFTER" resultType="java.lang.Integer">
            SELECT LAST_INSERT_ID()
        </selectKey>
        insert into t_user
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="phone != null">
                phone,
            </if>
            <if test="name != null">
                name,
            </if>
            <if test="uuid != null">
                uuid,
            </if>
            <if test="pwd != null">
                pwd,
            </if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides=",">
            <if test="phone != null">
                #{phone,jdbcType=VARCHAR},
            </if>
            <if test="name != null">
                #{name,jdbcType=VARCHAR},
            </if>
            <if test="pwd != null">
                #{uuid,jdbcType=VARCHAR},
            </if>
            <if test="pwd != null">
                #{uuid,jdbcType=VARCHAR},
            </if>
        </trim>
    </insert>
</mapper>

運行結果

  1. 運行查看所有Tuser 對象的信息 http://localhost:8080/tuser/getListOfTuser在這裏插入圖片描述
  2. 根據id查看Tuser http://localhost:8080/tuser/getTuserById?id=2在這裏插入圖片描述
  3. 修改信息 http://localhost:8080/tuser/UpdateByTuser在這裏插入圖片描述
    4.增加信息 http://localhost:8080/tuser/insertOfTuser在這裏插入圖片描述
發佈了15 篇原創文章 · 獲贊 4 · 訪問量 2147
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章