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

文章目录

  • 官网
  • 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 属性指定哪个实体类来接收。但建议实体类名和表名一致。

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

相关内容

热门资讯

三晖电气上半年营收1.03亿元... 8月18日,三晖电气发布2026年半年报。报告显示,公司上半年营业收入为1.03亿元,同比下降29....
卓创资讯上半年营收1.85亿元... 8月18日,卓创资讯发布2026年半年报。报告显示,公司上半年营业收入为1.85亿元,同比增长8.2...
力宝华润(00156.HK)拟... 格隆汇8月18日丨力宝华润(00156.HK)宣布,公司将于2026年8月28日星期五假座香港金钟道...
福耀玻璃中期收入219.71亿... 观点网讯:8月18日,福耀玻璃(03606.HK)发布截至2026年6月30日止6个月的中期业绩。期...
特朗普:不寻求延长美伊谅解备忘... (来源:经济日报)转自:经济日报美国东部时间8月17日下午,美国总统特朗普在白宫回答媒体提问时表示,...