zoukankan      html  css  js  c++  java
  • 聊聊、Mybatis API

    导航:

    聊聊、Mybatis Xml

    聊聊、Mybatis集成Spring XML 方式 

    聊聊、Mybatis集成Spring 注解方式  

    聊聊、手写Mybatis XML配置方式 

    聊聊、手写Mybatis 注解配置方式  

    聊聊、手写Mybatis SpringBoot Starter

    项目结构


     

     引入依赖 


     <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis</artifactId>
                <version>3.4.4</version>
     </dependency>
     <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>5.1.30</version>
     </dependency>
    <dependency>
                <groupId>com.alibaba</groupId>
                <artifactId>druid</artifactId>
                <version>1.0.31</version>
    </dependency>

    API 


    Mybatis 到底解决了什么问题,持久化框架是什么,没出现 Mybatis 之前我们又是怎么来操作数据库的呢?对于 Java语言 来说,JDBC标准 是比较底层的了,但并非最底层的,可以说 JDBC 是 Java 对于数据库操作的一层封装。
    先来看看 JDBC 实现 Mysql 数据库操作: 

    Class.forName("com.mysql.jdbc.Driver");
    Connection con = DriverManager.getConnection("url", "username", "password");
    Statement st = con.createStatement();
    ResultSet rs = st.executeQuery("sql");
    while (rs.next()){
    int age = rs.getInt("age"); 
    String name = rs.getString("name");  
    // todo 封装成自己想要的实体类
    }
    st.close();
    con.close();

    是不是很麻烦,确实有点。这里还没涉及到事务问题,不然更复杂了。  


     再来看看 Mybatis 实现 Mysql 数据库操作: 

    DruidDataSource dataSource = new DruidDataSource();
    dataSource.setUrl("jdbc:mysql://127.0.0.1:3306/test?useSSL=false");
    dataSource.setDriverClassName("com.mysql.jdbc.Driver");
    dataSource.setUsername("root");
    dataSource.setPassword("root");
    TransactionFactory transactionFactory = new JdbcTransactionFactory();
    Environment environment = new Environment("development", transactionFactory, dataSource);
    Configuration configuration = new Configuration(environment);
    configuration.addMapper(AccountMapper.class);
    SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration);
    SqlSession sqlSession = sqlSessionFactory.openSession();
    AccountMapper mapper = sqlSession.getMapper(AccountMapper.class);
    System.out.println(mapper.queryAll());




    public interface AccountMapper {
        @Select("select * from account")
    public List<Map<String,Object>> queryAll();
    }

    好处其实很明显,Mybatis 把返回的数据做了封装,不用自己再去封装了。实质上做了映射,这就是持久化框架做的事。
    这就是 Mybatis API 的实现,上面有很多代码可以抽出来成公共组件,而且配置不方便,每次都要修改代码。所以,就有 xml 配置。

    下一篇随笔聊聊 xml 配置。



  • 相关阅读:
    Codeforces 1265A Beautiful String
    1039 Course List for Student (25)
    1038 Recover the Smallest Number (30)
    1037 Magic Coupon (25)
    1024 Palindromic Number (25)
    1051 Pop Sequence (25)
    1019 General Palindromic Number (20)
    1031 Hello World for U (20)
    1012 The Best Rank (25)
    1011 World Cup Betting (20)
  • 原文地址:https://www.cnblogs.com/xums/p/10305350.html
Copyright © 2011-2022 走看看