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 · 访问量 1463

猜你喜欢

转载自blog.csdn.net/qq_40791070/article/details/100584188