Mybatis——使用步骤
创始人
2024-03-16 04:18:45
0

文章目录

  • 官网
  • Mybatis 使用步骤
    • 1、引入依赖
    • 2、创建 mybatis 核心配置文件
    • 3、创建 mapper 接口
    • 4、创建 mapper 映射文件
    • 5、创建会话执行 sql
    • 6、总结

官网

Mybatis 使用步骤

创建数据库表和实体类

表:tb_user

CREATE TABLE IF NOT EXISTS tb_user (id INT (5) NOT NULL PRIMARY KEY,NAME VARCHAR (45),age INT (3),sqlsex CHAR)

实体类:User

public class User {private int id;private String name;private int age;private String sex;
}

1、引入依赖

org.mybatismybatis3.5.7mysqlmysql-connector-java5.1.3

2、创建 mybatis 核心配置文件

核心配置文件存放的位置是 src/main/resources 目录下。

核心配置文件 mybatis-config.xml 用于配置 mybatis 相关的信息,主要用于配置连接数据库的环境以及MyBatis的全局配置信息。

核心配置文件中的标签按照需要配置,但之间有相对配置顺序: properties?,settings?,typeAliases?,typeHandlers?,objectFactory?,objectWrapperFactory?,reflectorF actory?,plugins?,environments?,databaseIdProvider?,mappers?

入门使用中一定要配置 environments 标签以操作数据库,配置 mappers 标签告诉 mybatis 去哪找映射文件,其他设置可以根据需要进行配置。



      s

3、创建 mapper 接口

mapper 仅仅是一个接口,不需要提供实现类,会通过 MyBatis 的强大的映射功能,将接口中的方法映射到对应映射文件中的 sql 语句,然后去操作数据库。

public interface UserMapper {User selectById(int id);
}

4、创建 mapper 映射文件

mapper 映射文件和 mapper 接口是一一对应的,在映射文件中编写 sql。





5、创建会话执行 sql

@Test
public void selectByIdTest() throws IOException {String resource = "mybatis-config.xml";//读取 MyBatis 核心配置文件InputStream inputStream = Resources.getResourceAsStream(resource);//创建 SqlSessionFactory 工程SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);//获取 SqlSession 会话SqlSession sqlSession = sqlSessionFactory.openSession();//通过代理模式创建 UserMapper 接口的代理实现类对象UserMapper mapper = sqlSession.getMapper(UserMapper.class);//调用 UserMapper 接口中的方法,就可以根据 UserMapper 的全限定类名匹配映射文件,通过调用的方法名匹配映射文件中的 SQL 标签,并执行标签中的 SQL 语句。User user = mapper.selectById(1);System.out.println(user);
}

6、总结

映射关联关系

  • 通过核心配置文件中的 标签中的配置告诉 mybatis 去哪找映射文件;
  • 根据映射文件中 的设置,使得 mapper 接口匹配到对应的映射文件;
  • sql 标签中的 id 属性值对应接口中的方法名,建立方法与 sql 语句之间的映射;
  • sql 标签中的 resultType 属性值指定接收查询结果的实体类。需要使用全限定类名,为了简化书写,可以在核心配置文件中通过 标签指定别名来表示全限定类名。

接口名和映射文件名可以不一样,因为他们之间通过 建立联系,但建议接口名和映射文件一样。

实体类名和数据库表名可以不一样,因为他们之间通过 sql 标签中的 resultType 属性指定哪个实体类来接收。但建议实体类名和表名一致。

默认实体类的属性名是要和表中字段名一致,否则对应不上,不会报错,但该属性不会接收对应数据。实体类中的属性个数不一定要和表中字段个数一致,不会报错,只是查询到的结果可能不能完全对应接收。

相关内容

热门资讯

中证A500ETF摩根(560... 8月22日,截止午间收盘,中证A500ETF摩根(560530)涨1.19%,报1.106元,成交额...
A500ETF易方达(1593... 8月22日,截止午间收盘,A500ETF易方达(159361)涨1.28%,报1.104元,成交额1...
何小鹏斥资约2.5亿港元增持小... 每经记者|孙磊    每经编辑|裴健如 8月21日晚间,小鹏汽车发布公告称,公司联...
中证500ETF基金(1593... 8月22日,截止午间收盘,中证500ETF基金(159337)涨0.94%,报1.509元,成交额2...
中证A500ETF华安(159... 8月22日,截止午间收盘,中证A500ETF华安(159359)涨1.15%,报1.139元,成交额...
科创AIETF(588790)... 8月22日,截止午间收盘,科创AIETF(588790)涨4.83%,报0.760元,成交额6.98...
创业板50ETF嘉实(1593... 8月22日,截止午间收盘,创业板50ETF嘉实(159373)涨2.61%,报1.296元,成交额1...
港股异动丨航空股大幅走低 中国... 港股航空股大幅下跌,其中,中国国航跌近7%表现最弱,中国东方航空跌近5%,中国南方航空跌超3%,美兰...
电网设备ETF(159326)... 8月22日,截止午间收盘,电网设备ETF(159326)跌0.25%,报1.198元,成交额409....
红利ETF国企(530880)... 8月22日,截止午间收盘,红利ETF国企(530880)跌0.67%,报1.034元,成交额29.0...