Java持久層框架MyBatis簡(jiǎn)單實(shí)例
什么是Mybatis
MyBatis 本是apache的一個(gè)開(kāi)源項(xiàng)目iBatis, 2010年這個(gè)項(xiàng)目由apache software foundation 遷移到了google code,并且改名為MyBatis 。iBATIS一詞來(lái)源于“internet”和“abatis”的組合,是一個(gè)基于Java的持久層框架。iBATIS提供的持久層框架包括SQL Maps和Data Access Objects(DAO)。
MyBatis 本是apache的一個(gè)開(kāi)源項(xiàng)目iBatis, 2010年這個(gè)項(xiàng)目由apache software foundation 遷移到了google code,并且改名為MyBatis 。2013年11月遷移到Github。
2011年6月iBatis 更名為 MyBatis,從 iBatis 到 MyBatis,不只是名稱(chēng)上的變化,MyBatis 提供了更為強(qiáng)大的功能,同時(shí)并沒(méi)有損失其易用性,相反,在很多地方都借助于 JDK 的泛型和注解特性進(jìn)行了簡(jiǎn)化。所以你懂的,開(kāi)始學(xué)習(xí)就從MyBatis吧。
例子使用MyBatis+MySQL實(shí)現(xiàn)一個(gè)用戶(hù)表的查詢(xún),如下:
1、數(shù)據(jù)庫(kù)
在MySQL中,test數(shù)據(jù)庫(kù)下,簡(jiǎn)歷user表,字段:id,name,password,建表語(yǔ)句略。
2、需導(dǎo)入的包
只有兩個(gè): mybatis-3.0.3.jar mysql-connector-java-5.1.16-bin.jar(JDBC包)
3、目錄結(jié)構(gòu)
采用最簡(jiǎn)單的結(jié)構(gòu),com.mybatis包下有且僅有四個(gè)文件:configuration.xml、user.xml、User.java、Test.java 。

4、mybatis配置文件configuration.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 alias="User" type="com.mybatis.User"></typeAlias> </typeAliases> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"></transactionManager> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8" /> <property name="username" value="root" /> <property name="password" value="123456" /> </dataSource> </environment> </environments> <mappers> <mapper resource="user.xml"/> </mappers> </configuration>
5、User表sql文件User.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="User">
<select id="selectUser" parameterType="int" resultType="User">
SELECT * FROM user WHERE id = #{id}
</select>
<select id="selectUsers" resultType="User">
SELECT * FROM user
</select>
</mapper>
6、表結(jié)構(gòu)文件User.java
package com.mybatis;
public class User {
private int id;
private String name;
private String password;
public User(){}
public User(int id, String name) {
this.id = id;
this.name = name;
}
public int getId() {
return this.id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return this.password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String toString() {
return "User [id=" + this.id + ", name=" + this.name + ", password=" + this.password + "]";
}
}
7、測(cè)試用例Test.java
package com.mybatis;
import java.io.IOException;
import java.io.Reader;
import java.util.List;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class Test {
public static void main(String[] args) throws IOException {
String resource = "configuration.xml";
Reader reader = Resources.getResourceAsReader(resource);
SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(reader);
SqlSession session = ssf.openSession();
try{
User user = session.selectOne("selectUser", "1");
System.out.println(user.getName());
System.out.println(user);
System.out.println("--------------分隔線(xiàn)---------------");
List<User> users = session.selectList("selectUsers");
for(int i=0; i<users.size(); i++) {
System.out.println(users.get(i).getName());
}
} catch (Exception e) {
e.printStackTrace();
} finally {
session.close();
}
}
}
以上所述是小編給大家介紹的Java持久層框架MyBatis簡(jiǎn)單實(shí)例,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
Java中Properties類(lèi)的操作實(shí)例詳解
這篇文章主要介紹了Java中Properties類(lèi)的操作實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-04-04
Java的Jackson庫(kù)中復(fù)雜對(duì)象集合的幾種簡(jiǎn)單轉(zhuǎn)換
本文主要介紹了Java的Jackson庫(kù)中復(fù)雜對(duì)象集合的幾種簡(jiǎn)單轉(zhuǎn)換。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧2017-02-02
用Spring將Service注入到Servlet中的流程步驟
在Java Web開(kāi)發(fā)中,??Servlet??是一個(gè)非常重要的組件,它用于處理客戶(hù)端的請(qǐng)求并生成響應(yīng),而?Spring??框架則是一個(gè)廣泛使用的依賴(lài)注入框架,可以幫助開(kāi)發(fā)者管理應(yīng)用中的對(duì)象及其依賴(lài)關(guān)系,本文將介紹如何使用Spring框架將Service層的對(duì)象注入到Servlet中2025-01-01
Java中Object轉(zhuǎn)換為L(zhǎng)ist類(lèi)型的實(shí)現(xiàn)方法
這篇文章主要介紹了Java中Object轉(zhuǎn)換為L(zhǎng)ist類(lèi)型的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03
Java前后端分離的在線(xiàn)點(diǎn)餐系統(tǒng)實(shí)現(xiàn)詳解
這是一個(gè)基于SpringBoot+Vue框架開(kāi)發(fā)的在線(xiàn)點(diǎn)餐系統(tǒng)。首先,這是一個(gè)前后端分離的項(xiàng)目。具有一個(gè)在線(xiàn)點(diǎn)餐系統(tǒng)該有的所有功能,感興趣的朋友快來(lái)看看吧2022-01-01
json序列化時(shí)忽略值為null的字段2種方式實(shí)例
這篇文章主要給大家介紹了關(guān)于json序列化時(shí)忽略值為null的字段的2種方式,當(dāng)對(duì)象中某個(gè)字段為null時(shí),我們希望將對(duì)象轉(zhuǎn)換成json時(shí)為null的字段不會(huì)被轉(zhuǎn)換到j(luò)son字符串,里面需要的朋友可以參考下2023-10-10
MyBatis-Plus?ORM數(shù)據(jù)庫(kù)和實(shí)體類(lèi)映射方式
本文詳細(xì)介紹了MyBatis-Plus(MP)在數(shù)據(jù)庫(kù)和Java對(duì)象映射方面的功能,包括基本映射、主鍵生成策略、復(fù)雜映射(如嵌套對(duì)象和集合類(lèi)型)以及自定義SQL的使用,MP通過(guò)豐富的注解和XML配置,簡(jiǎn)化了數(shù)據(jù)庫(kù)操作,提高了開(kāi)發(fā)效率2025-01-01
新的Java訪(fǎng)問(wèn)mysql數(shù)據(jù)庫(kù)工具類(lèi)的操作代碼
本文通過(guò)實(shí)例代碼給大家介紹新的Java訪(fǎng)問(wèn)mysql數(shù)據(jù)庫(kù)工具類(lèi)的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2021-12-12
Java實(shí)現(xiàn)線(xiàn)程插隊(duì)的示例代碼
在編寫(xiě)多線(xiàn)程的業(yè)務(wù)時(shí),會(huì)遇到讓一個(gè)線(xiàn)程優(yōu)先于其他線(xiàn)程運(yùn)行的情況,除了可以設(shè)置線(xiàn)程的優(yōu)先級(jí)高于其他線(xiàn)程,還有更直接的方式:線(xiàn)程插隊(duì)。本文將用Java實(shí)現(xiàn)線(xiàn)程插隊(duì),需要的可以參考一下2022-08-08

