MyBatis如何使用(一)
mybatis作為ORM輕量級框架一出現(xiàn)就吸引了無數(shù)人的眼球,比hibernate要簡單且入門較容易,下面開始我的第一個mybatis程序。
一、下載mybatis的包
我們知道任何一個框架都會有其包,我們從其官方網(wǎng)站下載其包,官網(wǎng)網(wǎng)址為:http://www.mybatis.org/mybatis-3/,我這里使用的版本為3.3.0。下載完成之后解壓可看到如下的目錄結(jié)構(gòu):
mybatis-3.3.0.jar是其包,lib目錄下是其依賴包,我們把這些包放到我們的項目中。我這里創(chuàng)建的是javaweb項目,方便以后做web測試,編寫的程序是普通的java程序。
二、配置環(huán)境
把mybatis的包放到項目的lib目錄下之后,接下來時配置mybatis的環(huán)境,我們知道m(xù)ybatis做為ORM框架,屬于開發(fā)中的DAO層,是和數(shù)據(jù)庫打交道的,所以我們必須有數(shù)據(jù),這里以mysql數(shù)據(jù)為例,具體的建庫和建表這里不闡述。
在src目錄下創(chuàng)建mybatis的配置文件,文件名稱為:configuratin.xml,文件內(nèi)容如下:
<?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 alias="Message" type="com.cn.imooc.entity.Message"/> </typeAliases> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://127.0.0.1:3306/weixin?useUnicode=true&characterEncoding=UTF-8" /> <property name="username" value="root"/> <property name="password" value="123456"/> </dataSource> </environment> </environments> <!--映射文件--> <mappers> <mapper resource="com/cn/mappers/message.xml"/> </mappers> </configuration>
在mybatis配置文件中還有很多的配置項這里僅僅使用了這幾個,
<typeAliases> 別名配置,即把實(shí)體類做個別名,目的在于在映射文件中使用實(shí)體類時不使用全限類名,而是使用別名,起到簡單的作用
<environments> 配置了一些環(huán)境 比如數(shù)據(jù)配置,這里我們配置了數(shù)據(jù)源
<mappers> 配置映射文件,這里配置了com.cn.mappers包下的message.xml映射文件
下面對Message實(shí)體類進(jìn)行說明,此實(shí)體類里是一些屬性,如下,
package com.cn.imooc.entity; public class Message { private String id; private String command; private String description; private String comment; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getCommand() { return command; } public void setCommand(String command) { this.command = command; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } public String getComment() { return comment; } public void setComment(String comment) { this.comment = comment; } @Override public String toString() { return "Message [id=" + id + ", command=" + command + ", description=" + description + ", comment=" + comment + "]"; } }
提供了getXXX和setXXX方法,其中setXXX方法很關(guān)鍵,我這里的屬性和數(shù)據(jù)庫的字段名是一致,可以方便使用mybatis查詢出結(jié)果之后反射到實(shí)體類中,當(dāng)然也可以和數(shù)據(jù)庫表字段名不一致,后續(xù)會進(jìn)行說明。
message.xml映射文件如下,
<mapper namespace="com.cn.inter.IMessageOperation"> <select id="selectUserByID" parameterType="int" resultType="com.cn.imooc.entity.Message"> select * from `message` where id = #{id} </select> <select id="selectMessages" resultType="Message"> select id, command, description, comment from message; </select> </mapper>
這是我的mapper映射文件,里邊有兩個方法,一個是:selectUserById 根據(jù)id查詢,另一個是selectMessages 查詢所有
好了,到此為止,我們的mybatis的環(huán)境搭建完成,下面可以進(jìn)行測試了。
三、測試
下面是測試代碼,
package com.cn.test; import java.io.IOException; import java.io.Reader; 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 com.cn.imooc.entity.Message; public class MyTest { public static void main(String[] args) { // TODO Auto-generated method stub Reader reader; SqlSession sqlSession=null; try { //1、獲得sqlSessionFactory reader = Resources.getResourceAsReader("Configuration.xml"); SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(reader); //2、獲得sqlSession sqlSession=sqlSessionFactory.openSession(); //3、查詢 Message message=sqlSession.selectOne("com.cn.inter.IMessageOperation.selectUserByID", 1); System.out.println(message); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally{ sqlSession.close(); } } }
從上面可以看出,首先需要一個SqlSessionFactory,然后由sqlSessionFactory獲得sqlSession,由sqlSession執(zhí)行查詢,使用了selectOne方法,第一個參數(shù)是映射文件中的nameSpace+“.”方法名,第二個參數(shù)是查詢參數(shù)。
以上所述是小編給大家介紹的MyBatis如何使用(一)的全部敘述,希望對大家有所幫助。后續(xù)還會介紹別的版本,更多內(nèi)容敬請關(guān)注腳本之家!
相關(guān)文章
Java中對list map根據(jù)map某個key值進(jìn)行排序的方法
今天小編就為大家分享一篇Java中對list map根據(jù)map某個key值進(jìn)行排序的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-07-07@JsonFormat 實(shí)現(xiàn)日期格式自動格式化
這篇文章主要介紹了@JsonFormat 實(shí)現(xiàn)日期格式自動格式化,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-08-08Java利用文件輸入輸出流實(shí)現(xiàn)文件夾內(nèi)所有文件拷貝到另一個文件夾
這篇文章主要介紹了Java實(shí)現(xiàn)文件夾內(nèi)所有文件拷貝到另一個文件夾,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-03-03Java利用StampedLock實(shí)現(xiàn)讀寫鎖的方法詳解
在jdk8以后,java提供了一個性能更優(yōu)越的讀寫鎖并發(fā)類StampedLock,該類的設(shè)計初衷是作為一個內(nèi)部工具類,用于輔助開發(fā)其它線程安全組件。本文就來和大家一起學(xué)習(xí)下StampedLock的功能和使用2022-10-10MyBatis中的關(guān)聯(lián)關(guān)系配置與多表查詢的操作代碼
本文介紹了在MyBatis中配置和使用一對多和多對多關(guān)系的方法,通過合理的實(shí)體類設(shè)計、Mapper接口和XML文件的配置,我們可以方便地進(jìn)行多表查詢,并豐富了應(yīng)用程序的功能和靈活性,需要的朋友可以參考下2023-09-09解決rocketmq-client查詢手動發(fā)送消息異常問題
這篇文章主要介紹了解決rocketmq-client查詢手動發(fā)送消息異常問題,具有很好的參考價值,希望對大家大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-08-08SpringBoot RESTful風(fēng)格入門講解
RESTful是一種web軟件風(fēng)格,它不是標(biāo)準(zhǔn)也不是協(xié)議,它不一定要采用,只是一種風(fēng)格,它倡導(dǎo)的是一個資源定位(url)及資源操作的風(fēng)格,這篇文章主要介紹了SpringBoot使用RESTful接口2022-11-11