mp项目快速预览
- sql 文件
DROP TABLE IF EXISTS `user`;
SET character_set_client = utf8mb4 ;
CREATE TABLE `user` (
`id` int(11) NOT NULL auto Increment,
`name` varchar(45) DEFAULT NULL,
`age` int(11) DEFAULT NULL,
`create_time` timestamp NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
- javaBean 文件
@Data
public class User {
private long id;
private String name;
private int age;
private LocalDateTime createTime;
}
- mapper文件
public interface UserMapper extends BaseMapper<User> {
}
- 测试
@RunWith(SpringRunner.class)
@SpringBootTest
public class SimpleTest {
@Autowired
private UserMapper userMapper;
@Test
public void select() {
List<User> users = userMapper.selectList(null);
users.forEach(System.out::println);
}
}
CRUD
-
BaseMapper
我们通过使用command+7
显示方法
常用注解
- @TableName, 当数据库的表名(t_user)和bean中定义类名(User)不一致时候。
@TableName("t_user")
- @TableField
- 数据库的表名称(name)和bean中定义的名称(userName)不一致
@TableField("name")
- bean 中定义的某些字段(comment)不存在数据库中,用于其他用途。
@TableField(exist=false)
- 数据库的表名称(name)和bean中定义的名称(userName)不一致
- @TableId, 数据库中主键不是id比如为(user_id)时候,标注为数据库的主键。
@TableId
- bean中字段名称只能保持和数据库Id保持一致。如果想使用
@TableField
注解更改主键名,则会报错
- bean中字段名称只能保持和数据库Id保持一致。如果想使用
@TableField("user_id")
@TableId
private long id;
// 会报异常,应该声明 为private long user_id
- 插入数据
User user = new User();
user.setAge(33);
user.setName("yushui");
userMapper.insert(user);
- 根据ID查询
- 查询单个实例
selectById
public void selectById() {
User user = userMapper.selectById(1L);
System.out.println(user);
}
sql语句
SELECT user_id,name AS realName,age,create_time FROM user WHERE user_id=?
- 查询多个实例
selectBatchIds
public void selectBatch() {
List<Long> list = Arrays.asList(1L, 2L);
List<User> users = userMapper.selectBatchIds(list);
users.forEach(System.out::println);
}
sql 语句
SELECT user_id,name AS realName,age,create_time FROM user WHERE user_id IN ( ? , ? )
- where 条件查询
Map<String, Object> columnMap = new HashMap<>();
columnMap.put("name", "y1shui");
columnMap.put("age", "33");
List<User> users = userMapper.selectByMap(columnMap);
users.forEach(System.out::println);
sql 语句
SELECT user_id,name AS realName,age,create_time FROM user WHERE name = ? AND age = ?