Mybatis的使用(mapper介面方式)
使用 Mapper 介面的方式,不用寫介面實作類,直接完成資料庫操作,簡單方便。 為了幫助大家更學習Mapper接口,小編總結了一些關於Mapper接口的知識點,希望能夠幫助到有需要的人。
先上結構圖:
下面是具體的程式碼:
一、User.java
实体类中的的get/set方法以及构造方法及toString方法就不贴了 public class User { private int id; private String name; private int age; }
二、UserMapper.java
這是mapper接口,面向介面程式設計的想法還是很重要的。也是本次部落格文章最重要的部分。
介面定義有以下特點:
Mapper 介面方法名稱和 UserMapper.xml 中定義的每個 sql 的 id 同名。
Mapper 介面方法的輸入參數類型和 UserMapper.xml 中定義的 sql 的parameterType 類型相同。
Mapper 介面的回傳類型和UserMapper.xml 中定義的sql 的resultType 類型相同
##注意建立表格的方法,有註解@Param
package com.mi.mapper;import org.apache.ibatis.annotations.Param;import com.mi.beans.User;public interface UserMapper { void createTable (@Param("tableName") String tableName); void add(User user); void del(int id); void update(User user); User getUser(int id); User[] list(); }
三、userMappers.xml
這裡要注意 1.xml檔案的namespace要寫成mapper接口的路徑,像下面.
<mapper namespace="com.mi.mapper.UserMapper">
create table ${tableName}...
<mapper namespace="com.mi.mapper.UserMapper">create table ${tableName} (id int primary key auto_increment,name varchar(20),age int) insert into t_user(name,age) value(#{name},#{age}) delete from t_user where id = #{id} update t_user set name=#{name},age=#{age} where id=#{id}
四、conf.xml 這裡需要配置兩個東西
- ##配置JDBC的連線
- 設定mapper.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> <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://localhost:3306/mybatis" /> <property name="username" value="root" /> <property name="password" value="root" /> </dataSource> </environment> </environments> <!-- 注册userMapper.xml文件 --> <mappers> <mapper resource="com/mi/mapping/userMappers.xml"/> </mappers></configuration>
登入後複製
我在這裡寫了一個工具類別,主要目的是要拿到sqlSession,因為之後每次操作資料庫都需要寫一遍,所以進行一次封裝.
package com.mi.util;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;public class SqlSessionUtil { public static SqlSession getSqlSession() throws Exception{ String resource = "conf.xml"; //使用类加载器加载mybatis的配置文件(它也加载关联的映射文件) InputStream is = Resources.getResourceAsStream(resource); //构建sqlSession的工厂 SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is); //创建能执行映射文件中sql的sqlSession SqlSession sqlSession = sessionFactory.openSession(); return sqlSession; } }
六、MyTest.java
#這是測試類別,透過上面的工具類別sqlSession,最關鍵的是下面這句
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
MyBatis透過動態代理的方式實作mapper介面
,之後就好辦了,執行介面中準備好的方法就可以了。 注意不要忘了sqlSession.commit()和sqlSession.close().否則在執行過程中雖然不會報錯,但是資料庫中是不會有變化的.这里我只执行了创建表的方法.
package com.mi.test;import org.apache.ibatis.session.SqlSession;import com.mi.beans.User;import com.mi.mapper.UserMapper;
import com.mi.util.SqlSessionUtil;public class MyTest {
public static void main(String[] args) throws Exception {
SqlSession sqlSession = SqlSessionUtil.getSqlSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
userMapper.createTable("t_user");
sqlSession.commit();
sqlSession.close();
}
}
使用Mapper 介面的方式,不用寫入介面實作類,直接完成資料庫操作,簡單方便。
先上結構圖:
下面是具體的程式碼:
一、User.java实体类中的的get/set方法以及构造方法及toString方法就不贴了public class User { private int id; private String name; private int age;
這是mapper接口,面向介面程式設計的想法還是很重要的。也是本次部落格文章最重要的部分。
- Mapper 介面方法名稱和 UserMapper.xml 中定義的每個 sql 的 id 同名。
- Mapper 介面方法的輸入參數類型和 UserMapper.xml 中定義的 sql 的parameterType 類型相同。
- Mapper 介面的回傳類型和UserMapper.xml 中定義的sql 的resultType 類型相同
- ##注意建立表格的方法,有註解@Param
package com.mi.mapper;import org.apache.ibatis.annotations.Param;import com.mi.beans.User;public interface UserMapper { void createTable (@Param("tableName") String tableName); void add(User user); void del(int id); void update(User user); User getUser(int id); User[] list(); }
這裡要注意
1.xml檔案的namespace要寫成mapper接口的路徑,像下面.<mapper namespace="com.mi.mapper.UserMapper">
create table ${tableName}...
<mapper namespace="com.mi.mapper.UserMapper">create table ${tableName} (id int primary key auto_increment,name varchar(20),age int) insert into t_user(name,age) value(#{name},#{age}) delete from t_user where id = #{id} update t_user set name=#{name},age=#{age} where id=#{id}
四、conf.xml
這裡需要配置兩個東西
##配置JDBC的連線
設定mapper.xml
- 五、SqlSessionUtil.java
<?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> <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://localhost:3306/mybatis" /> <property name="username" value="root" /> <property name="password" value="root" /> </dataSource> </environment> </environments> <!-- 注册userMapper.xml文件 --> <mappers> <mapper resource="com/mi/mapping/userMappers.xml"/> </mappers></configuration>
登入後複製
package com.mi.util;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;public class SqlSessionUtil { public static SqlSession getSqlSession() throws Exception{ String resource = "conf.xml"; //使用类加载器加载mybatis的配置文件(它也加载关联的映射文件) InputStream is = Resources.getResourceAsStream(resource); //构建sqlSession的工厂 SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is); //创建能执行映射文件中sql的sqlSession SqlSession sqlSession = sessionFactory.openSession(); return sqlSession; } }
#這是測試類別,透過上面的工具類別sqlSession,最關鍵的是下面這句
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
,之後就好辦了,執行介面中準備好的方法就可以了。
注意不要忘了sqlSession.commit()和sqlSession.close().否則在執行過程中雖然不會報錯,但是資料庫中是不會有變化的.
这里我只执行了创建表的方法. package com.mi.test;import org.apache.ibatis.session.SqlSession;import com.mi.beans.User;import com.mi.mapper.UserMapper; import com.mi.util.SqlSessionUtil;public class MyTest { public static void main(String[] args) throws Exception { SqlSession sqlSession = SqlSessionUtil.getSqlSession(); UserMapper userMapper = sqlSession.getMapper(UserMapper.class); userMapper.createTable("t_user"); sqlSession.commit(); sqlSession.close(); } }
相關推薦:mybatis分頁外掛pageHelper實例詳解 #
Spring Boot 、 Mybatis 、 Redis快速建置現代化Web專案
以上是Mybatis的使用(mapper介面方式)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

MyBatis動態SQL標籤解讀:Set標籤用法詳解MyBatis是一個優秀的持久層框架,它提供了豐富的動態SQL標籤,可以靈活地建構資料庫操作語句。其中,Set標籤是用來產生UPDATE語句中SET子句的標籤,在更新作業中非常常用。本文將詳細解讀MyBatis中Set標籤的用法,以及透過具體的程式碼範例來示範其功能。什麼是Set標籤Set標籤用於MyBati

我們在電腦組裝的過程中,安裝過程雖然簡單,不過往往都是在接線上遇到問題,經常有裝機用戶誤將CPU散熱器的供電線插到了SYS_FAN上,雖然風扇可以轉動,不過在開機可能會有F1報錯“CPUFanError”,同時也導致了CPU散熱器無法智慧調速。下面裝機之家分享一下電腦主機板上CPU_FAN、SYS_FAN、CHA_FAN、CPU_OPT介面知識科普。電腦主機板上CPU_FAN、SYS_FAN、CHA_FAN、CPU_OPT介面知識科普1、CPU_FANCPU_FAN是CPU散熱器專用接口,12V工作

Go語言作為一門現代化的、高效的程式語言,擁有豐富的程式設計範式和設計模式可以幫助開發者編寫高品質、可維護的程式碼。本文將介紹Go語言中常見的程式設計範式和設計模式,並提供具體的程式碼範例。 1.物件導向程式設計在Go語言中,可以使用結構體和方法實現物件導向程式設計。透過定義結構體和給結構體綁定方法,可以實現資料封裝和行為綁定在一起的物件導向特性。 packagemaini

MyBatis的快取機制解析:一級快取與二級快取的差異與應用在MyBatis框架中,快取是一個非常重要的特性,可以有效提升資料庫操作的效能。其中,一級快取和二級快取是MyBatis常用的兩種快取機制。本文將詳細解析一級快取與二級快取的差異與應用,並提供具體的程式碼範例進行說明。一、一級緩存一級緩存也被稱為本地緩存,它預設開啟且不可關閉。一級快取是SqlSes

PHP介面簡介及其定義方式PHP是一種廣泛應用於Web開發的開源腳本語言,具有靈活、簡單、強大等特性。在PHP中,介面(interface)是一種定義多個類別之間公共方法的工具,實現了多態性,讓程式碼更加靈活和可重複使用。本文將介紹PHP介面的概念及其定義方式,同時提供具體的程式碼範例展示其用法。 1.PHP介面概念介面在物件導向程式設計中扮演著重要的角色,定義了類別應

報錯的原因在python中,Tornado中拋出NotImplementedError()的原因可能是因為未實作某個抽象方法或介面。這些方法或介面在父類別中聲明,但在子類別中未實作。子類別需要實作這些方法或介面才能正常運作。如何解決解決這個問題的方法是在子類別中實作父類別聲明的抽象方法或介面。如果您正在使用一個類別來繼承另一個類,並且您看到了這個錯誤,則應該在子類別中實作父類別中所有聲明的抽象方法。如果您正在使用一個接口,並且您看到了這個錯誤,則應該在實作該接口的類別中實作該接口中所有聲明的方法。如果您不確定哪些

介面和抽象類別在設計模式中用於解耦和可擴展性。介面定義方法簽名,抽象類別提供部分實現,子類別必須實作未實現的方法。在策略模式中,介面用於定義演算法,抽象類別或具體類別提供實現,允許動態切換演算法。在觀察者模式中,介面用於定義觀察者行為,抽象類別或具體類別用於訂閱和發布通知。在適配器模式中,介面用於適應現有類,抽象類或具體類可實現相容接口,允許與原有程式碼互動。

MyBatis是一款受歡迎的持久層框架,它提供了方便的SQL映射和資料庫操作功能,讓開發者能夠更有效率地與資料庫互動。在實際開發過程中,我們有時候需要在控制台即時列印出MyBatis執行的SQL語句,以便更好地偵錯和最佳化SQL查詢。本文將介紹如何實作在MyBatis中控制台即時列印SQL,並提供具體的程式碼範例。首先,我們需要在My
