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

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

相关内容

热门资讯

2所211高校,迎来新任副校长 近日,哈尔滨工程大学、合肥工业大学2所211高校,分别迎来新任副校长。其中,尹航任哈尔滨工程大学党委...
香港警方通报10亿日元劫案最新... 【#香港警方通报10亿日元劫案最新进展#】#香港10亿日元劫匪部分有黑社会背景#据南方日报消息,12...
商务部国际贸易谈判代表兼副部长... 12月19日,商务部国际贸易谈判代表兼副部长李成钢会见美国苹果公司首席运营官萨比赫·汗。双方就苹果公...
继CPU、GPU后,又来了个M... (来源:上观新闻)今年的国产芯片是真火。近期摩尔线程和沐曦登陆资本市场,首日暴涨印证了市场对国产GP...
李成钢会见苹果公司首席运营官:... 12月19日,商务部国际贸易谈判代表兼副部长李成钢会见美国苹果公司首席运营官萨比赫·汗。双方就苹果公...