【Note_01】通用mapper
二、入门 Demo
1.引入依赖
<dependency> <groupId>tk.mybatis</groupId>
<artifactId>mapper</artifactId>
<version>最新版本</version>
</dependency>
2.配置 Mybatis.xml 文件
<!-- 与 Mybatis 配置的区别仅仅是将 class="org.xxx" 改为了 class="tk.xxx" --><bean class="tk.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="扫描包名"/>
<!-- 其他配置 -->
</bean>
3.实体类配置
public class Entity implements Serializable { @Id
private Long id;
private String name;
//setter 和 getter 方法
//toString()
}
4.接口配置
public interface EntityMapper extends Mapper<Entity> {}
5.使用通用 mapper
public class MapperTest { @Test
public void testEntityMapper() {
//获取 spring 上下文对象
ApplicationContext context = new ClassPathXmlApplicationContext("Mybatis.xml");
//获取 EntityMapper
EntityMapper entityMapper = context.getBean(EntityMapper.class);
//查询所有数据
List<Entity> entitys = entityMapper.selectAll();
//断言
Assert.assertEquals(2, entitys.size());
}
}
三、常用注解
名称 作用范围 含义 注释
@Table
实体类
建立实体类与数据库表之间的对应关系
默认类名首字母小写
@Column
实体类属性
建立实体类字段与数据库字段的对应关系
实体类:驼峰;数据库:_分隔
@Id
实体类属性
标识主键
未标识主键则认为该实体类为全字段联合主键
@GeneratedValue
实体类属性
获取 insert 自增的主键
属性:strategy = GenerationType.IDENTITY
@Transient
实体类属性
标识实体类与数据库不对应的字段
非数据库表中字段
四、CRUD
4.1 select(Entity entity)
* 用于根据实体类查询多条数据* mapper自动生成的SQL
entity = {id = null,username="admin",password="123456"}
⇩ 使用非空成员变量生成 where 条件
select id,uaername,password form user where username = ? and passworld = ?
* 补充
⇨ selectOne(Entity entity) 查询一条数据
⇨ selectByPrimaryKey(id)根据主键查询
4.2 insert(Entity entity)
* 按全属性插入数据 * mapper自动生成的SQL
entity = {username="admin",password="null",age=null}
⇩ 属性为空的插入 null
insert into user(username,passsword,age) values(?,?,?)
* 补充 ⇨ insertSelective(Entity entity)属性为空的使用默认值
4.3 updateByPrimaryKey(Entity entity)
* 根据主键修改* mapper自动生成SQL
⇩ 属性为空的更新为 null
update user set username = ?, passwod= ?, age= ? where id = ?
* 补充 ⇨ updateByPrimaryKeySelective(Entity entity)属性为空的不更新【推荐】
4.4 delete(Entity entity)
* 根据实体类删除* mapper自动生成SQL
⇩ entity 为空则删除所有
delete from user where username = ? and password = ? and age = ?
* 补充 ⇨ deleteByPrimaryKey(id) 根据主键删除
4.5 根据条件查询
//1. 初始化实例对象Example example = new Example(User.class);
//2. 获取查询条件对象
Criteria criteria = example.createCriteria();
//3. 设置查询条件
//3.1 区间之间
criteria.andBetween("age", 15, 30);
//3.2 模糊查询
criteria.andLike("username", "%ad%");
//4. 添加或者条件
Criteria criteria2 = example.createCriteria();
//4.1 完全匹配
criteria2.andEqualTo("password", "123456");
example.or(criteria2);
//5. 排序
example.setOrderByClause("age desc,id asc");
//6. 查询
userMapper.selectByExample(example);
以上是 【Note_01】通用mapper 的全部内容, 来源链接: utcz.com/z/513544.html