mybatis實戰教程(mybatis in action)之二:以接口的方式編程

前面一章,已經搭建好了eclipse,mybatis,mysql的環境,并且實現了一個簡單的查詢。請注意,這種方式是用SqlSession實例來直接執行已映射的SQL語句:
session.selectOne("com.yihaomen.mybatis.models.UserMapper.selectUserByID", 1)
其實還有更簡單的方法,而且是更好的方法,使用合理描述參數和SQL語句返回值的接口(比如IUserOperation.class),這樣現在就可以至此那個更簡單,更安全的代碼,沒有容易發生的字符串文字和轉換的錯誤.下面是詳細過程:

在src_user源碼目錄下建立 com.yihaomen.mybatis.inter 這個包,并建立接口類 IUserOperation , 內容如下:
程序代碼?程序代碼

package com.yihaomen.mybatis.inter;
import com.yihaomen.mybatis.model.User;

public interface IUserOperation {????
????public User selectUserByID(int id);
????
}

請注意,這里面有一個方法名 selectUserByID 必須與 User.xml 里面配置的 select 的id 對應(<select id="selectUserByID")

重寫測試代碼
程序代碼?程序代碼

public static void main(String[] args) {
????????SqlSession session = sqlSessionFactory.openSession();
????????try {
????????????IUserOperation userOperation=session.getMapper(IUserOperation.class);
????????????User user = userOperation.selectUserByID(1);
????????????System.out.println(user.getUserAddress());
????????????System.out.println(user.getUserName());
????????} finally {
????????????session.close();
????????}
????}

整個工程結構圖現在如下:


運行這個測試程序,就可以看到結果了。

來源:?http://www.yihaomen.com/article/java/304.htm


來自為知筆記(Wiz)


轉載于:https://www.cnblogs.com/jeffen/p/6236302.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/255674.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/255674.shtml
英文地址,請注明出處:http://en.pswp.cn/news/255674.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Linux內核分析06

進程的描述和進程的創建 一&#xff0c;進程的描述 進程控制塊PCB——task_struct &#xff08;進程描述符&#xff09;&#xff0c;為了管理進程&#xff0c;內核必須對每個進程進行清晰的描述&#xff0c;進程描述符提供了內核所需了解的進程信息。 struct task_struct數據結…

【pyqt5學習】——pyqt5中.qrc資源文件的創建與編寫

目錄 一、說明 二、安裝pyqt5以及相關工具&#xff08;pyqt5、pyuic、pqrcc&#xff09; 三、創建.ui文件 1、選中文件右鍵-external-pyqt5 打開GUI設計界面 2、創建一個界面&#xff08;內含四個等大label框&#xff09; 3、CTRLS保存 4、找到ui文件&#xff0c;右鍵--e…

zabbix3.0.4通過jmx監控tomcat

jdk下載頁面http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.htmlhttp://download.oracle.com/otn-pub/java/jdk/8u91-b14/jdk-8u91-linux-x64.rpm?AuthParam1462948138_871b75d4b1dd7155e8cbe4f23e5cd2cd腳本[rootNFS-WEB1 latest]# vim /e…

C#學習筆記——25個經典問題

1.靜態成員和非靜態成員的區別&#xff1f; 2.const 和 static readonly 區別&#xff1f; 3.extern 是什么意思&#xff1f; 4.abstract 是什么意思&#xff1f; 5.internal 修飾符起什么作用&#xff1f; 6.sealed 修飾符是干什么的&#xff1f; 7.override 和 o…

PHP的學習--RSA加密解密

PHP服務端與客戶端交互或者提供開放API時&#xff0c;通常需要對敏感的數據進行加密&#xff0c;這時候rsa非對稱加密就能派上用處了。 舉個通俗易懂的例子&#xff0c;假設我們再登錄一個網站&#xff0c;發送賬號和密碼&#xff0c;請求被攔截了。 密碼沒加密&#xff0c;那攻…

Swift學習

1、Swift網址 http://swiftdoc.org/ 2、 https://github.com/ipader/SwiftGuide 轉載于:https://www.cnblogs.com/superbobo/p/5329876.html

【pyqt5學習】——最新版:配置external tools(designer、pyuic、pqrcc)

目錄 1、pip install PyQt5 2、pip install pyqt5-tools 3、file-settings-tools-external tool 點擊加號定義工具名字&#xff0c;名字隨意便于區分即可 雙擊每一個工具名字&#xff0c;配置路徑&#xff08;注意每一個exe的路徑&#xff09; designer.exe pyuic.exe py…

Linux中vi命令詳解

最近vi用的多&#xff0c;很多技巧不知道&#xff0c;備注一份&#xff0c; vi編輯器是所有Unix及Linux系統下標準的編輯器&#xff0c;它的強大不遜色于任何最新的文本編輯器&#xff0c;這里只是簡單地介紹一下它的用法和一小部分指令。由于 對Unix及Linux系統的任何版本&…

