首先在新建项目的时候,选择勾选sql相关组件,也可以后期手动添加
勾选组件如下图,本项目采用的mysql数据库,因此勾选mysql连接库,然后就是勾选mybatis框架
mybaits结合Springboot大大的减轻了JDBC的操作繁琐
开发工具IDEA2020版本
File-New- Project
在application.properties配置文件中开启数据库连接,并且添加mybatis相关配置
#mysql连接配置
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/mytest?
characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=root
#配置mybatis编写sql所在的xml文件所在的路径,在采用xml编写sql的时候必须配置
mybatis.mapper-locations=classpath*:/dao/*.xml
#开启自动驼峰转换
mybatis.configuration.map-underscore-to-camel-case=true
#允许使用方法签名中的名称作为语句参数名称。 为了使用该特性,你的项目必须采用 Java 8 编译,并且 加上 -parameters 选项。(新增于 3.4.1)
mybatis.configuration.use-actual-param-name=true
jdbc:mysql协议,172.0.0.1是IP,3306默认端口, live数据库,characterEncoding=utf8编码,useSSL=false套接绳链接,serverTimezone=Asia/Shanghai时钟时区(mysql5.7以上必须加)
在项目根包名下(可以是子集但是不能在根包名外面),新建一个专门存放数据库接口的包,并且在里面编写一个interface
这里在项目根包名下新建了一个dao的包名,并且在里面新建了一个UserDao的接(Interface)UserDao代码如下:
package com.spring.mebatistdemo.dao;
import com.spring.mebatistdemo.model.User;
public interface UserDao {
User findUserByUsernameAndPassword(String username, String password);
}
在resource目录下新建一个mapper的路径(与之前配置文件中配置的路径保持一致),编写mybatis的sql对应的xml文件
非Java文件放在resources classpath
比如这里编写一个UserDao.xml,xml文件名随意(最好与java中的dao接口名保持一致,方便阅读),代码如下:
<?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.spring.mebatistdemo.dao.UserDao">
<select id="findUserByUsernameAndPassword"
resultType="com.spring.mebatistdemo.model.User">select * from user where username = #{username} and password = #{password} </select>
</mapper>
数据库操作封装到一个包里面(比如创建一个dao包)
在到包里面创建一个操作数据库的接口
New Java Class->Interface
写自己需要的业务
创建一个存载实体类的包(model)
package com.spring.mebatistdemo.model;
public class User {
private int id;
private String username;
private String password;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
4.最后写个Controller测试
package com.spring.mebatistdemo.controller;
import com.spring.mebatistdemo.dao.UserDao;
import com.spring.mebatistdemo.model.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class UserContronller {
@Autowired
UserDao userDao;
@RequestMapping("/login")
public User login(String username, String password){
User user = userDao.findUserByUsernameAndPassword(username,password);
if(user!=null){
System.out.println("登录成功");
return user;
}
System.out.println("用户或密码错误");
return null;
}
}
浏览器运行结果如下图: