首頁 > Java > java教程 > 主體

MyBatis入門(一)---基本使用

黄舟
發布: 2016-12-21 14:21:13
原創
1507 人瀏覽過

一、MyBatis簡介

1.1、概述

MyBatis 是支援客製化 SQL、預存程序以及進階映射的優秀的持久層框架。

MyBatis 避免了幾乎所有的 JDBC 程式碼和手動設定參數以及取得結果集。

MyBatis 可以對設定和原生Map使用簡單的 xml 或註解,將介面和 java 的 POJOs(Plain Old Java Objects,普通的 Java物件)對應成資料庫中的記錄。

1.2、ORM

orm工具的基本思想
無論是用過的hibernate,mybatis,你都可以法相他們有一個共同點:
1. 從配置文件(通常是XML配置文件中)得到 sessionfactory.
1. 從配置文件(通常是XML配置文件中)得到 sessionfactory.
1. 2. 由sessionfactory  產生session
3. 在session 中完成對資料的增刪改查和事務提交等.

4. 在用完之後關閉session 。

5. 在java 物件和 資料庫之間有做mapping 的設定文件,也通常是xml 檔案。

 

二、環境搭建

2.1、所需要Jar包

 要使用 MyBatis, 只要將 mybatis-x.x.x.jar 檔案置於 classpath 中即可。

MyBatis入門(一)---基本使用

2.2、建立資料庫與插入資料

這裡使用MySQL資料庫:

