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