基本流程

  1. 首先进行环境配置,设置application.properties文件配置
1
2
3
4
5
6
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/mybatis
spring.datasource.username=root
spring.datasource.password=123456
mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl
#开启日志输出可选
  1. 创建pojo对象,对应数据库字段

  2. 创建mapper对象,设置@Mapper注解,以及使用@Select注解编写SQL语句

1
2
3
4
5
@Mapper
public interface userMapper {
    @Select("select * from user")
    public List<user> list();
}
  1. 设置程序入口方法,使用@Autowired注入mapper对象,并调用方法完成数据操作

lombok

注解作用
@Getter/@Setter提供get/set方法
@ToString提供tostring方法
@EqualsAndHashCode提供equals和hashcode方法
@Data提供以上三种方法
@NoArgsConstructor提供无参构造
@AllArgsConstructor提供除static方法外的所有参数构造器

SQL预编译

可以防止sql注入,更快也更安全。

#{}占位符最终会替换为?,主要用在参数传递

${}占位符将参数直接拼接在sql语句中,对表名和列名进行动态设置时使用

CRUD操作

删除

1
2
3
4
5
6
public interface Mapper{
    @Delete("delete from user where id = #{id}")
    //如果形参中只有一个参数,则括号中可以随便写参数
    public int delete(Integer id);
    //int 表示受到影响的行数
}

新增

1
2
3
4
5
public interface Mapper{
    @Options(userGeneratedKeys = true,keyProperty = "id")
    @Insert("insert into table(v1,v2) values (#{v1},#{v2})")
    public void insert(Pojo pojo);
}

更新

1
2
3
4
public interface Mapper{
    @Update("update emp set v1 = #{v1}")
    public void update();
}

查询

1
2
3
4
public interface Mapper{
    @Select("Select * from emp where id = #{id}")
    public Emp select(Integer id);
}