spring boot+sqlite+mybatis实现增删改查例子

主要是更换了下sqlite的数据源而已,其他代码不变。

我都贴一下吧,这个算是比较通用的基础增删改查代码。

 

 

1.创建test.db

可以使用Idea自带的Database插件配置,也可以命令行创建,具体我就不讲了,看下图

初始化数据:

create table tb_user
(
  id integer primary key  autoincrement not null,
  username  varchar(20),
  sex varchar(10),
  age integer
)
;


insert into tb_user(username,sex,age) values ('Jack','male',20);
insert into tb_user(username,sex,age) values ('Lucy','female',21);
insert into tb_user(username,sex,age) values ('Dylan','male',18);


 

 

2.配置application.yml

spring:
  datasource:
    driver-class-name: org.sqlite.JDBC
    url: jdbc:sqlite:D:/ideaprojects/sqlitedemo/src/main/resources/test.db
    username:
    password:

#mybatis
mybatis:
  mapperLocations: classpath*:mapper/*.xml

3.写实体类

package com.laoxu.test.sqlitedemo.model;

import lombok.Data;

/**
 * @Description:
 * @Author laoxu
 * @Date 2019/11/5 22:25
 **/
@Data
public class User {
    private Integer id;
    private String username;
    private String sex;
    private Integer age;
}

 

4.写mapper接口和xml文件

package com.laoxu.test.sqlitedemo.mapper;

import com.laoxu.test.sqlitedemo.model.User;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * @Description:
 * @Author laoxu
 * @Date 2019/11/5 22:27
 **/
@Mapper
@Component
public interface UserDao {
    int insert(User user);
    User select(Integer id);
    List<User> selectAll();
    int delete(Integer id);
    int update(User user);

}
<?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.laoxu.test.sqlitedemo.mapper.UserDao">
    <resultMap id="userMap" type="com.laoxu.test.sqlitedemo.model.User">
        <result property="id" column="id"/>
        <result property="username" column="username"/>
        <result property="sex" column="sex"/>
        <result property="age" column="age"/>
    </resultMap>

    <insert id="insert" parameterType="com.laoxu.test.sqlitedemo.model.User">
      insert into tb_user (
             username,
             sex,
             age
              )
      VALUES (
            #{username},
            #{sex},
            #{age}
          )
    </insert>

    <update id="update" parameterType="com.laoxu.test.sqlitedemo.model.User">
        update tb_user
        set username=#{username},
            sex=#{sex},
            age = #{age}
        where id=#{id}
    </update>

    <delete id="delete">
        DELETE FROM tb_user
        WHERE id = #{id}
        <!--IN
        <foreach collection="ids" index="index" item="item" open="(" separator="," close=")">
            #{item}
        </foreach>-->
    </delete>

    <select id="select" parameterType="java.lang.Integer" resultMap="userMap">
        select id, username, sex, age
        from tb_user
        where id = #{id}
    </select>

    <select id="selectAll" resultMap="userMap">
        select id,username,sex,age
        from tb_user
    </select>

</mapper>

 

5.写service和controller

package com.laoxu.test.sqlitedemo.service;

import com.laoxu.test.sqlitedemo.mapper.UserDao;
import com.laoxu.test.sqlitedemo.model.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import javax.jws.soap.SOAPBinding;
import java.util.List;

/**
 * @Description:
 * @Author laoxu
 * @Date 2019/11/5 23:10
 **/
@Service
public class UserService {
    @Autowired
    private UserDao userDao;

    public boolean add(User user) {
        return userDao.insert(user) > 0;
    }

    public User getOne(int id) {
        return userDao.select(id);
    }

    public List<User> getAll() {
        return userDao.selectAll();
    }

    public boolean modify(User user) {
        return userDao.update(user) > 0;
    }

    public boolean remove(Integer id) {
        return userDao.delete(id) > 0;
    }


}

 

package com.laoxu.test.sqlitedemo.controller;

import com.laoxu.test.sqlitedemo.model.User;
import com.laoxu.test.sqlitedemo.service.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

/**
 * @Description:
 * @Author laoxu
 * @Date 2019/11/5 23:13
 **/
@RestController
@RequestMapping("/api/user")
public class UserController {
    @Autowired
    private UserService userService;

    @GetMapping("/get/{id}")
    public User get(@PathVariable Integer id){
        return userService.getOne(id);
    }

    @GetMapping("/getAll")
    public List<User> getAll(){
        return userService.getAll();
    }

    @PostMapping("/remove")
    public Boolean remove(@RequestParam Integer id){
        return userService.remove(id);
    }

    @PostMapping("/add")
    public Boolean add(@RequestBody User user){
        return userService.add(user);
    }

    @PostMapping("/modify")
    public Boolean update(@RequestBody User user){
        return userService.modify(user);
    }

}

 

6.启动项目进行测试

 

---------------------

 

----------------------

-----------------------

 

源码地址:

https://gitee.com/indexman/sqlitedemo

 

 

 

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值