Mybatis—简介

目录

  • 什么是MyBatis?
    • 从 XML 中构建 SqlSessionFactory
    • 不使用 XML 构建 SqlSessionFactory(不推荐,也不会这么用啊!)
    • 从 SqlSessionFactory 中获取 SqlSession
      • 创建实体类
      • 编写Mapper接口类
      • 已映射的 SQL 语句
    • 可能出现问题说明:Maven静态资源过滤问题

什么是MyBatis?

  • MyBatis 是一款优秀的持久层框架
  • MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集的过程
  • MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 实体类 【Plain Old Java Objects,普通的 Java对象】映射成数据库中的记录。
  • MyBatis 本是apache的一个开源项目ibatis, 2010年这个项目由apache 迁移到了google code,并且改名为MyBatis 。
  • 2013年11月迁移到Github .
  • Mybatis官方文档 : http://www.mybatis.org/mybatis-3/zh/index.html
  • GitHub : https://github.com/mybatis/mybatis-3

    入门

    安装

    要使用 MyBatis, 只需将 mybatis-x.x.x.jar 文件置于 classpath 中即可。
    如果使用 Maven 来构建项目,则需将下面的 dependency 代码置于 pom.xml 文件中:

  org.mybatis
  mybatis
  x.x.x

从 XML 中构建 SqlSessionFactory

  • 每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为核心的。
  • SqlSessionFactory 的实例可以通过 SqlSessionFactoryBuilder 获得。
  • 而 SqlSessionFactoryBuilder 则可以从 XML 配置文件或一个预先定制的 Configuration 的实例构建出 SqlSessionFactory 的实例。
    从 XML 文件中构建 SqlSessionFactory
String resource = "org/mybatis/example/mybatis-config.xml";
InputStream inputStream = Resources.getResourceAsStream(resource);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);

XML 配置文件中包含了对 MyBatis 系统的核心设置,包含获取数据库连接实例的数据源(DataSource)和决定事务作用域和控制方式的事务管理器(TransactionManager)。




  
    
      
      
        
        
        
        
      
    
  
  
    
  

不使用 XML 构建 SqlSessionFactory(不推荐,也不会这么用啊!)

DataSource dataSource = BlogDataSourceFactory.getBlogDataSource();
TransactionFactory transactionFactory = new JdbcTransactionFactory();
Environment environment = new Environment("development", transactionFactory, dataSource);
Configuration configuration = new Configuration(environment);
configuration.addMapper(BlogMapper.class);
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration);

从 SqlSessionFactory 中获取 SqlSession

SqlSession 完全包含了面向数据库执行 SQL 命令所需的所有方法。你可以通过 SqlSession 实例来直接执行已映射的 SQL 语句。

try (SqlSession session = sqlSessionFactory.openSession()) {
  BlogMapper mapper = session.getMapper(BlogMapper.class);
  Blog blog = mapper.selectBlog(101);
}

创建实体类

public class Blog {
    
    private int id;  //id
    private String title;   //标题
    //构造,有参,无参
    //set/get
    //toString()
}

编写Mapper接口类

public interface BlogMapper{
    List selectBlog();
}

已映射的 SQL 语句




  

可能出现问题说明:Maven静态资源过滤问题


    
        src/main/java
        
            **/*.properties
            **/*.xml
        
        false
    
    
        src/main/resources
        
            **/*.properties
            **/*.xml
        
        false
    

你可能感兴趣的:(Mybatis—简介)