成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Java Mybatis 框架入門教程

開發 后端
MyBatis是一款一流的支持自定義SQL、存儲過程和高級映射的持久化框架。MyBatis幾乎消除了所有的JDBC代碼,也基本不需要手工去 設置參數和獲取檢索結果。MyBatis能夠使用簡單的XML格式或者注解進行來配置,能夠映射基本數據元素、Map接口和POJOs(普通java對 象)到數據庫中的記錄。

一、Mybatis介紹

MyBatis是一款***的支持自定義SQL、存儲過程和高級映射的持久化框架。MyBatis幾乎消除了所有的JDBC代碼,也基本不需要手工去 設置參數和獲取檢索結果。MyBatis能夠使用簡單的XML格式或者注解進行來配置,能夠映射基本數據元素、Map接口和POJOs(普通java對 象)到數據庫中的記錄。

二、MyBatis工作流程

(1)加載配置并初始化

觸發條件:加載配置文件

配置來源于兩個地方,一處是配置文件,一處是Java代碼的注解,將SQL的配置信息加載成為一個個MappedStatement對象(包括了傳入參數映射配置、執行的SQL語句、結果映射配置),存儲在內存中。

(2)接收調用請求

觸發條件:調用Mybatis提供的API

傳入參數:為SQL的ID和傳入參數對象

處理過程:將請求傳遞給下層的請求處理層進行處理。

(3)處理操作請求 觸發條件:API接口層傳遞請求過來

傳入參數:為SQL的ID和傳入參數對象

處理過程:

(A)根據SQL的ID查找對應的MappedStatement對象。
(B)根據傳入參數對象解析MappedStatement對象,得到最終要執行的SQL和執行傳入參數。
(C)獲取數據庫連接,根據得到的最終SQL語句和執行傳入參數到數據庫執行,并得到執行結果。
(D)根據MappedStatement對象中的結果映射配置對得到的執行結果進行轉換處理,并得到最終的處理結果。
(E)釋放連接資源。

(4)返回處理結果將最終的處理結果返回。

orm工具的基本思想

無論是用過的hibernate,mybatis,你都可以法相他們有一個共同點:

  •  從配置文件(通常是XML配置文件中)得到 sessionfactory.

  •  由sessionfactory  產生 session

  •  在session 中完成對數據的增刪改查和事務提交等.

  •  在用完之后關閉session 。

  •  在java 對象和 數據庫之間有做mapping 的配置文件,也通常是xml 文件。

功能架構

Java框架篇---Mybatis 入門

Mybatis的功能架構分為三層:

  1. API接口層:提供給外部使用的接口API,開發人員通過這些本地API來操縱數據庫。接口層一接收到調用請求就會調用數據處理層來完成具體的數據處理。

  2. 數據處理層:負責具體的SQL查找、SQL解析、SQL執行和執行結果映射處理等。它主要的目的是根據調用的請求完成一次數據庫操作。

  3. 基礎支撐層:負責最基礎的功能支撐,包括連接管理、事務管理、配置加載和緩存處理,這些都是共用的東西,將他們抽取出來作為最基礎的組件。為上層的數據處理層提供最基礎的支撐。

多需要添加的驅動包:

Java框架篇---Mybatis 入門

下面進行快速入門:

目錄如下:

Java框架篇---Mybatis 入門

實體類User

package com.oumyye.model;

public class User {
    private String id;
    private String name;
    private  int age;
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    @Override
    public String toString() {
        return "User [id=" + id + ", name=" + name + ", age=" + age + "]";
    }

}

映射文件UserMapping.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.oumyye.mapping.UserMapping">
    <!-- 在select標簽中編寫查詢的SQL語句, 設置select標簽的id屬性為getUser,id屬性值必須是唯一的,不能夠重復
    使用parameterType屬性指明查詢時使用的參數類型,resultType屬性指明查詢返回的結果集類型
    resultType="com.oumyye.model.User"就表示將查詢結果封裝成一個User類的對象返回
    User類就是users表所對應的實體類
    -->
    <!--
        根據id查詢得到一個user對象
     -->
    <select id="getUser" parameterType="String"
        resultType="com.oumyye.model.User">
        select * from user where id=#{id}
    </select>
