文档章节

MiniDao普通项目集成方案

AK_47
 AK_47
发布于 2016/03/30 22:45
字数 675
阅读 26
收藏 0

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());

       }

}

}

 

© 著作权归作者所有

共有 人打赏支持
AK_47
粉丝 16
博文 533
码字总数 569998
作品 0
嘉定
程序员
私信 提问
MiniDao-PE版 1.5.4 发布,轻量级J2EE持久化解决方案

MiniDao-PE精简版(轻量级持久层) MiniDao-PE是一种轻量级J2EE持久层解决方案,类似mybatis持久层的SQL方式,可以轻松集成Hibernate项目,事务统一管理,解决了Hibernate项目支持类mybaits...

Jeecg
2016/01/19
2.1K
1
Minidao_1.6.2 发布,超轻量 Java 持久化框架

Minidao_1.6.2 版本发布了,超轻量Java持久化框架 升级日志 1,扩展新标签@param 2,支持拦截器 Interceptor 3,提高分页效率,SqlServer兼容问题处理 4,升级spring4 Minidao 简介 MiniDao ...

Jeecg
2017/08/18
777
2
MiniDao 1.5.1 发布,J2EE 持久化解决方案

为什么需要MiniDao? MiniDao是什么,不知道的朋友可以看看这里: http://zhangdaiscott.github.io/MiniDao Mybatis的灵活,Hibernate的简便。Hibernate的项目随着业务复杂度增高,逐渐遇到瓶颈...

Jeecg
2015/06/23
6.8K
10
MiniDao_1.6-SNAPSHOT 版本发布

MiniDao-PE 简介 MiniDao-PE 是一种持久化解决方案,类似mybatis的持久层解决方案,可以轻松集成Hibernate工程,事务统一管理,解决了Hibernate工程想支持mybaits的功能问题。Hibernate的最佳...

多吉Q
2016/07/20
4K
2
Minidao 1.6.2 发布,轻量 Java 持久化框架

Minidao 1.6.2 版本发布,超轻量Java持久化框架(Hibernate完美助手) 升级日志 支持自增主键策略模式 支持自定义扩展主键策略 新增示例:自增主键策略模式 新增示例:存储过程调用 新增示例...

Jeecg
2018/03/09
894
2

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 看见这花臂了么?赶紧叫大佬!

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @宇辰OSC :分享周华健的单曲《有没有一首歌会让你想起我》 《有没有一首歌会让你想起我》- 周华健 手机党少年们想听歌,请使劲儿戳(这里) ...

小小编辑
今天
98
4
Confluence 6 升级中的一些常见问题

升级的时候遇到了问题了吗? 如果你想尝试重新进行升级的话,你需要首先重新恢复老的备份。不要尝试再次对 Confluence 进行升级或者在升级失败后重新启动老的 Confluence。 在升级过程中的一...

honeymoose
今天
2
0
C++随笔(四)Nuget打包

首先把自己编译好的包全部准备到一个文件夹 像这样 接下来新建一个文本文档,后缀名叫.nuspec 填写内容 <?xml version="1.0"?><package xmlns="http://schemas.microsoft.com/packaging/201......

Pulsar-V
今天
3
0
再谈使用开源软件搭建数据分析平台

三年前,我写了这篇博客使用开源软件快速搭建数据分析平台, 当时收到了许多的反馈,有50个点赞和300+的收藏。到现在我还能收到一些关于dataplay2的问题。在过去的三年,开源社区和新技术的发...

naughty
今天
20
0
Python3的日期和时间

python 中处理日期时间数据通常使用datetime和time库 因为这两个库中的一些功能有些重复,所以,首先我们来比较一下这两个库的区别,这可以帮助我们在适当的情况下时候合适的库。 在Python文...

编程老陆
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部