MyBatis第一个MyBatis查询
大家好,我是bug郭,一名双非科班的在校大学生。对C/JAVA、数据结构、Linux及MySql、算法等领域感兴趣,喜欢将所学知识写成博客记录下来。 希望该文章对你有所帮助!如果有错误请大佬们指正!共同学习交流
作者简介:
- CSDN java领域新星创作者blog.csdn.net/bug…
- 掘金LV3用户 juejin.cn/user/bug…
- 阿里云社区专家博主,星级博主,developer.aliyun.com/bug…
- 华为云云享专家 bbs.huaweicloud.com/bug…
第一个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.yml
SpringBoot配置文件中进行配置即可
# 配置连接数据库的地址用户名密码,数据库类型!
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条数据和数据库中的数据一样!
- 点赞
- 收藏
- 关注作者
评论(0)