从0开始开发SpringBoot+vue前后端分离项目
一、创建Springboot项目
通过idea自动创建项目,这里不再一一赘述了。
二、引入依赖
目前引入的依赖有lombok、mysql、mybatis
可以直接复制以下代码,放置在pom.xml
中<dependencies> </dependencies>
这个标签之间
<!-- https://mvnrepository.com/artifact/org.mybatis.spring.boot/mybatis-spring-boot-starter -->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.3</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.projectlombok/lombok-maven-plugin -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok-maven-plugin</artifactId>
<version>1.18.20.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<scope>runtime</scope>
</dependency>
三、插件推荐
点击File->Settings->Plugins搜索以下插件安装
1.Mybatis Log Free
安装完成后需要点击Tools->Mybatis Log Free才可正常使用
使用效果如下,后面使用过程中再进行详细介绍
2.Free MyBatis Tools
安装完成后,可以让mapper中的对象和Mapper.xml之间来回跳转,其次可以核对mapper中的方法和xml中id是否一致,不一致肯定不能跳转啊
四、创建数据库表
在Navicat中创建一个名字为mybatis的数据库,新建查询,复制下面代码并执行
-- auto-generated definition
create table user_info
(
user_id bigint auto_increment comment '用户Id'
primary key,
username varchar(50) default '' null comment '用户名',
user_password varchar(50) default '' null comment '用户密码',
create_time timestamp default CURRENT_TIMESTAMP null comment '创建时间',
update_time timestamp default CURRENT_TIMESTAMP null on update CURRENT_TIMESTAMP comment '更新时间'
);
user_info表生成后
五、配置文件
这里我是用的application.yml
直接贴源码吧
#端口号
server:
port: 8082
#mysql
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
#请修改成你的mysql账户
username: root
#请修改成你的Mysql密码
password:
url: jdbc:mysql://localhost:3306/mybatis?serverTimezone=GMT%2B8&characterEncoding=utf8&useSSL=true
#开启mybaits日志
logging:
level:
com.dl.mybatis02.mapper:
debug
#mybatis配置
mybatis:
#mapper.xml的地址,这里一定要填,不然不能映射
mapper-locations: classpath:mapper/*.xml
#驼峰命名法,可要可不要
configuration:
map-underscore-to-camel-case: true
六、实体类
User:
package com.dl.mybatis02.entity;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.util.Date;
@Data //省去getter setter方法
@AllArgsConstructor //有参构造
@NoArgsConstructor //无参构造
public class User {
private Long userId;
private String userName;
private String userPassword;
private Date createTime;
private Date updateTime;
}
七、Mapper
1.Mapper接口:
创建一个UserMapper的接口
package com.dl.mybatis02.mapper;
import com.dl.mybatis02.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface UserMapper {
/**
* @Description:登录
* @param: [username, password]
* @return: com.dl.mybatis02.entity.User
* @Author: XXX
* @Date: 2023/3/30
*/
User login(@Param("username") String username, @Param("password") String password);
}
2.Mapper.xml:
在resource目录下创建一个userMapper.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.dl.mybatis02.mapper.UserMapper">
<select id="login" resultType="com.dl.mybatis02.entity.User" parameterType="com.dl.mybatis02.entity.User">
select * from user_info where username=#{username} and user_password=#{password}
</select>
</mapper>
如果这两个写对了的情况下, 会出现2个小箭头
八、测试
package com.dl.mybatis02;
import com.dl.mybatis02.entity.User;
import com.dl.mybatis02.mapper.UserMapper;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import java.time.LocalDateTime;
@SpringBootTest
@Slf4j
class Mybatis02ApplicationTests {
@Autowired
private UserMapper userMapper;
@Test
void userMapperTest() {
User user=new User();
user.setUserName("xxx");
user.setUserPassword("123456");
userMapper.login(user.getUserName(), user.getUserPassword());
log.info("用户登录成功!!"+ LocalDateTime.now());
}
}
九、结果展示