學習大神筆記之 「MyBatis學習總結(一)」

1.準備工做java

    軟件:eclipse、 mysql 、navicat for mysqlmysql

    包:mybatis-3.1.1.jar   mysql-connector-java-5.1.7-bin.jarweb

 

2.建立項目sql

   web項目在eclipse中是指動態web項目,即Dynamic web project.數據庫

   源碼放在src文件夾。apache

   jar包放在自建的lib文件夾下而後build path到當前項目中。服務器

 

3.建立數據庫和表網絡

   打開 MYSQL command line client,輸入數據庫密碼回車,成功後建立數據庫數據表。注意每句結尾都要有「;」,而後回車,你會知道這條語句正確仍是錯誤。session

   在此引入大神語句:mybatis

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

 

    建立的數據庫叫mybatis ,數據表叫users,users表中有兩條數據。

    下一步就是利用Navicat for mysql對數據庫進行管理。

   

   

     鏈接名任意寫,因爲創建的爲本地數據庫,因此主機名爲 localhost(意思爲本地服務器),端口爲mysql默認端口3306(改不改均可以),用戶名和密碼爲mysql的用戶名密碼,也就是你打開mysql時要輸入的用戶名密碼。

    此時,能夠用 nacivat for mysql 管理建好的數據庫數據表了。

    在此作一下概念區分(知識來源於流浪的蝦殼博客的《鏈接數據庫localhost和127.0.0.1的區別》): 

      一.localhost 和 127.0.0.1

         localhost也叫local ,正確解釋爲:本地服務器

        127.0.0.1在系統的正確解釋是:本機地址(本機服務器)

         localhot(local)是不經網卡傳輸!這點很重要,它不受網絡防火牆和網卡相關的的限制。訪問localhost也不會解析成ip,不會佔用網卡、網絡資源。

         127.0.0.1是須要經過網卡傳輸,依賴網卡,並受到網絡防火牆和網卡相關的限制。

          這就是爲何有時候用localhost能夠訪問,但用127.0.0.1就不能夠的狀況。因此仍是儘可能用localhost吧.

     二. 數據庫默認端口號

             SQL Server 1433    

              Oracle  1521

              MySQL  3306

 

4.創建MyBatis 查詢

   須要創建 一、Mybatis的配置文件conf.xml

                二、users表所對應的實體類

                三、定義操做users表的sql映射文件userMapper.xml

                四、在conf.xml文件中註冊userMapper.xml文件

                五、編寫測試代碼:執行定義的select語句

 

    4.1 conf.xml

    按照大神代碼敲的,已經註冊了userMapper.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">
          <!--JDBC爲java提供的管理數據庫接口-->
          <transactionManager type="JDBC"/>
          <!-- 配置數據庫鏈接信息 -->
          <!--POOLED:使用Mybatis自帶的數據庫鏈接池來管理數據庫鏈接 -->
          <dataSource type="POOLED">
             <!--driver爲數據庫驅動,固定的 -->
             <property name="driver" value="com.mysql.jdbc.Driver" />
             <!-- 「jdbc:mysql://IP:端口號/數據庫(你建的那個) -->
             <property name="url" value="jdbc:mysql://localhost:3306/mybatis" />
             <property name="username" value="root" />
             <property name="password" value="liyangkun123" />
          </dataSource>
       </environment>
   </environments>
  <mappers>
     <!-- 註冊userMapper.xml文件,userMapper.xml位於me.gacl.mapping這個包下,因此resource寫成me/gacl/mapping/userMapper.xml-->
     <mapper resource = "me/gacl/mapping/userMapper.xml" ></mapper>
  </mappers>
   
</configuration>

   POOLED:使用Mybatis自帶的數據庫鏈接池來管理數據庫鏈接 

   UNPOOLED:不使用任何數據庫鏈接池來管理數據庫鏈接

    JNDI:jndi形式使用數據庫鏈接、主要用於項目正常使用的時候

 

    4.2 建立users表實體類

        很簡單,不贅述。

 

    4.3 測試代碼

      此部分大神註釋很明白,參見大神代碼便可,引用以下。

 

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 Test1 {

    public static void main(String[] args) throws IOException {
        //mybatis的配置文件
        String resource = "conf.xml";
        //使用類加載器加載mybatis的配置文件(它也加載關聯的映射文件)
        InputStream is = Test1.class.getClassLoader().getResourceAsStream(resource);(class裏有getResourceAsStream方法)
        //構建sqlSession的工廠
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);//建立能執行映射文件中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, 1);
        System.out.println(user);
    }
}

    最後在Test1上右擊,選擇 run as ---> java application 運行

    結果以下:

        

    

    後續還將跟着大神學習下去。

相關文章
相關標籤/搜索