描述使用Mybatis来进行数据库操作的过程

什么是Mybatis?维基百科是这样定义的:Mybatis是一个Java持久化框架,它通过XML描述符注解把对象与储存过程或SQL语句关联起来。通俗点说就是Mybatis是对JPA(Java持久化API,一个Java应用程序接口规范)的实现,是为了简化数据库操作过程而衍生出来的产品。

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------

使用步骤:(以IDEA中为例)

1.在application.yml中进行配置数据源等信息

spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/bookshop?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC
    username: root
    password: root
  servlet:
    multipart:
      enabled: true
      max-request-size: 2MB
      max-file-size: 2MB
mybatis:
  config-location: classpath:/mybatis/mybatis_config.xml
  mapper-locations: classpath:/mybatis/mapper/*.xml
server:
  port: 8080

 2.创建好对应的模型类(User):

package com.bookShop.test.model;

public class User {
    private int user_id;

    private String user_name;

    private String user_password;

    private int user_pin;

    private String user_sex;

    private double user_wallet;

    private String user_email;

    private String user_phonenum;
    public User() {

    }

    public User(String user_name, String user_password, String user_sex, String user_phonenum) {
        this.user_name = user_name;
        this.user_password = user_password;
        this.user_sex = user_sex;
        this.user_phonenum = user_phonenum;
    }

    public User(String user_password, String user_phonenum) {
        this.user_password = user_password;
        this.user_phonenum = user_phonenum;
    }

    public User(int user_id, String user_name, String user_password, int user_pin, String user_sex, double user_wallet, String user_email, String user_phonenum) {
        this.user_id = user_id;
        this.user_name = user_name;
        this.user_password = user_password;
        this.user_pin = user_pin;
        this.user_sex = user_sex;
        this.user_wallet = user_wallet;
        this.user_email = user_email;
        this.user_phonenum = user_phonenum;
    }

    public void setUser_id(int user_id) {
        this.user_id = user_id;
    }

    public void setUser_name(String user_name) {
        this.user_name = user_name;
    }

    public void setUser_password(String user_password) {
        this.user_password = user_password;
    }

    public void setUser_pin(int user_pin) {
        this.user_pin = user_pin;
    }

    public void setUser_sex(String user_sex) {
        this.user_sex = user_sex;
    }

    public void setUser_wallet(double user_wallet) {
        this.user_wallet = user_wallet;
    }

    public void setUser_email(String user_email) {
        this.user_email = user_email;
    }

    public void setUser_phonenum(String user_phonenum) {
        this.user_phonenum = user_phonenum;
    }

    public int getUser_id() {
        return user_id;
    }

    public String getUser_name() {
        return user_name;
    }

    public String getUser_password() {
        return user_password;
    }

    public int getUser_pin() {
        return user_pin;
    }

    public String getUser_sex() {
        return user_sex;
    }

    public double getUser_wallet() {
        return user_wallet;
    }

    public String getUser_email() {
        return user_email;
    }

    public String getUser_phonenum() {
        return user_phonenum;
    }
    @Override
    public String toString() {
        return "User{" +
                "user_id=" + user_id +
                ", user_name='" + user_name + '\'' +
                ", user_password='" + user_password + '\'' +
                ", user_pin=" + user_pin +
                ", user_sex='" + user_sex + '\'' +
                ", user_wallet=" + user_wallet +
                ", user_email='" + user_email + '\'' +
                ", user_phonenum=" + user_phonenum +
                '}';
    }
}

3.在数据库中有对应上面的模型类的表

描述使用Mybatis来进行数据库操作的过程_第1张图片

描述使用Mybatis来进行数据库操作的过程_第2张图片 

4.在mapper中创建对应的UserMapper接口:

package com.bookShop.test.mapper;

import com.bookShop.test.model.User;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
@Mapper
public interface UserMapper {
    public User check_user(User user);
    public User find_userById(int user_id);
    public int update_password(User user);
    public int add_user(User user);
    public User find_byPhone(String user_phonenum);
 //修改密码
    public int changepassword(User user);
    //获取地址
    public List getaddress(User user);
    //修改昵称
    public int saveusername(User user);
    //修改支付密码
    public int changepin(User user);

    public User queryByUserId(int user_id);

}

5.对应上面接口的方法 ,有对应的UserMapper.xml文件,其中接口的方法名要和xml中每个方法的id相同,传入的参数和返回结果的类型要一一对应





    
    
        update user set user_password = #{user_password} where user_id = #{user_id}
    
    
        insert into user(user_name,user_password,user_sex,user_phonenum) values (#{user_name},#{user_password},#{user_sex},#{user_phonenum})
    
    
 	
        update user set user_password=#{user_password} where user_phonenum=#{user_phonenum}
    
    
    
        
        
        
        
        
    
    
        update user set user_pin=#{user_pin} where user_phonenum=#{user_phonenum}
    
    
        update user set user_name=#{user_name} where user_phonenum=#{user_phonenum}
    

    

6.最后就可以通过spring的控制反转(IOC)来调用一个UserMapper接口的实例的方法了,或者通过SqlSession来调用,下面 的这段代码是用的其他人的SqlSession代码:

//1、加载核心配置文件
 		InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
 	   //2、创建sqlSessionFactory
 		SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);		
 	   //3、创建sqlSession
 		SqlSession sqlSession = sqlSessionFactory.openSession();		
 	   //4、执行sql语句,获取结果(user)
 		User user = sqlSession.selectOne("getUserById", 1);		
 	   //5、打印结果
 		System.out.println(user);	
 	   //6.关闭sqlSession
 		sqlSession.close();
--------------------- 
作者:喵喵木子 
来源:CSDN 
原文:https://blog.csdn.net/qicui2835/article/details/80784850 
版权声明:本文为博主原创文章,转载请附上博文链接!

 

 

你可能感兴趣的:(描述使用Mybatis来进行数据库操作的过程)