Day5_创建mapper文件/编写查询语句sql

上一节主要介绍了springboot集成mybatis进行,以及后端开发思想。这一节主要编写sql映射文件,即真正的sql语句。实现增删改查用户数据,以及配置application.yml或者configuration文件实现控制台打印SQL语句。 

接着上一节编写续写~~~~~~

目录

UserService.java 

UserController.java

新增和更新UserDao修改如下:

创建UserMapper.xml文件

修改/更新用户数据测试

删除用户数据测试:

 UserController.java:

UserDao.java:

postman测试:

开启控制台 SQL 日志打印

配置application文件

 控制台打印效果


UserService.java 

@Service
public class UserService {
    @Autowired
    private UserDao userDao;

    public int save(User user) {
        if(user.getId() == null) { //user没有ID,表示是新增
            return userDao.insertUser(user);
        } else { // 否则为更新
            return userDao.updateUser(user);
        }

    }
}

 此时controller中引入UserService,通过service接口传输数据,UserController如下修改:

UserController.java

@Autowired
private UserService userService;

// 新增和修改
@PostMapping
public Integer save(@RequestBody User user) {
    return userService.save(user);
}

新增和更新UserDao修改如下:

@Update("update sys_user set username = #{username}, password = #{password}, nickname = #{nickname}," +
        "email = #{email}, phone = #{phone},address = #{address}, role = #{role} where id = #{id}")
int updateUser(User user);

 

创建UserMapper.xml文件

编写sql映射文件,即真正的sql语句。

在resources目录下创建与Java对应的mapper包,注意这里创建时要用/隔开

(创建对应的包是为了方便打包时,接口与映射文件在同一目录下)

在包下创建UserMapper.xml文件,编写sql语句。

<?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.smx.graproject.dao.UserDao">
    <update id="updateUser">
        update sys_user
        <set>
            <if test="username != null and username !=''">
                username = #{username},
            </if>
<!--            <if test="password != null and password !=''">-->
<!--                password = #{password},-->
<!--            </if>-->
            <if test="nickname != null and nickname !=''">
                nickname = #{nickname},
            </if>
            <if test="email != null and email !=''">
                email = #{email},
            </if>
            <if test="phone != null and phone !=''">
                phone = #{phone},
            </if>
            <if test="address != null and address !=''">
                address = #{address},
            </if>
<!--            <if test="role != null and role !=''">-->
<!--                role = #{role},-->
<!--            </if>-->
        </set>
        <where>
            id = #{id}
        </where>
    </update>
</mapper>

修改/更新用户数据测试

 此时数据可修改并且不会影响其他数据,如下所示:

 测试结果:

删除用户数据测试:

 UserController.java:

// 删除某条数据
@DeleteMapping("/{id}")
public Integer delete(@PathVariable Integer id) {
    return userDao.deleteById(id);
}

UserDao.java:

@Delete("delete from sys_user where id = #{id}")
Integer deleteById(@Param("id") Integer id);

postman测试:

 当我们id设为0传送,postman测试结果返回0时 说明没有删除任何数据。

 

 当我们id设为3传送,postman测试结果返回1时 说明id=3的数据已删除。

开启控制台 SQL 日志打印

配置application文件

在application.yml或configuration文件中配置

# 开启控制台 SQL 日志打印(以下两种方式)
# logging.level.com.smx.graproject.dao=debug
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

mybatis:
  mapper-locations: classpath:mapper/*.xml  #扫描所有mybatis的xml文件
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

 控制台打印效果


下一节专门写mybatis分页查询以及mybatis-plus分页查询。敬请期待~~~

猜你喜欢

转载自blog.csdn.net/weixin_46474921/article/details/130477967