MyBatis的执行步骤

在Iava编码领域中,涌现了许多优秀的框架,Struts工作在web层、Hibernate、MyBatis工作在数据访问层,Spring工作在业务层。这些框架都需要提供配置信息,以便框架能够运行,那么首要的问题就是要让框架知道配置内容是什么。在MyBatis编程中,Resouces工具能够读取配置文件的内容,但并不分析内容。

in=Resources.getResourceAsStream(configFile);

Resources类的getResourceAsStream方法能够在类路径中查找文件,并返回读取此文件内容的输入流。在Resources类的帮助下。sqlSessionFactoryBuilder类能够分析配置文件的内容,根据配置文件信息MyBatis框架的初始化工作。

SqlSessionFactoryBuilder builder=new sqlSessionFactoryBuilder();

sessionFactory=builder.build(in);

首先需要实例化SqlSessionFactoryBuilder对象,再调用其build方法完成初始化,初始化的结果就是获取了SqlSessionFactory对象。

SqlSessionFactory类是典型的工厂类,主要责任就是创建SqlSession对象,在前面的叙述中,了解到在匹配文件中需要配置数据源(数据库连接池),可以把SqlSessionFactory理解为连接池对象的另一种表现形式,内部的连接对象即是 SqlSession 对象。SqlSession 对象通过 SqlSessionFactory 的 openSession 方法获得。

session=sessionFactory.openSession();

SqlSession 接口则是数据交互的核心 API,它提供了两种方式与数据库进行交互。

第一种方式就是前面 TestMybatis 中使用的方式,通过 getMapper 方法获得数据访问对象(Dao 实现类对 象),这种方式并不需要编程实现 Dao 接口,MyBatis 通过字节码生成的方式自动生成 Dao 接口实现类。

IMemberMapper mdao=session.getMapper(IMemberMapper.class);

int n =mdao.countAll();

第二种方式是采用 MyBatis 3 之前的编码方式。

int n=session.selectOne("com.wmj.dao.IMemberMapper.countAll");

SqlSession 提供了一些列的查询方法,单个数据查询使用 selectOne 方法,多个数据查询使用 selec tList 方法,这些方法的第一个参数均是映射文件中查询语句的定位字符串,由映射文件 namespace 和语句 id 组成,namespace 和 id 之间用句点“.”符号连接。在 MyBatis 3 推出之后,推荐使用第一种方式来完成数据存 取操作。

综上所述,使用 MyBatis 编程实现数据访问,关键步骤如下:

1) 编写 MyBatis 配置文件 mybatis-config.xml

2) 编写接口映射文件 XxxMapper.xml 文件

3) 使用 Resources 工具类读取 mybatis-config.xml 配置文件

4) 实例化 SqlSessionFactoryBuilder 对象并调用 build 方法初始化 MyBatis 框架

5) 通过 SqlSessionFactory 打开 SqlSession 会话对象

6) 使用 SqlSession 对象的数据操作方法完成数据操作

7) 关闭 SqlSession 会话对象

MyBatis执行原理

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
使用 MyBatis步骤如下: 1. 引入 MyBatis 的依赖包 在 Maven 项目中,需要在 pom.xml 文件中引入 MyBatis 的依赖包,例如: ```xml <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.5.7</version> </dependency> ``` 2. 配置数据库连接信息 在 MyBatis 的配置文件中,需要配置数据库连接信息,包括数据库的 URL、用户名、密码等。例如,使用 MySQL 数据库的配置如下: ```xml <configuration> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.cj.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/mybatis_test?serverTimezone=UTC&useSSL=false&allowPublicKeyRetrieval=true"/> <property name="username" value="root"/> <property name="password" value="123456"/> </dataSource> </environment> </environments> </configuration> ``` 其中,`driver` 属性指定了数据库驱动类,`url` 属性指定了数据库的 URL,`username` 和 `password` 属性指定了数据库的用户名和密码。 3. 创建实体类 创建实体类,与数据库表对应。例如: ```java public class User { private Long id; private String username; private String password; // getter 和 setter 方法 } ``` 4. 创建 DAO 接口 创建 DAO 接口,定义需要执行的 SQL 语句。例如: ```java public interface UserMapper { List<User> selectUsers(); User selectUserById(Long id); void insertUser(User user); void updateUser(User user); void deleteUser(Long id); } ``` 5. 创建映射文件或者注解实现 使用映射文件或者注解实现 DAO 接口中的方法。例如,使用映射文件实现 `selectUsers` 方法如下: ```xml <!-- UserMapper.xml --> <mapper namespace="com.example.dao.UserMapper"> <select id="selectUsers" resultType="com.example.entity.User"> select * from user </select> </mapper> ``` 如果使用注解实现,可以在 DAO 接口中使用注解来定义 SQL 语句。例如: ```java public interface UserMapper { @Select("select * from user") List<User> selectUsers(); } ``` 6. 创建 MyBatis 的配置文件 创建 MyBatis 的配置文件,指定映射文件或者注解接口的位置。例如: ```xml <configuration> <mappers> <mapper resource="com/example/dao/UserMapper.xml"/> <mapper class="com.example.dao.OrderMapper"/> </mappers> </configuration> ``` 其中,`<mapper>` 标签可以指定映射文件或者注解接口的位置。 7. 创建 SqlSessionFactory 对象 通过配置文件创建 SqlSessionFactory 对象,例如: ```java String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); ``` 8. 创建 SqlSession 对象 通过 SqlSessionFactory 对象创建 SqlSession 对象,例如: ```java SqlSession sqlSession = sqlSessionFactory.openSession(); ``` 9. 调用 DAO 接口方法,执行 SQL 语句 通过 SqlSession 对象调用 DAO 接口方法,执行 SQL 语句,例如: ```java UserMapper userMapper = sqlSession.getMapper(UserMapper.class); List<User> users = userMapper.selectUsers(); ``` 10. 关闭 SqlSession 对象 执行完 SQL 语句后,需要关闭 SqlSession 对象,例如: ```java sqlSession.close(); ``` 以上就是使用 MyBatis步骤。具体的实现可以参考 MyBatis 的官方文档或者一些 MyBatis 的教程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WMJ_wmj75

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值