隨著技術的不斷進步,JavaWeb 開發已經成為了一種熱門的技術趨勢。在 JavaWeb 開發中,訪問資料庫是一項必不可少的工作。minidao 是一款輕量級的 ORM 框架,它可以幫助我們更加方便地完成資料庫的操作。下面將對 minidao 框架進行深入探究。
1、minidao 簡介
minidao 是基於 Spring 微內核的 ORM 框架,主要使用了兩種設計模式——Spring BeanFactory 設計模式和後處理器模式。它提供了一種方便、簡單的方式訪問資料庫,也是一個輕量的 ORM 框架。
minidao 提供了多種資料庫支持,目前支持的資料庫包括Mysql、Postgresql、Oracle、SqlServer等。同時,它還提供了非常實用的註解工具類,可以在編譯期完成 SQL 語句的拼裝,並且支持多種分頁方式。
1.1 minidao 特點
1)、簡單易用,只需要在 POJO 中添加註解就可以完成 CRUD 操作。
2)、在 DAO 介面中使用註解方式完成 SQL 語句拼裝。
3)、參數綁定和結果集映射實現了降低資料庫訪問的開銷。
4)、支持多重數據源訪問。
5)、支持多種分頁方式,如 Oracle、Mysql、Postgresql 等分頁方式。
6)、支持 SpringBoot 快速集成。
1.2 minidao 使用限制
1)、兼容性:最低兼容 Java1.7 以上。
2)、minidao 不支持存儲過程、函數、觸發器等操作,也不支持將一個邏輯操作分解為若干子操作後再進行執行。
2、minidao 使用示例
2.1 添加 minidao 依賴
在 pom.xml 文件中添加以下依賴:
<dependency>
<groupId>com.github.drinkjava2</groupId>
<artifactId>mini-dao</artifactId>
<version>3.0.0</version>
</dependency>
2.2 配置數據源
在 Spring 配置文件中,配置數據源並引入 minidao:
<!-- 定義數據源 -->
<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/test" />
<property name="username" value="root" />
<property name="password" value="123456" />
</bean>
<!-- 配置 minidao -->
<bean id="miniDao" class="org.nutz.dao.impl.NutDao">
<constructor-arg ref="dataSource" />
</bean>
2.3 編寫 DAO 層代碼
在 DAO 介面中使用相關註解,進行 SQL 語句的拼裝工作。
public interface UserDao {
// 添加用戶
@Sql("insert into user(username,password) values(@user.username,@user.password)")
@Transcation
void addUser(@Param("user") User user);
// 刪除用戶
@Sql("delete from user where id=@id")
@Transcation
void deleteUser(@Param("id") int id);
// 查詢所有用戶
@Sql("select * from user")
List<User> findAll();
// 根據 ID 查詢用戶
@Sql("select * from user where id=@id")
User findById(@Param("id") int id);
// 更新用戶
@Sql("update user set username=@user.username,password=@user.password where id=@user.id")
@Transcation
void updateUser(@Param("user") User user);
}
2.4 編寫 Service 層代碼
在 Service 層中進行事務管理:
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
@Override
public void addUser(User user) {
userDao.addUser(user);
}
@Override
public void deleteUser(int id) {
userDao.deleteUser(id);
}
@Override
public List<User> findAll() {
return userDao.findAll();
}
@Override
public User findById(int id) {
return userDao.findById(id);
}
@Override
public void updateUser(User user) {
userDao.updateUser(user);
}
}
2.5 配置 Mybatis 分頁插件
minidao 使用 Mybatis 分頁插件進行分頁,首先需要在 pom.xml 文件中添加插件依賴:
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
</dependency>
然後在 Spring 配置文件中添加 Mybatis 配置:
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="mapperLocations" value="classpath*:mapper/*.xml" />
<!-- 添加 Mybatis 分頁插件配置 -->
<property name="plugins">
<array>
<bean class="com.github.pagehelper.PageInterceptor">
<property name="properties">
<props>
<!-- 資料庫方言 -->
<prop key="helperDialect">mysql</prop>
<!-- 分頁合理化參數驗證,默認為 true。如果設置為 true,pageNum<1 時會查詢第一頁,pageNum>pages(超過總數時),會查詢最後一頁。如果設置為 false,直接根據參數進行查詢。 -->
<prop key="reasonable">true</prop>
<!-- 支持通過 Mapper 介面參數來傳遞分頁參數 -->
<prop key="supportMethodsArguments">true</prop>
<!-- 默認通過 ThreadLocal 存儲方法調用的分頁參數,可以配置為每次調用時都傳遞參數。PageHelper.startPage(int pageNum,int pageSize,boolean count) 方法中的 count 參數即為配置的參數,true 時則會進行 count(1) 操作,消耗不少性能。 -->
<prop key="rowBoundsWithCount">true</prop>
</props>
</property>
</bean>
</array>
</property>
</bean>
2.6 使用分頁插件進行分頁
在 DAO 層代碼中,使用 minidao 提供的 Pager 類進行分頁操作。
public interface UserDao {
// 分頁查詢所有用戶
@Sql("select * from user")
List<User> findAll(Pager pager);
}
在 Service 層代碼中,調用 DAO 層方法進行分頁查詢操作。
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
@Override
public List<User> findAll(int pageNum, int pageSize) {
Pager pager = Pager.create(pageNum, pageSize);
return userDao.findAll(pager);
}
}
3、總結
本文對 minidao 框架進行了深入的探究,介紹了其主要特點和使用方法。minidao 是一個非常方便、實用的 ORM 框架,可以幫助開發者們更加便捷地完成資料庫操作。相信掌握了 minidao 的使用方法後,開發效率會得到很大的提升。
原創文章,作者:WQED,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/136614.html
微信掃一掃
支付寶掃一掃