</mapper>

資源文件mybatis.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="com.mysql.jdbc.Driver" />
                <property name="url" value="jdbc:mysql://localhost:3306/mybatis" />
                <property name="username" value="root" />
                <property name="password" value="root" />
            </dataSource>
        </environment>
    </environments>
    <mappers>

        <mapper resource="com/oumyye/mapping/userMapping.xml"/>
     </mappers>
</configuration>

測試類:

package test;

import java.io.InputStream;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;

import com.oumyye.model.User;

public class Tests {
@Test
public void test(){
  String resource = "mybatis.xml";
        //使用類加載器加載mybatis的配置文件(它也加載關聯的映射文件)
        InputStream is = Tests.class.getClassLoader().getResourceAsStream(resource);
        //構建sqlSession的工廠
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);

        SqlSession session = sessionFactory.openSession();
        /**
         * 映射sql的標識字符串,
         * com.oumyye.mapping.UserMapping是userMapper.xml文件中mapper標簽的namespace屬性的值,
         * getUser是select標簽的id屬性值,通過select標簽的id屬性值就可以找到要執行的SQL
         */
        String statement = "com.oumyye.mapping.UserMapping.getUser";//映射sql的標識字符串
        //執行查詢返回一個唯一user對象的sql
        User user = session.selectOne(statement, "1123");
        System.out.println(user.toString());
}
}

結果:

Java框架篇---Mybatis 入門

責任編輯:王雪燕 來源: 偶my耶的博客
相關推薦

2012-07-17 09:13:14

Scrapy

2009-07-08 15:12:48

Java Servle

2009-06-18 09:29:44

Spring Web

2012-05-25 15:35:43

JMSJava

2014-05-26 15:35:55

Web組件Web Compone

2013-08-29 14:12:52

Storm分布式實時計算

2010-08-03 13:06:15

Flex Builde

2017-09-16 17:45:32

數據采集Scrapy爬蟲

2016-03-18 11:19:57

ios9replaykit入門

2020-02-21 08:18:58

JavaScala編程語言

2011-09-02 10:59:10

jQuery Mobi

2013-06-24 13:38:34

HTML5 DataList

2018-03-22 14:59:13

Docker入門容器

2010-07-20 16:19:54

Perl

2010-06-18 16:56:50

UML建模語言

2010-05-21 12:50:45

Subversion快

2010-06-13 09:45:35

Widget開發

2012-05-10 08:29:46

XcodeiOSPhoneGap

2010-08-03 14:37:30

Flex入門教程

2010-07-27 15:53:15

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲欧美一区二区三区情侣bbw | 成人在线精品视频 | 精品成人免费一区二区在线播放 | 日本涩涩网 | 日韩在线一区二区 | 日本 欧美 三级 高清 视频 | 蜜桃视频一区二区三区 | 欧美日韩中文字幕在线 | 欧美一区二区在线播放 | 伊人网综合 | 日韩三级在线 | 国产视频中文字幕 | 国产999精品久久久影片官网 | 欧美成人精品一区 | 国精产品一区二区三区 | 国产日韩av一区二区 | 欧洲高清转码区一二区 | 99精品视频在线观看免费播放 | 日韩电影一区 | 久久国产精品网 | 人人性人人性碰国产 | 亚洲国产成人精品女人久久久 | 午夜天堂精品久久久久 | 91免费看片| 一区二区在线不卡 | 成人av网页 | 欧美成人hd| 亚洲一区二区在线视频 | 久久99精品久久久 | 午夜视频在线免费观看 | 日韩国产免费观看 | 国产精久久久久久 | av在线免费观看网站 | 午夜99| 中文久久 | 奇米在线| 99精品福利视频 | 中文字幕第5页 | 中文字幕91 | av黄在线观看 | 一区2区 |