隨着技術的不斷進步,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-hant/n/136614.html