Lombok工具介绍
Lombok是一个实用的jav,能够通过注解的形式自动生成构造器、getter/setter、equals、hashcode、toString等方法并可以自动化生成日志变量、简化java开放、提高效率
注解及其作用
1. @Getter/@Setter :为所有的属性提供get/set方法
2. @ToString :会给类自动生成易阅读的toString方法
3. @EqualsAndHashCode : 根据类所拥有的非静态字段自动重写equals方法和hasCode方法
4. @Data: 提供了更综合的生成代码功能(@Getter+@Setter+@ToString+@EqualsAndHashCode )
5. @NoArgsConstructor:为实体类生成无参的构造方法
6.@AllArgsConstructor : 为实体类生成除了static 修饰的字段之外带有各参数的构造器方法
使用lombok 要引入lombok依赖
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>
如果没有引入lombok,按往常的写法我们的实体类内容就显得很臃肿
package com.itheima.mybatis.pojo;
import lombok.*;
public class table {
private int id;
private String item_name;
private String value;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getItem_name() {
return item_name;
}
public void setItem_name(String item_name) {
this.item_name = item_name;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
@Override
public String toString() {
return "table{" +
"id=" + id +
", item_name='" + item_name + '\'' +
", value='" + value + '\'' +
'}';
}
}
引入lombok后下面的一大坨我们可以用简短的语句就完成了
package com.itheima.mybatis.pojo;
import lombok.*;
@Data // 包含@Getter/@Setter、@ToString、 @EqualsAndHashCode
@NoArgsConstructor //无参构造
@AllArgsConstructor //全参构造
public class table {
private int id;
private String item_name;
private String value;
}
准备工作
- 准备一个数据库表(随便添加一些数据)我这里随机生成的数据
- 创建一个Springboot工程,选择引入对应起步依赖Lombok、MyBatis Framework、MySQL Driver
- 创建对应的实体类(与数据库表的字段要一 一对应)
-
public class table { private int id; private String item_name; private String value; }
- 准备Mapper接口和EmpMapper接口
- 数据库连接配置在
application.properties这个文件中
spring.datasource.url=jdbc:mysql://localhost:3306/my_new_database?useSSL=false&serverTimezone=UTC spring.datasource.username=root spring.datasource.password=CST200212 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
在table这个实体的内容如下
package com.itheima.csdn_mybatis.pojo;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data // 相当于添加@Getter、@Setter、@ToString、 @EqualsAndHashCode
@NoArgsConstructor //无参构造
@AllArgsConstructor //全参构造
public class table {
private int id;
private String item_name;
private String value;
}
创建一个mapper接口
我们需要在接口上添加一个@Mapper注解
@Mapper //在程序运行时会自动生成 该接口的实现类(代理对象)并且将该对象交给IOC容器管理
public interface UserMapper {
}
实现增删改
- 删除(在编辑器中SQL语句可能会飘红,我们在编辑器里连接一下数据库就好了)
package com.itheima.csdn_mybatis.mapper;
import com.itheima.csdn_mybatis.pojo.table;
import org.apache.ibatis.annotations.*;
import java.util.List;
@Mapper //在程序运行时会自动生成 该接口的实现类(代理对象)并且将该对象交给IOC容器管理
public interface UserMapper {
//删除
@Delete("delete from first_table where Id=#{id}")
public void delete(int id);
}
连接成功
原来飘红的就没有了
然后开始测试
package com.itheima.csdn_mybatis;
import com.itheima.csdn_mybatis.mapper.UserMapper;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class CsdnMybatisApplicationTests {
@Autowired
private UserMapper userMapper; //首先要声明一个UserMapper类
@Test
public void contextLoads() {
userMapper.delete(6);// 测试删ID=6的记录
}
}
执行程序后刷新数据表
删除功能实现成功
其余功能如下
package com.itheima.csdn_mybatis.mapper;
import com.itheima.csdn_mybatis.pojo.table;
import org.apache.ibatis.annotations.*;
import java.util.List;
@Mapper //在程序运行时会自动生成 该接口的实现类(代理对象)并且将该对象交给IOC容器管理
public interface UserMapper {
//删除
@Delete("delete from first_table where Id=#{id}")
public void delete(int id);
//查询全部信息
@Select("select * from first_table")
public List<table> selectAllTable();
//插入
@Options(keyProperty = "id",useGeneratedKeys = true)
@Insert("insert into first_table(item_name, value) " +
"value(#{item_name},#{value}) ")
public void insert(table t);
//更新
@Update("update first_table set item_name= #{item_name} , Value=#{value} where Id=#{id}")
public void update(table t);
}
到此Mybatis基础操作就完成了