很多情况下,一个简单的固定参数查询,在mybatis中单独去写xml解决这个问题就有点小题大作了。替代方法是使用注解,直接在dao中写接口方法即可。本着精简的原则写一个示意给大家看
写道
/**
* 订单总金额
* @param billId
* @return
*/
@Select("select sum(price) from s_bill_detail where bill_id = #{billId}")
BigDecimal getBillCharge(@Param("billId") String billId);
* 订单总金额
* @param billId
* @return
*/
@Select("select sum(price) from s_bill_detail where bill_id = #{billId}")
BigDecimal getBillCharge(@Param("billId") String billId);
如果参数是一个集合类型,示例如下,主要方式是在原有SQL外包一层<script></script> 然后其中就可以按xml中的写法随意写了。
写道
/**
* 判断传入的素材编号中有哪些存在历史报价
* @param resIds
*/
@Select("<script>" +
"select\n" +
" distinct\n" +
" d.res_id\n" +
"from\n" +
" s_bill_detail d\n" +
"where\n" +
" d.confirm_time >= DATE_SUB(NOW() , INTERVAL 6 month)\n" +
" and d.res_id in" +
"<foreach collection='resIds' item='item' open='(' separator=',' close=')'>" +
"#{item} "+
"</foreach>" +
"</script>")
List<String> getPriceQuotedResIdsByResIds(@Param("resIds") List<String> resIds);
* 判断传入的素材编号中有哪些存在历史报价
* @param resIds
*/
@Select("<script>" +
"select\n" +
" distinct\n" +
" d.res_id\n" +
"from\n" +
" s_bill_detail d\n" +
"where\n" +
" d.confirm_time >= DATE_SUB(NOW() , INTERVAL 6 month)\n" +
" and d.res_id in" +
"<foreach collection='resIds' item='item' open='(' separator=',' close=')'>" +
"#{item} "+
"</foreach>" +
"</script>")
List<String> getPriceQuotedResIdsByResIds(@Param("resIds") List<String> resIds);
相信大家能举一反三,写个动态查询也没有问题了吧
相关推荐
XML 配置是通过编写 XML 文件来配置数据库的映射关系,而注解配置则是通过在 Java 代码中使用注解来配置数据库的映射关系。本文将详细介绍 Mybatis 的注解写法,并提供 10 余个常用的示例代码。 Mybatis 注解写法的...
MyBatis可以使用简单的XML或注解来配置和映射原生信息,将接口和Java的POJOs(PlainOld Java Objects,普通的Java对象)映射成数据库中的记录。 1. foreach循环 在MyBatis中,foreach元素的属性主要有item、index...
在上面的示例中,我们使用了`@Insert`注解来定义一个批量插入语句,该语句将批量插入数据到`t_device_policy`表中。`foreach`元素用来遍历List集合,并将每个元素的属性值插入到数据库中。 Mybatis批量更新xml方式 ...
基于 MyBatis 的物理分页,只需简单配置,即可实现分页查询,与普通 List 查询写法一致。 10. **多数据库支持**: 分页插件兼容多种数据库,如 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、PostgreSQL、SQL ...
在 Dao 层,我们使用 MyBatis 的 @Delete 注解来实现批量删除操作: ```java @Delete("<script>" + "delete from file_info f USING resource_info k WHERE f.id = k.file_id and k.id in " + " ...
5. 编写 Service 层:在 Service 层中使用通用Mapper,例如:@Service public class TestService { @Autowired private TestMapper testMapper; public List<TestEntity> getAll() { return testMapper.selectAll();...
在Java编程语言中,"JAP分页"通常指的是Java应用程序中的分页查询技术,用于在大量数据中实现高效的检索和展示。这个压缩包文件名"JAVA JAP分页写法大全"暗示了它可能包含各种不同的分页实现示例,这对于初学者来说...
在这个例子中,`@MiniDao` 注解用于标记这是一个持久层接口,而 `@Arguments` 注解则用来指定方法参数。开发者只需要定义这样的接口,并提供相应的 SQL 语句,MiniDao-PE 将自动为这个接口生成实现类。 #### 四、...
在实际项目中,可以根据需求进一步优化,比如引入Spring Data JPA,或者使用MyBatis等其他持久化框架,以适应不同的场景和性能要求。 在学习和应用HibernateDAO的过程中,理解其工作原理和最佳实践至关重要,这有助...
easypoi 官方文档参考 easypoi的介绍 easypoi功能如同名字easy,主打的功能就是容易,让一个没见接触过...开始使用(SpringBoot+mybatis plus) 1.pom文件导入依赖 cn.afterturn easypoi-base 3.0.3 cn.a
- **Annotations(注解)**:在代码中添加元数据,用于编译时或运行时检查。 8. **数据库操作** - **JDBC**:Java数据库连接,用于与各种数据库进行交互。 - **ORM框架**:如Hibernate和MyBatis,简化了数据库...