CREATE TABLE `mybatis`.`user` (
  `id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID',
  `name` VARCHAR(45) NOT NULL DEFAULT '无名氏' COMMENT '用户名',
  `age` TINYINT(3) NOT NULL DEFAULT 21 COMMENT '用户年龄',
  `birthday` DATETIME NOT NULL DEFAULT '1970-01-01 00:00:00' COMMENT '用户生日',
  `address` VARCHAR(256) NOT NULL DEFAULT '北京' COMMENT '用户地址',  PRIMARY KEY (`id`)  COMMENT '')
COMMENT = '用户表';
登入後複製

insert into user(id,name,age,birthday,address)values(1,'張三',23,'1999 01-23 20:24:21','上海'),(2,'李四',18,'1986-12-23 12:13:11','廣州'),(3,'

2.3.建立Web專案把Jar套件引入專案

MyBatis入門(一)---基本使用

三、建立設定文件,實體類,與介面

3.1、建立實體類

 🎜

/*** @Title: User.java

* @Package com.pb.mybatis.po

* @Description: TODO(用戶類)

* @author 劉楠

* @date 2015-10-2015:0-206 42:13

* @version V1.0  

*/package com.pb.mybatis.po;import java.util.Date;/**
* @ClassName: User

* @Description: TODO(用戶類別)

* @author  劉楠

* @date 2015-10-26 下午5:42:13
* @date 2015-10-26 下午5:42:13
* @date 2015-10-26 下午5:42:13
* @date 2015-10-26 下午5:42:13
* @date 2015-10-26 5:42:13
**/public class User {    
   /**
    * id(使用者ID)    */
   
   /**
    * name(使用者名稱)    */
   private int id ;    /**
    *age (使用者年齡)    */
   私人字串名稱;    /**
    * birthday(使用者生日)    */
   私有整數年齡;    /**
    * address (使用者地址)    */
  私人日期;私人字串位址;    /**
    * @return id    */
   public int getId() {        return id;
   }    /**
    * @param id 要設定的 id    */   } /**
    * @return 名字    */
   public String getName() {        回名;
   }    /**
    * @param name 要設定的名稱    */
  /**
    * @return 年齡    */
   public int getAge() {        返回年齡;
   }    /**
    * @param Age 要設定的年齡    */
   
    * @return 生日    */
   public Date getBirthday() { return brithday;
   }    /**
    * @param brithday 要設的生日    */
   public void setBirthday(日期生日) {       this.birthday =birthday(day"  getAddress() {回郵地址;
   } /**
    * @return 地址    */
   public void setAddress(String address) {        this.address = address;
   }
 this.address = address;
   }
 this.L一個類別介面

 

/ **

    * @param address 要設定的位址     */package com.pb.mybatis.dao;import com.pb.mybatis.po.User;/*** @Title: UserMapper.java

* @Package com.pb.mybatis.dao

* @Description: TODO(用一句話描述該檔案做什麼)

* @author 劉


*5-date 2011 10-26 下午5:45:13

* @version V1.0  

*/public interface UserMapper {    /**
* @ClassName: UserMapper

* @Description: TODO(使用者類別資料存取介面)

* @author  劉楠

* @date 2015-10-26 下午5:45:13*/
   public User selectUserById(int id) ;

}


 

3.3、與db.properties

 db.properties

#2g =jdbc:mysql: //localhost:3306/mybatis?characterEncoding=utf8#用戶名
username=root
#密碼
passWord=root


3.4、建立映射文件與configuration.xml配置

 

 UserMapper.xml

br/>  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/ dtd/mybatis-3-mapper.dtd">
 

 

configuration.xml

br/>  PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-config.dtd">

 

3.5、簡單依ID查詢

 

/*** @Title: Test1.java

* @Package com.pb.mybatis.test

* @Description: TODO(用一句話描述該檔案做什麼)

* @author 劉楠

* @date 2015- 10-26 下午5:55:54

* @version V1.0  

*/package com.pb.mybatis.test;導入java.io.IOException;導入java.io.Reader;導入org.apache.ibatis.io.Resources;導入org.apache.ibatis. session.SqlSession;導入org.apache.ibatis.session.SqlSessionFactory;導入org.apache.ibatis.session.SqlSessionFactoryBuilder;導入com.pb.mybatis.dao.UserMapper;導入com.pb.mybatis.po.User; *
* @ClassName: Test1

* @Description: TODO(測試類別)

* @author  劉楠

* @date 2015-10-26 下午5:55:54
* @date 2015-10-26 下午5:55:54
* @date 2015-10-26 下午5:55:54
* @date 2015-10-26 5:55:54
**/public class Test1 {    //Session工廠
   static SqlSessionFactory sqlSessionFactory=null;    //Session
    素   
   public static void main(String[ ] args) {
       
       selectById();
   }    /**
    *
    * @Title: selectById
   
    * @Description: TODO(依ID */   嘗試{
          reader=Resources.getResourceAsReader (「設定.xml」); //建立SqlSessionFactory
           sqlSessionFactory=new SqlSessionFactoryBuilder().build(reader);                     //取得使用者介面物件
           UserMapper userMapper=session.getMapper(UserMapper.class);          /呼叫查詢方法
           User user=userMapper.selectUserById(1);
           System.out.println(user.getName()+"getuser+.A. ).toLocaleString()+"..."+user.getAddress());
       } catch (IOException e) {
           

}




3.6、使用別名

更改mapper.xml中的User類別的路徑為別名

MyBatis入門(一)---基本使用

? “-//mybatis.org//DTD Mapper 3.0//EN”

 “http://mybatis.org/dtd/mybatis-3-mapper.dtd”>

 

測試類別不變

 

 

測試類別、實現基本的增、刪除、改、查

4.1、在介面中增加,模糊查詢,添加,修改,刪除的方法,

 

/*** @Title: UserMapper.java

* @Package com.pb.mybatis.dao


* @Description: TODO(用一句話描述該檔案做什麼)

* @author 劉

*5-date 2011 10-26 下午5:45:13

* @version V1.0  

*/package com.pb.mybatis. dao;import java.util.Date;import java.util.List;import com.pb.mybatis.po.User;/**
* @ClassName: UserMapper

* @Description: TODO(使用者類別資料存取介面)

* @author  劉楠

* @date 2015-10-26 下午5:45:13*/public interface UserMapper {    /**
    *
    * @Title: selectUserById
   
    * @Description: TODO(根據使用者ID 查詢*/
   public User    /**
    *
    * @Title: selectUserLikeName
   
    * @Description: TODO(根據名稱模糊查詢*/
   public User selectUserById(int id);    /**
    *
    * @Title: addUser
   
    * @Description: TODO(新增使用者)
   */
   public List selectUserLikeName(String name);    
   /**
    *
    * @Title: updateUser
   
    * @Description: TODO(修改用戶)
  */
   
   /**
    *
    * @Title: deleteUser
   
    * @Description: TODO(刪除使用者)
   
* @Description: TODO(刪除使用者)
   
*     id*/ */
   public void updateUser(User user);    /**&*/
   public void deleteUser(int id);
}


 

.

br/>  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/ dtd/mybatis-3-mapper.dtd">
 update user set name=#{name},age=#{ age},birthday=#{birthday},address=#{address}
where id=#{id}
delete from user
where id=#{id}

 

4.3、測試類別

 

/**

* @Title: Test1.java

* @Package com.pb.mybatis.test

* @Description: TODO(用一句話描述該檔案做什麼)

* @authorhor 劉horate * 2015-10-26 下午5:55:54

* @version V1.0  

*/package com.pb.mybatis.test;導入java.io.IOException;導入java.io.Reader;導入java.text.ParseException;導入java.text.SimpleDateFormat;導入java.util .Date;導入java.util.List;導入org.apache.ibatis.io.Resources;導入org.apache.ibatis.session.SqlSession;導入org.apache.ibatis.session.SqlSessionFactory;導入org.apache.ibatis. session.SqlSessionFactory? / Session
   static SqlSession session = null;    // 字元流
   static Reader reader = null;    public static void main(String[] args) {🠎 ? **
* @ClassName: Test1
*
* @Description: TODO(測試類別)
*
* @author 劉楠
*
* @date 2015-10-265:5555:54 下午
*
*
:54*/
   public static void selectById() {        // 載入設定檔
       try {
           reader = Resources.getResourceAsReader(       sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);            // 開啟Session
    ) ();            // 取得使用者介面物件
           UserMapper userMapper = session.getMapper(UserMapper.class); userMapper.selectUserById(1);
            System.out.println(user.getName() + "..." + user.getAge() + "..."
                   + user. getBirthday().toLocaleString() + "..."
);       } catch (IOException e) {
           e.printStackTrace();
       }

 }   /**
    *
    * @Title: selectById
    *
    * @Description: TODO(依據ID查找使用者) void    */
        try {
           reader = Resources.getResourceAsReader("configuration.xml") ;            // 建立SqlSessionFactory
           sqlSessionFactory = new SqlSession yBuilder().build(reader)     session = sqlSessionFactory.openSession();            // 取得使用者介面物件
           UserMapper userMapper = session.getMclass); // 呼叫查詢方法
           List; users = userMapper.selectUserLikeName("張");            for (User Name() + "..." + user .getAge()                        + "..." + user.getBirthday().toLocaleString() + " ..."
         }
       } catch (IOException e) {
           e.printStackTrace( );
       }

   }    /**
    *
    * @Title: selectLikeName
    *
    * @Description: TODO(依使用者名稱模糊查詢) void    */
public static void addUser() {        // 載入檔案
       try {
           y
           sqlSessionFactory = new SqlSession      sqlSessionFactory = new SqlSession FactoryBuilder().build(reader);            // 開啟Session
           session = sqlSessionFactory.openSession();            // 取得使用者介面物件
User    // 聲明新使用者
           User user =new User();
           user.setName("呵呵" );
           user.setAge(22);
           String d="1984-09-23 20:23:22"; -MM-DD HH:mm:ss");
           Date date=sdf.parse(d);
           user.setBirthday(date);
           user.setAddress(         System.out.println("插入後的ID"+user.getId());            //提交事務           session.commit();
       } catch (IOException e);
       } catch (IOException e);     } catch (ParseException e) {            // TODO Auto-generated catch block            e.printStackTrace();
       }

   }    /**
    *
    * @Title: updateUser
   
    * @Description: TODO(修改使用者)
  */
     try {
           reader = Resources.getResourceAsReader("configuration.xml"); // 建立SqlSessionFactory
           sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);           // 開啟(reader);         ion();            // 取得使用者介面物件
           UserMapper userMapper = session.getMapper(UserMapper.class / 呼叫查詢方法
           User user = userMapper.selectUserById(6);
           user.setName("想起來叫什麼了");         //更新           userMapper.updateUser(user) ;            //提交事務           session.commit();
       } catch (IOException e );

   }    public static void detleUser() {        // 載入設定檔
       try { .getResourceAsReader("configuration.xml");            // 建立SqlSessionFactory
           ion
           session = sqlSessionFactory.openSession();            // 取得使用者介面物件
    session.getMapper(UserMapper.class);        
           //刪除
            session.commit();
       } catch (IOException e) {




相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!