MyBatis学习

在学习MyBatis之前我们操作数据库的时候主要流程:

  1. 创建数据库连接 DataSource
  2. 通过DataSource获取数据库连接Connection
  3. 编写要执行带?占位符的SQL语句
  4. 通过Connection及SQL创建操作指令对象Statement
  5. 替换占位符,指定要替换的数据库字段类型,占位符索引以及要替换的值
  6. 使用Statement执行SQL语句
  7. 查询操作:返回结果集ResultSet,更新操作:返回更新的数量
  8. 处理结果
  9. 释放资源

 以上操作太麻烦,所以我们学习MyBatis

什么是MyBatis?

MyBatis是一款优秀的持久化框架,用于JDBC的开发。

持久化:指的就是持久化操作层,通常指数据访问层,用来操作数据库的。

MyBatis入门

1.创建工程(IDE版本2021.1.3)

MyBatis学习_第1张图片

MyBatis学习_第2张图片

 MyBatis学习_第3张图片

 2.引入依赖


		
			org.mybatis.spring.boot
			mybatis-spring-boot-starter
			2.3.1
		
		
		
			com.mysql
			mysql-connector-j
			runtime
		

3.创建yml文件(MyBatis_test是数据库名,可以自行修改)

spring:
 datasource:
  url: jdbc:mysql://127.0.0.1:3306/mybatis_test?characterEncoding=utf8&useSSL=false
  username: root
  password: 123456
  driver-class-name: com.mysql.cj.jdbc.Driver

 3.开始创作

1)创建数据库数据表(我用的是mysqlWorkbench)

MyBatis学习_第4张图片

2).创建一个UserInfo对象

 

package com.example.demo.model;

import lombok.Data;

import java.util.Date;

@Data
public class UserInfo {
    private Integer id;
    private String username;
    private String password;
    private Integer age;
    private Integer gender;
    private String phone;
    private Integer deleteFlag;
    private Date createTime;
    private Date updateTime;
}

3).创建mapper

package com.example.demo.mapper;

import com.example.demo.model.UserInfo;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.springframework.stereotype.Component;

import java.util.List;

@Mapper
public interface UerInfoMapper
{
    @Select("SELECT * FROM mybatis_test.userinfo")
    List selectAll();


}

 4).测试

package com.example.demo.controller;

import com.example.demo.mapper.UerInfoMapper;
import com.example.demo.model.UserInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
public class UserInfroController {
    @Autowired
    private UerInfoMapper uerInfoMapper;
    @RequestMapping("/selectAll")
    public List selectAll()
    {
       return uerInfoMapper.selectAll();
    }
}

5).运行结果

MyBatis学习_第5张图片 

注意

Mybatis的持久层接⼝规范⼀般都叫XxxMapper

创建数据表时,表名/字段名全都要写
@Mapper注解:表⽰是MyBatis中的Mapper接
• 程序运⾏时,框架会⾃动⽣成接⼝的实现类对象(代理对象),并给交Spring的IOC容器管理
• @Select注解:代表的就是select查询,也就是注解对应⽅法的具体实现内容.
 

 单元测试

1.在mapper文件中右击后点击generate

MyBatis学习_第6张图片

 2.创建test

 MyBatis学习_第7张图片

 3.设置test

MyBatis学习_第8张图片 

 4.加入日志,和注解

MyBatis学习_第9张图片 

注意一定要加上 @SpringBootTest注解,不然test中拿不到spring容器中的数据,会报错

MyBatis增删查改

package com.example.demo.mapper;

import com.example.demo.model.UserInfo;
import org.apache.ibatis.annotations.*;
import org.springframework.stereotype.Component;

import java.util.List;

@Mapper
public interface UerInfoMapper
{
    //查询全部
    @Select("SELECT * FROM mybatis_test.userinfo")
    List selectAll();
    //查询某一个#相当于一个变量,相当于jdbc中预编译中的?
    @Select("SELECT * FROM userinfo where id=#{userId}")
    UserInfo selectOne(@Param("userId")Integer id);//重命名
    //增
    @Insert("insert into userinfo (username, password, age, gender, phone) values(\"zhaoliu\",\"zhaoliu\",19,1,\"18700001234\")")
            Integer insert(UserInfo userInfo);
    //删
    @Delete("delete from userinfo where id=2")
    void delete();
    //改
    @Update("update userinfo set username='zhangsan' where id=1")
    void UpdateOne();

}

 日志:

MyBatis学习_第10张图片

你可能感兴趣的:(mybatis,学习,oracle)