什么是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.在数据库中有对应上面的模型类的表
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
版权声明:本文为博主原创文章,转载请附上博文链接!