1. 程式人生 > >mybatis詳解-(13)註解操作查詢

mybatis詳解-(13)註解操作查詢

前面講述的內容中,基本都是按照同樣的步驟1)建立介面類,2)建立主配置檔案,3)建立介面對映檔案。在介面類中定義實現的介面功能,在對映配置檔案中寫具體的完成介面類容的sql語句,然後在主配置檔案中應用對映配置檔案操作相關的操作。mybatis也提供了一套通過介面操作資料請求的註解,比如要完成一個查詢操作,可以按照如下的步驟完成:

1.建立實體類

Employee

package org.mybatis.annotation;

public class Employee {
    private Integer id;
    private String lastName;
    private
String email; private String gender; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } public
String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } @Override public String toString
() { return "Employee [id=" + id + ", lastName=" + lastName + ", email=" + email + ", gender=" + gender + "]"; } }

2.建立方法介面類

EmployeeAnnotation
在介面方法上面新增@Select註解,在註解中新增實際的操作sql語句。還有其他的相關注解如@Insert等,更詳細的內容可參考MybatisApi

package org.mybatis.annotation;

import org.apache.ibatis.annotations.Select;

public interface EmployeeAnnotation {

    @Select("select * from mybatis_employee where id = #{id}")
    public Employee getEmployeeById(int id);

}

3.建立主配置檔案

mybatis-config-annotation.xml
在主配置檔案中引用介面類org.mybatis.annotation.EmployeeAnnotation

<?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>

    <properties resource="db.properties"></properties>

    <settings>
        <setting name="mapUnderscoreToCamelCase" value="true"/>
    </settings>

    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC" />
            <dataSource type="POOLED">
                <property name="driver" value="${mysql.driver}" />
                <property name="url" value="${mysql.url}" />
                <property name="username" value="${mysql.username}" />
                <property name="password" value="${mysql.password}" />
            </dataSource>
        </environment>
    </environments>

    <mappers>
        <!-- 通過註解的形式,不需要mapper配置檔案 。但是這樣存在硬編碼,所以需要優化的,經常變的不要寫在這裡-->
        <mapper class="org.mybatis.annotation.EmployeeAnnotation"/>

        <!-- 也可以直接通過包,不指定具體類 -->
        <!-- <package name="org.mybatis.annotation"/> -->
    </mappers>

</configuration>

4.建立測試類

package org.mybatis.annotation;

import java.io.IOException;
import java.io.InputStream;

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

/**
 * 使用介面式程式設計
 */
public class MybatisTest {

    @Test
    public void testMybatis() {
        String resource = "mybatis-config-annotation.xml";

        InputStream inputStream = null;
        SqlSessionFactory sqlSessionFactory = null;
        SqlSession sqlSession = null;
        try {
            inputStream = Resources.getResourceAsStream(resource);
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
            sqlSession = sqlSessionFactory.openSession();

            EmployeeAnnotation mapper = sqlSession.getMapper(EmployeeAnnotation.class);

            Employee employee = mapper.getEmployeeById(2);

            System.out.println(employee);

        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            sqlSession.close();
        }
    }
}

5.測試結果

DEBUG - Openning JDBC Connection
DEBUG - Created connection 527446182.
DEBUG - ooo Using Connection [[email protected]]
DEBUG - ==> Preparing: select * from mybatis_employee where id = ?
DEBUG - ==> Parameters: 2(Integer)
Employee [id=2, lastName=lisi, [email protected], gender=2]
DEBUG - Resetting autocommit to true on JDBC Connection [[email protected]]
DEBUG - Closing JDBC Connection [[email protected]]
DEBUG - Returned connection 527446182 to pool.

這個步驟中省略了建立對映配置檔案的步驟,直接在主配置檔案中引用介面類。
但是這種方式也存在一定的問題,比如這樣操作是硬編碼,為以後的修改和除錯都埋下隱患。建議還是使用對映配置檔案的方式來操作。

相關推薦

mybatis-(13)註解操作查詢

前面講述的內容中,基本都是按照同樣的步驟1)建立介面類,2)建立主配置檔案,3)建立介面對映檔案。在介面類中定義實現的介面功能,在對映配置檔案中寫具體的完成介面類容的sql語句,然後在主配置檔案中應用對映配置檔案操作相關的操作。mybatis也提供了一套通過介面