C# 屬性和字段

以下的文章是摘錄的&#xff0c;作者已經不詳了。之所以摘錄&#xff0c;是因為這個概念很重要特別對于VFP程序員來說&#xff0c;這里構造屬性就與vfp的方法完全不同。c#的屬性融合了vfp的addproperty() 和屬性的access method和assign method 。不一而足使用屬性&#xff0c…

SEO優化---學會建立高轉化率的網站關鍵詞庫

想要優化好一個網站&#xff0c;行業的分析&#xff0c;以及關鍵詞的挖掘是必要的,有一定的關鍵詞排名了,但是轉化率和流量方面卻很不理想這種情況大部分是只注重了有指數的關鍵詞排名&#xff0c;而忽略了長尾關鍵詞和一些沒有指數但是可以帶來巨大流量的關鍵詞。 網站大部分的…

Monkey腳本編寫

腳本優勢&#xff1a;簡單、快捷、不需要借助任何工具&#xff0c;可以做簡單的性能測試 腳本缺點&#xff1a;只能簡單實現坐標、按鍵等基本操作&#xff0c;無邏輯性 腳本格式&#xff1a; 腳本API&#xff1a; 例子&#xff1a; 打開瀏覽器&#xff0c;輸入WWW.jikexueyuan.…

C#通過DllImport引入dll中的C++非托管類

首先從msdn了解到&#xff0c;DllImport是用來 將特性化方法由非托管動態鏈接庫 (DLL) 作為靜態入口點公開。 從以上語句我們可以理解出三點&#xff1a;1.C編寫的非托管dll可以通過DllImport引入到C#中&#xff1b;2.引入到C#中的只能是C方法&#xff08;或者說函數&#xff0…

USB 設備類協議入門【轉】

本文轉載自&#xff1a;http://www.cnblogs.com/xidongs/archive/2011/09/26/2191616.html 一、應用場合USB HID類是比較大的一個類&#xff0c;HID類設備屬于人機交互操作的設備。用于控制計算機操作的一些方面&#xff0c;如USB鼠標&#xff0c;USB鍵盤&#xff0c;USB游戲操…

lucene之Field屬性的解釋

Field類 數據類型 Tokenized是否分詞 Indexed 是否索引 Stored 是否存儲 說明 StringField(FieldName, FieldValue,Store.YES)) 字符串 N Y Y或N 這個Field用來構建一個字符串Field&#xff0c;但是不會進行分析&#xff0c;會將整個串存儲在索引中&#xff0c;比如…

【機器視覺】——焦距計算物體實際尺寸計算

目錄 1.基本概念 2.像素尺寸(piex)轉為實際尺寸(mm) 3.焦距計算

Tableview中Dynamic Prototypes動態表的使用

Tableview時IOS中應用非常廣泛的控件&#xff0c;當需要動態的添加多條不同的數據時&#xff0c;需要用動態表來實現&#xff0c;下面給出一個小例子&#xff0c;適用于不確定Section的數目&#xff0c;并且每個Section中的行數也不同的情況&#xff0c;適合新手。首先&#xf…

c# - 聲明事件

1 事件是屬于一個特定的類的&#xff0c;其本質是只能在此類中調用的委托。 從面向對象的角度出發&#xff0c;事件是對象對某個消息的響應&#xff0c;因此其聲明必然只能在類的級別出現&#xff0c;且不可用static修飾。 2 事件其實和屬性差不多&#xff0c;是一種特殊的方法…

appium 環境搭建 java

1 安裝node.js 1.1 安裝node.js http://nodejs.cn/download/ 1.2、下載后直接點擊exe,按照提示一步一步的安裝 1.3 安裝成功后&#xff0c;運行cmd&#xff0c;輸入node –v&#xff0c;如果安裝成功&#xff0c;會輸出如下版本信息 2 eclipse android開發環境搭建 2.1 用eclip…

【數據庫bug修復】——Authentication plugin ‘caching_sha2_password‘ is not supported

目錄 原因 連接數據庫的時候出現這個問題的解決方法 創建數據庫連接池時解決方法 原因 使用客戶端鏈接mysql數據庫&#xff0c;如果數據庫版本高于8.0&#xff0c;可能出現以上問題&#xff0c;因為8.0以前默認使用mysql_native_password身份驗證機制&#xff0c;8.0以后使用…

javascript引用bug帶來的繼承

<!DOCTYPE html> <html> <head lang"en"><meta charset"UTF-8"><title>繼承</title> </head> <body> <script>function A(){this.abc 12;}A.prototype.show function(){alert(this.abc);}functio…