目录
第一步:新建spring项目的时候,需要勾选mybatis框架和jdbc连接数据库的包
第二步:在resource目录下面的配置文件当中添加以下的内容:配置数据源
第三步:配置实体类
第四步:添加一个对象的增删改查方法
查询定义:
①查询所有:
②条件查询:
新增操作
删除操作
更新操作:
字段不一致的时候映射:
第一步:新建spring项目的时候,需要勾选mybatis框架和jdbc连接数据库的包
然后,检查pom.xml当中是否包含了以下的几个内容:
mybatis的依赖以及mysql连接数据库的依赖;
第二步:在resource目录下面的配置文件当中添加以下的内容:配置数据源
配置数据源:
spring.application.name=demo30
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.password=20021111aA#
spring.datasource.username=root
spring.datasource.url=jdbc:mysql://localhost:3306/my_blog_system?characterEncoding=utf8&useSSL=false
第三步:配置实体类
此处以一个user为例,这边需要配置一个user对象;这个对象在数据库当中对应的也是一个实体;
这里面的属性需要和数据库当中的user一一对应
package com.example.demo.Entity;import lombok.Data;/*** @author 25043*/
@Data
public class User {private int userId;private String username;private String password;
}
第四步:添加一个对象的增删改查方法
查询定义:
①查询所有:
新建一个mybatis目录,下面定义一个类;在此类当中定义一个查询的方法:
@Mapper注解用于标注持久层的对象;
@Select注解用来编写查询数据库的语句;
queryUserList方法用来返回查询数据库的内容。
/*** 访问数据库* @author 25043*/
@Mapper
public interface UserInfoMapper {/*** 返回数据列表* 查询列表@return*/@Select("select * from user")List<User> queryUserList();
}
②条件查询:
当传入userId的时候,相当于在select语句当中添加了查询userId的操作
//方法可以传入需要查询的参数@Select("select * from user where userId = #{userId}")User queryUserById(Integer userId);
传入参数重命名:当方法传入的userId和Param里面的id一致的时候,就不需要参数重命名,否则就需要通过@Param注解重命名这个参数;让@Param注解的参数和#后面的一致
/**方法可以传入需要查询的参数** 用户的uid@param userId* user对象@return*/@Select("select * from user where userId = #{id}")User queryUserById(@Param("id") Integer userId);
新增操作
在下面的步骤当中,insert语句的values当中,username和password都是user的属性。因此直接提取参数即可。这个参数就是方法传入的user的两个属性的值:username,password
/*** 传入的username和password为对应user的属性* 新增的user都西昂@param user* 插入成功,返回1@return*/@Insert("insert into user(username, password) "+" values(#{username},#{password})")Integer insert(User user);
删除操作
如下面的操作所示,就是删除操作:根据id删除:需要使用到@Delete注解。
/*** 用户的id@param id* 删除这个user@return*/@Delete("delete from user where userId = #{id}")Integer delete(Integer id);
更新操作:
/*** 更新* 密码@param password* 用户的id@param id*/@Update("update user set password=#{password} where userId=#{id}")Integer update(String password,Integer id);
字段不一致的时候映射:
首先需要定义一个BaseResult,其中的value为定义的数据库字段的映射;
@Mapper
public interface UserInfoMapper {/**方法可以传入需要查询的参数** 用户的uid@param userId* user对象@return*///第一步:定义一个BaseResult:value的值为@Result注解里面数据库实体之间的映射@Results(id ="BaseResult" ,value = {//column为数据库当中的字段,property为实体的字段名称@Result(column = "password1" ,property = "password")})//第二步:在对应查询的方法上面标注value="BaseResult",那么就可以查询出来对应的user对象了@ResultMap(value = "BaseResult")@Select("select * from user where userId = #{id}")User queryUserById(@Param("id") Integer userId);
}