网站排名5118,wordpress 本地 上传,wordpress 实现 wiki,做网站现在可以挣钱吗MyBatis 的架构
MyBatis 是一个基于 Java 的持久层框架#xff0c;可以将 SQL 语句和 Java 代码进行分离#xff0c;通过 XML 或注解的方式配置 SQL 语句并执行#xff0c;从而实现数据访问的功能。MyBatis 的架构包括以下几个部分#xff1a; SqlSessionFactory#xff…MyBatis 的架构
MyBatis 是一个基于 Java 的持久层框架可以将 SQL 语句和 Java 代码进行分离通过 XML 或注解的方式配置 SQL 语句并执行从而实现数据访问的功能。MyBatis 的架构包括以下几个部分 SqlSessionFactory用于创建 SqlSession 对象的工厂。SqlSession 是 MyBatis 的核心类之一它负责与数据库进行交互和管理事务。SqlSessionFactory 会读取配置文件mybatis-config.xml并创建 SqlSession 对象。 ConfigurationMyBatis 的全局配置文件包含了 MyBatis 的各种配置信息比如数据库连接信息、类型别名、映射文件等。 MapperSQL 映射器用于定义 SQL 语句和 Java 对象之间的映射关系。映射器可以通过 XML 或注解的方式进行定义。 SqlSession用于与数据库进行交互和管理事务的核心类。SqlSession 可以通过 SqlSessionFactory 创建并且它是线程不安全的每个线程都应该拥有自己的 SqlSession 对象。 ExecutorSqlSession 的底层实现类负责执行 SQL 语句并返回结果。MyBatis 提供了多种 Executor 实现类比如 SimpleExecutor、ReuseExecutor 和 BatchExecutor 等。 MyBatis 的配置
MyBatis 的配置文件有两个分别为 mybatis-config.xml 和映射文件Mapper XML 或注解。下面是一个简单的 MyBatis 配置文件示例
?xml version1.0 encodingUTF-8?
!DOCTYPE configuration PUBLIC -//mybatis.org//DTD Config 3.0//ENhttp://mybatis.org/dtd/mybatis-3-config.dtd
configurationenvironments defaultdevelopmentenvironment iddevelopmenttransactionManager typeJDBC/dataSource typePOOLEDproperty namedriver valuecom.mysql.jdbc.Driver/property nameurl valuejdbc:mysql://localhost:3306/mybatis/property nameusername valueroot/property namepassword value123456//dataSource/environment/environmentsmappersmapper resourcecom/example/mapper/UserMapper.xml//mappers
/configuration上面的配置文件中包含了以下三个部分 environments设置 MyBatis 的环境包括事务管理器和数据源。默认使用的是 development 环境。 mappers定义 SQL 映射器的位置。可以通过 resource、url 或 class 等方式指定映射器的位置。 properties定义全局属性可以在 XML 中使用 ${} 语法引用这些属性。比如上面的配置文件中定义了一个名为 driver 的属性它的值为 com.mysql.jdbc.Driver可以在映射文件中使用 ${driver} 引用这个属性。
在映射文件中可以定义各种 SQL 语句、参数映射和结果映射等。下面是一个简单的映射文件示例
?xml version1.0 encodingUTF-8?
!DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//ENhttp://mybatis.org/dtd/mybatis-3-mapper.dtd
mapper namespacecom.example.mapper.UserMapperselect idgetUserById parameterTypeint resultTypecom.example.pojo.Userselect * from user where id #{id}/selectinsert idaddUser parameterTypecom.example.pojo.Userinsert into user(name,age) values(#{name},#{age})/insert
/mapper上面的映射文件中定义了两个 SQL 语句getUserById 和 addUser。其中 getUserById 用于查询用户信息需要一个 int 类型的参数 id返回一个 com.example.pojo.User 类型的结果addUser 用于添加用户信息需要一个 com.example.pojo.User 类型的参数没有返回值。
在 MyBatis 中可以通过以下方式来获取 SqlSession 对象并执行 SQL 语句
public class MyBatisTest {public static void main(String[] args) {String resource mybatis-config.xml;InputStream inputStream Resources.getResourceAsStream(resource);SqlSessionFactory sqlSessionFactory new SqlSessionFactoryBuilder().build(inputStream);SqlSession sqlSession sqlSessionFactory.openSession();try {UserMapper userMapper sqlSession.getMapper(UserMapper.class);User user userMapper.getUserById(1);System.out.println(user);User newUser new User();newUser.setName(Tom);newUser.setAge(20);userMapper.addUser(newUser);sqlSession.commit();} finally {sqlSession.close();}}
}在上面的示例代码中首先读取了配置文件 mybatis-config.xml然后通过 SqlSessionFactoryBuilder 将配置文件解析为 SqlSessionFactory 对象最后通过 SqlSessionFactory 创建 SqlSession 对象。在 SqlSession 中使用 getMapper 方法获取映射器对象然后调用映射器对象中的方法执行 SQL 语句。
总之MyBatis 是一个基于 Java 的持久层框架可以将 SQL 语句和 Java 代码进行分离通过 XML 或注解的方式配置 SQL 语句并执行。MyBatis 的架构包括 SqlSessionFactory、Configuration、Mapper、SqlSession 和 Executor 等组件。在使用 MyBatis 进行开发时需要配置 MyBatis 的全局配置文件和映射文件然后通过 SqlSession 对象执行 SQL 语句。