程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> MyBatis入門進修教程(一)-MyBatis疾速入門

MyBatis入門進修教程(一)-MyBatis疾速入門

編輯:關於JAVA

MyBatis入門進修教程(一)-MyBatis疾速入門。本站提示廣大學習愛好者:(MyBatis入門進修教程(一)-MyBatis疾速入門)文章只能為提供參考,不一定能成為您想要的結果。以下是MyBatis入門進修教程(一)-MyBatis疾速入門正文


      MyBatis 本是apache的一個開源項目iBatis, 2010年這個項目由apache software foundation 遷徙到了谷歌 code,而且更名為MyBatis 。2013年11月遷徙到Github。

iBATIS一詞起源於“internet”和“abatis”的組合,是一個基於Java的耐久層框架。iBATIS供給的耐久層框架包含SQL Maps和Data Access Objects(DAO)

起首給年夜家引見MyBatis的寄義

  MyBatis是一個支撐通俗sql查詢,存儲進程和高等映照的優良耐久層框架。MyBatis清除了簡直一切的JDBC代碼和參數的手工設置和對成果集的檢索封裝。MyBatis可使用簡略的XML或注解用於設置裝備擺設和原始映照,將接口和Java的POJO(Plain Old Java Objects,通俗的Java對象)映照成數據庫中的記載。

2、mybatis疾速入門

2.1、預備開辟情況

 1、創立測試項目,通俗java項目或許是JavaWeb項目都可,以下圖所示:

  

2、添加響應的jar包

  【mybatis】

         mybatis-3.1.1.jar

  【MYSQL驅動包】
    mysql-connector-java-5.1.7-bin.jar

   

3、創立數據庫和表,針對MySQL數據庫

  SQL劇本以下:

create database mybatis;
 use mybatis;
 CREATE TABLE users(id INT PRIMARY KEY AUTO_INCREMENT, NAME VARCHAR(), age INT);
 INSERT INTO users(NAME, age) VALUES('孤獨蒼狼', );
 INSERT INTO users(NAME, age) VALUES('白虎神皇', );

  將SQL劇本在MySQL數據庫中履行,完成創立數據庫和表的操作,以下:

  

  到此,後期的開辟情況預備任務全體完成。

2.2、應用MyBatis查詢表中的數據

  1、添加Mybatis的設置裝備擺設文件conf.xml

  在src目次下創立一個conf.xml文件,以下圖所示:

  

  conf.xml文件中的內容以下:

<?xml version="." encoding="UTF-"?>
 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config .//EN" "http://mybatis.org/dtd/mybatis--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:/mybatis" />
         <property name="username" value="root" />
         <property name="password" value="XDP" />
       </dataSource>
     </environment>
   </environments>
   
 </configuration>

  2、界說表所對應的實體類,以下圖所示:

  

  User類的代碼以下:

package me.gacl.domain;
 
 /**
  * @author gacl
  * users表所對應的實體類
  */
 public class User {
 
   //實體類的屬性和表的字段稱號逐個對應
   private int id;
   private String name;
   private int age;
 
   public int getId() {
     return id;
   }
 
   public void setId(int 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 + "]";
   }
 }

  3、界說操作users表的sql映照文件userMapper.xml

  創立一個me.gacl.mapping包,專門用於寄存sql映照文件,在包中創立一個userMapper.xml文件,以下圖所示:

  

  userMapper.xml文件的內容以下:

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

<!-- 為這個mapper指定一個獨一的namespace,namespace的值習氣上設置成包名+sql映照文件名,如許就可以夠包管namespace的值是獨一的

  例如namespace="me.gacl.mapping.userMapper"就是me.gacl.mapping(包名)+userMapper(userMapper.xml文件去除後綴)

-->
  <mapper namespace="me.gacl.mapping.userMapper">
      <!-- 在select標簽中編寫查詢的SQL語句, 設置select標簽的id屬性為getUser,id屬性值必需是獨一的,不克不及夠反復
      應用parameterType屬性指明查詢時應用的參數類型,resultType屬性指明查詢前往的成果集類型
      resultType="me.gacl.domain.User"就表現將查詢成果封裝成一個User類的對象前往
     User類就是users表所對應的實體類
     -->

     <!--
         依據id查詢獲得一個user對象
      -->

  <select id="getUser" parameterType="int" 
     resultType="me.gacl.domain.User">
     select * from users where id=#{id}
   </select>
 </mapper>

  4、在conf.xml文件中注冊userMapper.xml文件

 

 <?xml version="." encoding="UTF-"?>
 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config .//EN" "http://mybatis.org/dtd/mybatis--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:/mybatis" />
         <property name="username" value="root" />
         <property name="password" value="XDP" />
       </dataSource>
     </environment>
   </environments>
   
   <mappers>
     <!-- 注冊userMapper.xml文件, 
     userMapper.xml位於me.gacl.mapping這個包下,所以resource寫成me/gacl/mapping/userMapper.xml-->
     <mapper resource="me/gacl/mapping/userMapper.xml"/>
   </mappers>
   
 </configuration>

  5、編寫測試代碼:履行界說的select語句

  創立一個Test1類,編寫以下的測試代碼:

package me.gacl.test;
import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;
import me.gacl.domain.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class Test {
  public static void main(String[] args) throws IOException {
    //mybatis的設置裝備擺設文件
    String resource = "conf.xml";
    //應用類加載器加載mybatis的設置裝備擺設文件(它也加載聯系關系的映照文件)
    InputStream is = Test.class.getClassLoader().getResourceAsStream(resource);
    //構建sqlSession的工場
    SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
    //應用MyBatis供給的Resources類加載mybatis的設置裝備擺設文件(它也加載聯系關系的映照文件)
    //Reader reader = Resources.getResourceAsReader(resource); 
    //構建sqlSession的工場
    //SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
    //創立能履行映照文件中sql的sqlSession
    SqlSession session = sessionFactory.openSession();
    /**
     * 映照sql的標識字符串,
     * me.gacl.mapping.userMapper是userMapper.xml文件中mapper標簽的namespace屬性的值,
     * getUser是select標簽的id屬性值,經由過程select標簽的id屬性值便可以找到要履行的SQL
     */
    String statement = "me.gacl.mapping.userMapper.getUser";//映照sql的標識字符串
    //履行查詢前往一個獨一user對象的sql
    User user = session.selectOne(statement, );
    System.out.println(user);
  }
}

  履行成果以下:

  

有上圖可以看出,數據庫中記載曾經勝利查詢出來。

以上就是本文針對MyBatis入門進修教程(一)-MyBatis疾速入門的全體內容,願望對年夜家有所贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved