javaBean是一種符合特定規範的Java類,主要用於封裝資料(即屬性)以及對這些資料的操作(即方法)。JavaBean的設計目的是為了提高程式碼的可重用性和可維護性。要建立一個有效的JavaBean,你需要遵循一些基本規則:
公共類:JavaBean類通常是公共的(public),這意味著它可以被其他類訪問。
無參建構函式:JavaBean類必須有一個無引數的公共建構函式,以便例項化物件時不需要傳遞引數。
私有成員變數:JavaBean內部的資料(屬性)通常定義為私有的,以確保資料的安全性。
公共的getter和setter方法:對於每個私有成員變數,JavaBean應該提供公共的getter(用於獲取值)和setter(用於設定值)方法,這被稱為JavaBean的封裝特性。
public class Person {
// 私有成員變數
private String name;
private int age;
// 無參建構函式
public Person() {
// 建構函式主體為空
}
// Getter 方法
public String getName() {
return this.name;
}
// Setter 方法
public void setName(String name) {
this.name = name;
}
// Getter 方法
public int getAge() {
return this.age;
}
// Setter 方法
public void setAge(int age) {
this.age = age;
}
}
這樣做的好處是外部可以直接透過呼叫setName()和getName()方法來修改或獲取name的值,而不需要直接操作name本身,從而保護了資料的安全性和完整性。同樣地,也可以透過setAge()和getAge()方法來操作age屬性。
MyBatis 是一個優秀的持久層框架,它支援定製化 SQL、儲存過程以及高階對映。MyBatis 避免了幾乎所有的 JDBC 程式碼和手動設定引數以及獲取結果集。MyBatis 可以使用簡單的 XML 或註解進行配置和原始對映,將介面和 Java 的 POJOs(Plain Old Java Objects,普通的 Java 物件)對映成資料庫中的記錄。
MyBatis 的主要特點
SQL 對映檔案:MyBatis 使用 XML 檔案或者註解來配置 SQL 對映,這使得開發者可以靈活地編寫 SQL 語句,而不必擔心框架的限制。
自動對映:MyBatis 可以根據資料庫欄位和 Java 物件屬性的匹配關係自動進行物件的填充和結果的提取。
快取機制:MyBatis 提供了兩級快取機制,一級快取在 SqlSession 中,二級快取可以在多個 SqlSession 間共享。
動態 SQL:MyBatis 支援動態 SQL,可以根據不同的條件生成不同的 SQL 語句,非常方便處理複雜的查詢需求。
事務管理:MyBatis 可以整合到 Spring 框架中,利用 Spring 的事務管理功能,簡化事務處理。
外掛機制:MyBatis 提供外掛機制,允許開發者自定義攔截器,實現功能增強或擴充套件。
基本使用步驟
引入依賴:首先需要在專案中引入 MyBatis 的相關依賴。
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 java.io.IOException;
import java.io.Reader;
public class MyBatisExample {
public static void main(String[] args) {
try {
// 讀取配置檔案
Reader reader = Resources.getResourceAsReader("mybatis-config.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
// 獲取 SqlSession
SqlSession sqlSession = sqlSessionFactory.openSession();
// 呼叫對映檔案中的 SQL
User user = sqlSession.selectOne("com.example.mapper.UserMapper.selectUserById", 1);
System.out.println(user);
// 關閉 SqlSession
sqlSession.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}