国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Java框架篇---Mybatis 入門

2019-11-15 00:57:12
字體:
來源:轉載
供稿:網友
java框架篇---Mybatis 入門一、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 文件。
功能架構

Mybatis的功能架構分為三層:
  1. API接口層:提供給外部使用的接口API,開發人員通過這些本地API來操縱數據庫。接口層一接收到調用請求就會調用數據處理層來完成具體的數據處理。
  2. 數據處理層:負責具體的SQL查找、SQL解析、SQL執行和執行結果映射處理等。它主要的目的是根據調用的請求完成一次數據庫操作。
  3. 基礎支撐層:負責最基礎的功能支撐,包括連接管理、事務管理、配置加載和緩存處理,這些都是共用的東西,將他們抽取出來作為最基礎的組件。為上層的數據處理層提供最基礎的支撐。

多需要添加的驅動包:

下面進行快速入門:

目錄如下:

實體類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 {@Testpublic 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());}}

 結果:


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 理塘县| 玉林市| 全椒县| 辽阳市| 吉水县| 神木县| 宁安市| 扬州市| 如东县| 湖南省| 上思县| 盘山县| 安西县| 大安市| 巩留县| 西充县| 时尚| 辉县市| 连山| 镇赉县| 宁安市| 安徽省| 宣恩县| 新津县| 大英县| 深水埗区| 利川市| 惠来县| 莱阳市| 抚州市| 神池县| 连州市| 华蓥市| 灌南县| 浦县| 武强县| 凉山| 美姑县| 灌南县| 水富县| 商丘市|