【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

回到顶部