mybatis學習(2)——入門例項
在上一篇部落格中,我們已經把所有的準備工作做好了,包括資料庫和mybatis下載等,接下我們進入一個實際的案例,來理解mybatis是如何工作的。
1、新建專案
這裡使用的軟體是IDEA,這個無關緊要,我們首先建立一個Java專案,工程最後的結構如下所示,我們將先前的mybatis的jar包(包括lib檔案下的jar包)和java連線sqlite資料庫的jar包,拷貝到lib資料夾中。
2、定義一個實體POJO
首先我們我們需要定義一個實體POJO,這個實體就是我們之前在資料庫中建立的student表。
package com.pojo; public class Student { private int ID; private String Name; private String Sex; private float Grade; public int getID() { return ID; } public void setID(int ID) { this.ID = ID; } public String getName() { return Name; } public void setName(String name) { Name = name; } public String getSex() { return Sex; } public void setSex(String sex) { Sex = sex; } public float getGrade() { return Grade; } public void setGrade(float grade) { Grade = grade; } }
3、編寫配置檔案
3.1 log4j配置檔案
這個配置檔案主要是用來輸出日誌資訊的,我們在系統目錄下新建一個log4j.properties檔案,裡面的內容如下:
log4j.rootLogger=DEBUG,stdout log4j.logger.org.mybatis=DEBUG log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%5p %d %c: %m%n
3.2 基礎配置檔案
基礎配置檔案在mybatis專案中通常只有一個,主要用來配置一些最基本的上下文引數和執行環境,比如資料庫的基本資訊等。我們新建一個mybatis-config.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> <typeAliases> <!--別名--> <typeAlias type="com.pojo.Student" alias="student"/> </typeAliases> <!--資料庫環境--> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"></transactionManager> <dataSource type="POOLED"> <property name="driver" value="org.sqlite.JDBC"/> <property name="url" value="jdbc:sqlite:C:\\Users\\YZL\\test1.db"/> <!-- 由於我們使用的是sqlite資料庫,開源免費的sqlite資料庫是不需要使用者名稱和密碼的 ,我們這裡就不需要這兩個屬性 <property name="username" value=""/> <property name="password" value=""/> --> </dataSource> </environment> </environments> <!--對映檔案--> <mappers> <mapper resource="com/mapper/StudentMapper.xml"/> </mappers> </configuration>
解釋一下這個基礎配置檔案:
<typeAliases> 元素的定義了一個別名student,它代表的是com.pojo.Student這個類,這樣我們在後面就可以直接使用student別名去使用這個類了。
<environments> 元素裡面描述的連線資料庫的引數。
<mapper> 元素的作用是引入那些對映器。
3.3 對映器
在編寫對映器配置檔案之前,我們首先編寫一個對映器介面StudentMapper,這個介面很簡單,就只有一個方法。
package com.mapper;
import com.pojo.Student;
public interface StudentMapper {
public Student getStudentById(int id);
}
然後新建一個對映器檔案StudentMapper.xml,在裡面新增如下內容:
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.mapper.StudentMapper">
<select id="getStudentById" resultType="student" parameterType="int">
select ID,Name,Sex,Grade from student where id=#{id}
</select>
</mapper>
對這個對映器檔案解釋一下:
<mapper> 元素的namespace屬性的值是一個java介面的全限定名。
<select> 元素裡面是一條查詢語句,id屬性標識這條sql語句,resultType表示返回結果型別,parameterType表示引數型別。這裡的student就是之前的基礎配置檔案的配置的別名。
#{id} 表示傳遞進去的引數.。
上面的基礎配置檔案引入的就是這個檔案。
4、測試
接下來,我們就可以新建一個測試類,測試一下,首先說明一下mybatis的執行的步驟:
- 首先利用構造器SqlSessionFactoryBuilder通過程式碼或者配置檔案的方式來生成一個SqlSessionFactory;
- 依靠上面的SqlSessionFactory來獲取一個SqlSession;
- 一個SqlSession既可以直接傳送sql請求,也可以通過對映器介面獲取一個Mapper介面,然後通過Mapper去傳送sql請求(我們這裡採用的是第二種方式);
下面貼上測試的Test類程式碼
package com.main;
import com.mapper.StudentMapper;
import com.pojo.Student;
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.apache.log4j.Logger;
import java.io.InputStream;
public class Test {
public static void main(String[] args) {
Logger log=Logger.getLogger(Test.class);
SqlSessionFactory sqlSessionFactory=null;
String resource="mybatis-config.xml";
InputStream inputStream;
SqlSession sqlSession=null;
try {
inputStream = Resources.getResourceAsStream(resource);
//獲取一個sqlSessionFactory
sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
//通過sqlSessionFactory獲取一個sqlSession
sqlSession=sqlSessionFactory.openSession();
//根據對映器介面獲取一個對映器
StudentMapper studentMapper=sqlSession.getMapper(StudentMapper.class);
//呼叫對映器中的getStudentById()方法,1為引數,返回型別是一個
Student student=studentMapper.getStudentById(1);
System.out.println("id: "+student.getID()+" name: "+student.getName()+
" sex: "+student.getSex()+" grade: "+student.getGrade());
}catch (Exception e){
e.printStackTrace();
}finally {
if(sqlSession!=null)
sqlSession.close();
}
}
}
我們看一下最後的輸出結果
至此,mybatis的入門例項已經完成。
相關推薦
mybatis學習(2)——入門例項
在上一篇部落格中,我們已經把所有的準備工作做好了,包括資料庫和mybatis下載等,接下我們進入一個實際的案例,來理解mybatis是如何工作的。 1、新建專案 這裡使用的軟體是IDEA,這個無關緊要,我們首先建立一個Java專案,工程最後的結構如下所示,我們將先前的my
mybatis學習(一)----入門
配置 ati 開源 bold 文件中 手動 arch mage git 一.Mybatis介紹 MyBatis 本是apache的一個開源項目iBatis, 2010年這個項目由apache software foundation 遷移到了google code,並且改名為
MyBatis學習(一)--入門
寫在前面 這是博主第一次嘗試寫這種類似總結,文筆也不好見諒,由於總結能力很差所以本文基本是參照孤傲蒼狼的部落格,在基礎上新增和修改了一些內容 孤傲蒼狼的部落格:https://www.cnblogs.com/xdp-gacl/category/655890.html 程式碼中會有很多
mybatis學習(2)
select元素。 自定義resultMap,自定義返回。 建表語句如下所示: create table tbl_dept( id int(11) primary key auto_increment, dept_name varchar(255) ) 查詢 select d.id
MyBatis 學習 (一) 入門
Mybatis介紹 MyBatis本是apache的一個開源專案iBatis, 2010年這個專案由apache software foundation 遷移到了google code,並且改名為MyBatis 。2013年11月遷移到Github。
Hibernate學習(2)入門案例
上篇部落格已經把Hibernate概念和其中的核心介面介紹,下面舉個例項新增使用者來介紹Hibernate如何使用。 1、匯入jar檔案 匯入antlr-2.7.6.jar 匯入commons
MyBatis學習(一)簡介及入門案例
結果集 提交 ace 支持 nag 實例 exce 空間 cti 1.什麽是MyBatis? MyBatis是一個支持普通SQL查詢,存儲過程,和高級映射的優秀持久層框架。MyBatis去掉了幾乎所有的JDBC代碼和參數的手工設置以及對結果集的檢索封裝。MyBatis可
java入門學習(2)—基本數據類型
堆內存 類指針 erl 相互 lean 就是 沒有初始化 true ++ 1、變量:定義變量:【數據類型】 變量名 = 賦值(這樣定義的變量一般屬於局部變量,放置在棧內存中); 2、標識符:可以有字母(可以使任意文字),數字,下劃線,$等組成;但是不能以數字開頭,不能是保留
Pandas入門學習(2)
文章目錄 Pandas 基本功能 1、Series 基本屬性 axes 示例 empty 示例 ndim 示例 size 示例 values 示例 head() 和 tail()
MyBatis學習(二)--基本CRUD操作例項
寫在前面 這篇依然是參考寫的,一些基本的例項。下一篇打算自己總結,慢慢的摸索著寫了。 孤傲蒼狼的部落格:https://www.cnblogs.com/xdp-gacl/category/655890.html 程式碼中會有很多重要的註釋,請不要忽略。 使用MyBatis進
mybatis 詳解(三)------入門例項(基於註解)
目錄 1、建立MySQL資料庫:mybatisDemo和表:user 2、建立一個Java工程,並匯入相應的jar包,具體目錄如下 3、在 MyBatisTest 工程中新增資料庫配置檔案 mybatis-configuration.xml 4、定義表所對應的實體
Linux真小白入門教程第五集——Bash Shell命令學習(2)
shell還提供了很多在Linux檔案系統上操作檔案的命令 touch命令可以輕鬆建立空檔案。 touch test_one 建立新檔案,並將你的使用者名稱作為檔案的屬主,此時檔案的大小為0,因為touch命令只建立了一個空檔案。 cp命令可以完成檔案的複製操作
UE4的AI學習(2)——官方案例例項分析
http://blog.csdn.net/a393134314/article/details/52301309 AI學習當中,不學習行為樹基本概念就不能明白具體例項中的操作意義,但是沒有經過具體例項實驗,又覺得基本概念抽象難以理解。建議先泛讀(1)(2)後再對
MyBatis學習(1):Mybatis使用詳解和入門案例
前言 MyBatis和Hibernate一樣,是一個優秀的持久層框架。已經說過很多次了,原生的jdbc操作存在大量的重複性程式碼(如註冊驅動,建立連線,建立statement,結果集檢測等)。框架的作用就是把這些繁瑣的程式碼封裝,這樣可以讓程式設計師專注於sq
RabbitMQ學習總結(3)——入門例項教程詳解
一、起航 本章節,柯南君將從幾個層面,用官網例子講解一下RabbitMQ的實操經典程式案例,讓大家重新回到經典“Hello world!”(The simplest thing that does something )時代,RabbitMQ 支援N多種客戶
TensorFlow 入門 第一課--基本函式學習(2):tf.nn.conv2d 、tf.contrib.layers.flatten、tf.nn.max_pool 詳解
Tensorflow 提供了一些內建的API實現了CNN網路結構中的卷積,池化,全連線網路等運算操作。tf.nn.conv2d(input,filter, strides, padding, data_
mybatis學習(一) mybatis入門
mybatis(3.3.1version)是一個比較輕量級的O/R Mapping框架,跟Hibernate對比安裝和配置都要簡單許多。將mybatis.jar引入到專案中即可。安裝之後下面的工作就是要配置相關檔案。mybatis配置檔案主要包含兩個部門一個是核心配置檔案也可稱為主配檔案,另一
快速入門深度學習(2)遷移學習
咱們繼續入門課程系列,這次是關於遷移學習(Transfer Learning)的故事。 這次咱們要“學習”一把了,針對特定的任務構造自己的分類器了。這次咱們仍然使用AlexNet的網路結構(誰讓它經典呢),訓練這個網路讓它為咱們服務。 在正式Coding之前,首先
mybatis學習(一) 快速入門
一、Mybatis介紹 MyBatis是一個支援普通SQL查詢,儲存過程和高階對映的優秀持久層框架。MyBatis消除了幾乎所有的JDBC程式碼和引數的手工設定以及對結果集的檢索封裝。MyBatis可以使用簡單的XML或註解用於配置和原始對映,將介面和Java的POJO(Plain Old Ja
mybatis學習(一)基礎入門
Mybatis架構 SqlMapConfig.xml 核心配置檔案。 mapper.xml 實體的對映配置檔案,書寫sql。 SqlSessionFactory session的工廠。 SqlSession 核心操作物件。 一、使用