MiniDao普通项目集成方案
1、导入必要的jar包:
2、spring配置文件增加如下配置:
<!-- Hibernate工具栏配置-->
<bean
id="miniDaoHiberCommonDao"
class="org.jeecgframework.minidao.hibernate.dao.impl.GenericBaseCommonDao">
<property
name="sessionFactory">
<ref
bean="sessionFactory"/>
</property>
</bean>
<!-- MiniDao动态代理类 -->
<bean
id="miniDaoHandler"class="org.jeecgframework.minidao.aop.MiniDaoHandler">
<property
name="jdbcTemplate"
ref="jdbcTemplate"></property>
</bean>
<!-- 注册MiniDao接口,配置该bean,在web容器启动时会扫描指定包下的含有@MiniDao注解的接口类,在使用到接口类的方法时会通过动态代理的方式来调用指定方法
-->
<bean
class="org.jeecgframework.minidao.factory.MiniDaoBeanFactory">
<property
name="packagesToScan">
<list>
<value>examples.dao.*</value>
</list>
</property>
</bean>
3、编写数据接口层接口类(该类需增加@MiniDao注解才会被MiniDao所识别)的方式有3种:在其接口方法上增加@Arguments注解或@Sql注解,或者该类继承MiniDaoSupportHiber<T>类的方式来告诉MiniDao的动态代理类需要以哪种方式来进行数据库的交互。
1)@Arguments:如果使用该注解则需要增加对应的sql文件,文件名为“接口名_方法名.sql”,该文件的存放位置与接口类所在的包同级,包名为sql,该注解的数量与sql文件的数量相同,如果有多个参数用逗号分隔,参数名称应与sql文件内的一致,在sql文件中使用参数时应在参数前加“:”(冒号),如果该参数为实体类,则通过“.”(英文状态下的点)导航其属性,该sql文件支持freemarker的语法。
2)@Sql:如果使用该注解则直接在该注解类写sql代码,如果有参数则sql语句的写法与@Arguments方式的sql文件写法相同。
3)继承MiniDaoSupportHiber<T>类:可直接调用该父类的方法。
示例:
接口和SQL文件对应目录
接口定义[EmployeeDao.java]
@MiniDao
public interface EmployeeDao{
@Arguments("employee")
public List<Map>getAllEmployees(Employee employee);
@Arguments("empno")
Employee getEmployee(String empno);
@Arguments({"empno","name"})
Map getMap(String empno,String name);
@Sql("SELECT count(*) FROMemployee")
Integer getCount();
@Arguments("employee")
int update(Employee employee);
@Arguments("employee")
void insert(Employee employee);
}
SQL文件[EmployeeDao_getAllEmployees.sql]
SELECT * FROM employee where1=1
<#if employee.age?exists>
and age = :employee.age
</#if>
<#if employee.name?exists>
and name = :employee.name
</#if>
<#if employee.empno?exists>
and empno = :employee.empno
</#if>
MiniDao接口配置
<!--
注册MiniDao接口 -->
<beanclass="org.jeecgframework.minidao.factory.MiniDaoBeanFactory">
<propertyname="packagesToScan">
<list>
<value>examples.dao.*</value>
</list>
</property>
</bean>
测试代码
public class Client {
public static voidmain(String args[]) {
BeanFactory factory = newClassPathXmlApplicationContext(
"applicationContext.xml");
EmployeeDao employeeDao = (EmployeeDao)factory.getBean("employeeDao");
Employee employee = new Employee();
List<Map> list = employeeDao.getAllEmployees(employee);
for(Map mp:list){
System.out.println(mp.get("id"));
System.out.println(mp.get("name"));
System.out.println(mp.get("empno"));
System.out.println(mp.get("age"));
System.out.println(mp.get("birthday"));
System.out.println(mp.get("salary"));
}
}
}
接口定义[JeecgDemoDao.java]
@MiniDao
public interface JeecgDemoDaoextendsMiniDaoSupportHiber<JeecgDemo>{
@Sql("SELECT count(*)FROM
jeecg_demo")
Integer getCount();
}
MiniDao接口配置
<!--
注册MiniDao接口 -->
<beanclass="org.jeecgframework.minidao.factory.MiniDaoBeanFactory">
<propertyname="packagesToScan">
<list>
<value>examples.dao.*</value>
</list>
</property>
</bean>
测试代码
public class Client {
public static voidmain(String args[]) {
BeanFactory factory =
newClassPathXmlApplicationContext(
"applicationContext.xml");
JeecgDemoDaojeecgDemoDao = (JeecgDemoDao) factory.getBean("jeecgDemoDao");
jeecgDemoDao.getCount();
JeecgDemo s =jeecgDemoDao.getByIdHiber(JeecgDemo.class,"402880e7408f53a401408f53a5aa0000");
if(s!=null){
System.out.println(s.getUserName());
}
}
}
分享到:
相关推荐
Java迷你游戏商店 小游戏商店是一个简单的游戏管理项目。 Java编程语言和Netbeans是其完成的核心要素。此外,该项目使用 SQLite 数据库作为存储用户和游戏信息的后端支持。为了运行该项目,您需要 NetBeans/Eclipse ...
迷你DVD项目是一个典型的北大青鸟Java学士后第一单元的上级实践项目,旨在帮助学员深入理解和应用Java编程语言,特别是面向对象的设计原则和方法。在这个项目中,学员将接触到DVD租赁系统的开发,涵盖用户管理、DVD...
本文将详细解析项目的功能分析、方案论证,并着重介绍LM386这款经典的迷你功放芯片。 首先,音频功放的主要功能分为几个部分:耳机功率输出、音响功率输出以及耳聋助听器功率支持。对于耳机功率,通常需求在2mW到几...
总体而言,【Java迷你青春购物系统】是一个涵盖多种技术的综合项目,不仅涉及后端开发、数据库设计、前端交互,还包括了安全、支付、物流等多个电商系统的核心组成部分。这个系统可以作为一个学习和实践Java全栈开发...
Biker Stars Racer 骑自行车的明星赛车手黄金版Unity迷你摩托游戏项目源码C# 支持Unity版本5.4.0f3及以上 项目大小1.4G 描述 Biker Stars Racer 是一个专为摩托车游戏设计的新包,让您能够轻松地工作和操控。 该...
Weapon Craft Run 武器组合跑酷Unity休闲武器拼装跑酷迷你小游戏项目源码C# 支持2021.3.29f1或更高 在 Weapon Craft Run 中,一切都与工艺、奔跑和完美射击有关。升级你的枪,建造你的军火库,并成为这款令人兴奋的...
【标题】"光盘启动含WiN迷你系统(集成PE系统)"所指的是一种特殊设计的操作系统,通常称为“Windows预安装环境”(Windows Preinstallation Environment,简称PE系统)。这种系统是一个精简版的Windows,主要用于系统...
【标题】:“Nutz迷你项目” “Nutz迷你项目”是一个基于Nutz框架的小型项目实例,旨在帮助开发者快速理解和应用Nutz这个轻量级Java开发框架。Nutz是由中国的一群开源爱好者开发的,它提供了包括ORM、HTTP客户端、...
Turbo Race 涡轮竞速 Unity迷你轨道赛车游戏项目源码C# 支持Unity版本2020.3.40f1及以上 描述 穿过高速轨道和隧道。撞上其他赛车,将它们从比赛中淘汰。飞离赛道走捷径,在比赛中领先。感觉需要速度吗?准备好,准备...
迷你FTPD项目是一个小型的FTP(文件传输协议)服务器实现,通常用于教学或者简单的文件共享。这个项目由多个源文件组成,每个文件负责不同的功能模块,让我们逐一了解这些文件的作用和其中涉及的知识点。 1. **...
通过以上分析,我们可以看到,迷你DVD管理器项目涵盖了从数据库设计、用户界面开发、数据处理到系统测试等多个IT领域的知识。开发者需要具备扎实的编程基础,良好的软件工程实践,以及对用户体验的敏感度,才能打造...
《厂房高清监控系统项目解决方案》 随着工业化进程的加速和科技的不断发展,工厂企业的安全防范意识日益增强,厂房高清监控系统成为了保障生产安全、提升管理效率的重要工具。本文将详细介绍一个全面的厂房网络高清...
Monster DIY Makeover 怪物DIY改造Unity迷你手办制作游戏项目源码C# 支持Unity版本2021.3.4f1或更高 描述 通过 Monster DIY Makeover 改变您的造型!释放你内心的生物,尽情享受令人恐惧的迷人改造。竟敢作妖! 怎么...
Tap Soccer 踢踏足球Unity迷你休闲足球项目源码C# 支持Unity版本2017.1.1f1及以上 描述 Tap Soccer 是一款带有逼真动画的休闲足球/橄榄球游戏。只需点击即可传球或射门。 为智能、战术性人工智能做好准备,形成具有...
海尔U-home智能家居整体项目解决方案是针对现代家庭智能化需求而设计的一种综合系统,旨在提供便捷、安全、节能的生活体验。此方案特别关注别墅型豪华版,为高端用户打造一个全方位的智能生活环境。 首先,U-home...
Zombie Drive 僵尸驾驶Unity迷你赛车碰撞游戏项目源码C# 支持Unity版本2018.3.5f1及以上 商品描述 僵尸无处不在。不幸的是,你没有任何武器。但你确实有车!现在让那些僵尸看看谁才是老大!你会通过所有关卡并成为...
通过这个迷你FlaskWebpack项目,你可以学习到如何构建一个集成了现代前端构建工具的Python Web应用,提升项目的开发效率和用户体验。理解并掌握Flask与Webpack的集成,对于任何想要在Python Web开发中引入前端最佳...