基本流程#
- 首先进行环境配置,设置
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
#开启日志输出可选
|
创建pojo
对象,对应数据库字段
创建mapper
对象,设置@Mapper
注解,以及使用@Select
注解编写SQL
语句
1
2
3
4
5
| @Mapper
public interface userMapper {
@Select("select * from user")
public List<user> list();
}
|
- 设置程序入口方法,使用
@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);
}
|