mybatis (三)------入門例項(基於註解

目錄 1、建立MySQL資料庫:mybatisDemo和表:user 2、建立一個Java工程,並匯入相應的jar包,具體目錄如下 3、在 MyBatisTest 工程中新增資料庫配置檔案 mybatis-configuration.xml 4、定義表所對應的實體

例題SQL語句-資料庫基本操作10-查詢語句

|版權宣告:本文為博主原創文章,未經博主允許不得轉載。轉載請附上原連結,部落格地址:https://blog.csdn.net/sgsgy5 1.6 查詢語句 語法:select [選項] 列名 [from 表名] [where 條件] [group by

JAVAWEB開發之mybatis(二)——高階對映、查詢快取、mybatis與Spring整合以及懶載入的配置和逆向工程

<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "ht

mybatis-(16)分步查詢及延遲載入

前面文章介紹了都是一個sql語句完成所有的查詢操作,包括在執行聯合查詢的時候也是一個sql語句完成查詢,然後將查詢結果通過resultMap進行封裝。mybatis也提供了分步查詢的功能,在完成一個操作之後,將查詢的結果使用到第二個三個查詢引數中完成所有的查詢。

Mybatis系列(五)--Mybatis Generator和全註解風格的MyBatis3DynamicSql

# 簡介 Mybatis Generator (MBG) 是 Mybatis 官方提供的程式碼生成器,通過它可以在專案中自動生成簡單的 CRUD 方法,甚至**“無所不能”**的高階條件查詢(**MyBatis3DynamicSql** ),讓我們避免了進行資料庫互動時需要手動建立物件和配置 Mybatis

SVN trunk(主線) branch(分支) tag(標記) 用法和詳細操作步驟

trac load mar span 必須 最可 objc copy 右鍵 原文地址:http://blog.csdn.net/vbirdbest/article/details/51122637 使用場景: 假如你的項目(這裏指的是手機客戶端項目)的某個版本(例如1.0

008-Hadoop Hive sql語法3-DML 操作:元數據存儲

pan 查詢 寫入 所有 not insert語句 int 寫入文件 文件系統 一、概述 hive不支持用insert語句一條一條的進行插入操作,也不支持update操作。數據是以load的方式加載到建立好的表中。數據一旦導入就不可以修改。 DML包括:INSERT插入

MyBatis

esp resources myba 用法 管理 build oct ace 詳細信息 本文用例下載地址 http://files.cnblogs.com/files/gaofei-1/MyBatisDemo.rar 本文使用的是MySQL數據庫,所需SQL

mybatis (一)------JDBC

jdbc javax 發出 一段 true his 實例 用戶名 移植 1、什麽是MyBatis?   MyBatis 本是apache的一個開源項目iBatis, 2010年這個項目由apache software foundation 遷移到了google code,

mybatis (二)------入門實例(基於XML)

ssi 開發模式 文件中 Coding import 拼接 upd baidu actor   通過上一小節,mybatis 和 jdbc 的區別:http://www.cnblogs.com/ysocean/p/7271600.html,我們對 mybatis有了一個大致

mybatis (七)------一對一、一對多、多對多

不變 角色 導入 ctu transacti stat 工程 build -1   前面幾篇博客我們用mybatis能對單表進行增刪改查操作了,也能用動態SQL書寫比較復雜的sql語句。但是在實際開發中,我們做項目不可能只是單表操作,往往會涉及到多張表之間的關聯操作。那麽我

三、mysql登錄及版本號查詢

ppa l數據庫 server gpo 方法 win sql查詢 spa nbsp 1.用window+r,輸入cmd,用mysql -uuser -ppassword登錄時出現‘mysql’不是有效的內部命令? 答:這是因為沒有配置My

mybatis ------動態SQL

soc int 表示 ssi 性別 ace cin override 博客 目錄 1、動態SQL:if 語句 2、動態SQL:if+where 語句 3、動態SQL:if+set 語句 4、動態SQL:choose(when,otherwise) 語句 5、動態SQL

Oracle數據庫之體系結構,基本操作管理及客戶端遠程連接

plus down 緩沖區 擴展名 應用 提交 normal 系統 等待 上一篇文章《Oracle Database 12c安裝》講解了如何安裝oracle數據庫,這篇文章繼續講解數據庫的體系結構,基本操作管理及客戶端遠程連接Oracle的體系結構 Oracle數據庫由兩部

SVN版本控制工具,基本操作,使用

一、什麼是SVN SVN是Subversion的簡稱,是一個開放原始碼的版本控制系統,相較於RCS、CVS,它採用了分支管理系統,它的設計目標就是取代CVS。 二、SVN的下載安裝 下載地址:https://tortoisesvn.net/downloads.zh.html 安裝完不

redux非同步操作示例

#一、redux基礎 redux 通過 dispatch(action) -> 中介軟體 -> reducer處理資料 -> 改變store -> 使用subscribe()監聽store改變更新檢視 的方式管理狀態 將所有狀態儲存在一個s

GitHub使用教程——官網操作指南(翻譯)

GitHub使用指南 原文地址:GitHub官網 示例專案:Hello World 十分鐘輕鬆教學 在學習計算機語言程式設計的過程中建立Hello World 專案是一個歷史悠久的傳統。當你接觸一門新事物的時候可以用它來做一個簡單的練習。讓我們開始使用github吧! 通過本文,

mybatis (六)------通過mapper介面載入對映檔案

目錄 1、定義 userMapper 介面 2、在全域性配置檔案 mybatis-configuration.xml 檔案中載入 UserMapper 介面(單個載入對映檔案) 3、編寫UserMapper.xml 檔案 4、測試 5、批量載入對映檔案 6、注意

mybatis (五)------動態SQL

調用 otherwise efi 實例 其中 參數 sep 引用 完成 目錄 1、動態SQL:if 語句 2、動態SQL:if+where 語句 3、動態SQL:if+set 語句 4、動態SQL:choose(when,otherwise) 語句 5、動態SQL:tr