MyBatis第一个MyBatis查询

举报
bug郭 发表于 2022/10/06 22:44:40 2022/10/06
【摘要】 大家好,我是bug郭,一名双非科班的在校大学生。对C/JAVA、数据结构、Linux及MySql、算法等领域感兴趣,喜欢将所学知识写成博客记录下来。 希望该文章对你有所帮助!如果有错误请大佬们指正!共同学习交流作者简介:CSDN java领域新星创作者blog.csdn.net/bug…掘金LV3用户 juejin.cn/user/bug…阿里云社区专家博主,星级博主,developer.a...

大家好,我是bug郭,一名双非科班的在校大学生。对C/JAVA、数据结构、Linux及MySql、算法等领域感兴趣,喜欢将所学知识写成博客记录下来。 希望该文章对你有所帮助!如果有错误请大佬们指正!共同学习交流

作者简介:

第一个MyBatis查询

创建数据库

我们的MyBatis是服务于数据库的,如果我们的数据库都没有,那还算个屁的MyBatis项目!

-- 创建数据库
create database if not exists mycnblog;

-- 选中数据库
use mycnblog;
-- 创建用户信息表
create table if not exists userinfo(id int(11) primary KEY,
        usename varchar(100) unique,
        password varchar(1024),
        photo varchar(1024),
        createtime datetime default CURRENT_TIMESTAMP,
        updatetime datetime default CURRENT_TIMESTAMP,
        state int(11) default 1
        );

引入MyBatis框架依赖

首先我们需要创建以SpringBoot项目,然后引入MyBatis框架依赖

如果你已经创建好了项目,而又要进行添加框架依赖,你可以在IDEA中,下载Edit Starters插件,然后进行添加!

在这里插入图片描述

在这里插入图片描述

我们这里需要添加2个框架依赖支持,一个是Mybatis框架依赖支持,一个是MySQL数据库的依赖!

配置连接字符串和Mybatis

  • 数据库连接字符串设置(数据库的地址,用户名,密码信息等!)
  • Mybatis的xml文件配置

配置连接字符串

我们在application.ymlSpringBoot配置文件中进行配置即可

# 配置连接数据库的地址用户名密码,数据库类型!
spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/java_2022?characterEncoding=utf8&useSSL=false
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver

配置MyBatis中的xml路径

# 配置MyBatis中的xml路径,所有MyBatis的xml文件都在这个配置下!
mybatis:
  mapper-locations: classpath:mapper/**Mapper.xml

在这里插入图片描述
也是我们后面关于MyBatis的xml文件都会放在 mapper中!

添加业务代码

如果一个用户要获取数据库中的数据大致的业务逻辑如下!
在这里插入图片描述

添加实体类

假如我们需要进行登入功能,那我们肯定要先有一个用户实体
这里的用户实体要和数据库中的表对应!

在这里插入图片描述

package com.example.demo.demo;

import lombok.Data;

import java.sql.Timestamp;
@Data //setter,get方法!
public class User {
    int id;
    String username;
    String password;
    String photo;
    Timestamp cretetime;
    Timestamp updatetime;
    int state;
}

添加UserMapper.xml

数据持久层的实现,Mybatis的固定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="com.example.demo.mapper.UserMapper">
          <!--这里添加具体实现sql-->
</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.example.demo.mapper.UserMapper">
    <!--这里的select表示是查询SQL,id是对应实现接口名,resultType是返回值类型
     这里的返回值类型是全限定类型类名java源代码根目录开始!
     然后这里面编写具体的SQL语句!不需要;结尾!-->
    <select id="getAll" resultType="com.example.demo.model.User">
      select * from userinfo
    </select>
</mapper>

<mapper> 标签:需要指定namespace 属性,表示命名空间,值为 mapper接口的全限定名,包括全包名.类名。
<select>查询标签:是用来执行数据库的查询操作的
id:是和 Interface(接口)中定义的方法名称一样的,表示对接口的具体实现方法。
resultType:查询返回的数据类型,也就是我们刚定义的实体类型

添加Service层代码

package com.example.demo.service;

import com.example.demo.mapper.UserMapper;
import com.example.demo.model.User;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;
@Service
public class UserService {
    @Resource //注入usermapper
    private UserMapper userMapper;
    public List<User> getAll(){
        return userMapper.getAll();
    }
}

添加Controlle层代码

package com.example.demo.controller;

import com.example.demo.model.User;
import com.example.demo.service.UserService;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

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

@Controller
@ResponseBody
@RequestMapping("/user")
public class UserController {
    @Resource
    private UserService userService;
    @RequestMapping("/getAll")
    public List<User> getAll(){
        return userService.getAll();
    }
}

运行代码,然后进行验证结果!

在这里插入图片描述
我们查询到2条数据和数据库中的数据一样!
在这里插入图片描述

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。