Spring MyBatis 开发实践

MyBatis

MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以对配置和原生 Map 使用简单的 XML 或注解,将接口和 POJO 映射成数据库中的记录。

MyBatis 单独开发实践

实体类

public class User {
  private int id;
  private String name;

  // set & get 方法
}

配置文件 conf.xml 中配置数据库连接信息

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
  "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
  <environments default="development">
    <environment id="development">
      <transactionManager type="JDBC"/>
      <dataSource type="POOLED">
        <property name="driver" value="${driver}"/>
        <property name="url" value="${url}"/>
        <property name="username" value="${username}"/>
        <property name="password" value="${password}"/>
      </dataSource>
    </environment>
  </environments>
  <mappers>
    <mapper resource="/UserMapper.xml"/>
  </mappers>
</configuration>

配置文件 UserMapper.xml 中配置 ORM

<mapper namespace="UserMapper">
  <select id="getUser" parameterType="int" resultType="User">
    select * from user where id = #{id}
  </select>
</mapper>

利用 MyBatis Generator 自动创建代码。

Spring MyBatis 开发实践

不在需要 conf.xml,而是直接在 Spring 中配置。

配置数据源 dataSource

<bean id="dataSource" class="C3P0数据源">
  ...
</bean>

通过 dataSource 配置 SessionFactory
SessionFactory 对应一个数据存储的概念。它是线程安全的,一般只会在启动的时候构建,单例模式。

<bean id="sessionFactory" class="SqlSessionFactoryBean">
  <property name="dataSource" ref="dataSource" />
  <property name="mapperLocations" value="/UserMapper.xml" />
</bean>

通过 sessionFactory 来访问数据库

public class UserDAOImpl {
  @Autowired // 自动装配
  private SessionFactory sessionFactory;

  public void saveUser(User user) {
    // Session 表示与数据库进行交互的一个工作单元
    // Session 轻量级非线程安全,因此线程间不能共享
    SqlSession session = sessionFactory.openSession();

    User user = session.selectOne("getUser", 123);
  }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,923评论 18 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 46,953评论 6 342
  • 这些属性是否生效取决于对应的组件是否声明为 Spring 应用程序上下文里的 Bean(基本是自动配置的),为一个...
    发光的鱼阅读 1,446评论 0 14
  • 1. 简介 1.1 什么是 MyBatis ? MyBatis 是支持定制化 SQL、存储过程以及高级映射的优秀的...
    笨鸟慢飞阅读 5,613评论 0 4
  • 你从不曾是路人甲。 ——题记 大学同班同学,我们的学号挨得很近,中间就隔着一个学号,每次老师点名的时候,我...
    罐子小姐阅读 318评论 4 2