MiniDao普通项目集成方案

简介: 1、导入必要的jar包:     2、spring配置文件增加如下配置:                                                                                                                        examples.

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

       }

}

}

 

相关文章
|
2月前
|
JavaScript 前端开发
如何在项目中集成 Babel?
如何在项目中集成 Babel?
48 3
|
1月前
|
DataWorks 数据挖掘 大数据
方案实践测评 | DataWorks集成Hologres构建一站式高性能的OLAP数据分析
DataWorks在任务开发便捷性、任务运行速度、产品使用门槛等方面都表现出色。在数据处理场景方面仍有改进和扩展的空间,通过引入更多的智能技术、扩展数据源支持、优化任务调度和可视化功能以及提升团队协作效率,DataWorks将能够为企业提供更全面、更高效的数据处理解决方案。
|
3月前
|
存储 JavaScript 数据库
ToB项目身份认证AD集成(一):基于目录的用户管理、LDAP和Active Directory简述
本文介绍了基于目录的用户管理及其在企业中的应用,重点解析了LDAP协议和Active Directory服务的概念、关系及差异。通过具体的账号密码认证时序图,展示了利用LDAP协议与AD域进行用户认证的过程。总结了目录服务在现代网络环境中的重要性,并预告了后续的深入文章。
|
3月前
|
人工智能 JavaScript 网络安全
ToB项目身份认证AD集成(三完):利用ldap.js实现与windows AD对接实现用户搜索、认证、密码修改等功能 - 以及针对中文转义问题的补丁方法
本文详细介绍了如何使用 `ldapjs` 库在 Node.js 中实现与 Windows AD 的交互,包括用户搜索、身份验证、密码修改和重置等功能。通过创建 `LdapService` 类,提供了与 AD 服务器通信的完整解决方案,同时解决了中文字段在 LDAP 操作中被转义的问题。
|
3月前
|
jenkins Shell 持续交付
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(二)
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(二)
109 0
|
3月前
|
安全 Java 测试技术
ToB项目身份认证AD集成(二):快速搞定window server 2003部署AD域服务并支持ssl
本文详细介绍了如何搭建本地AD域控测试环境,包括安装AD域服务、测试LDAP接口及配置LDAPS的过程。通过运行自签名证书生成脚本和手动部署证书,实现安全的SSL连接,适用于ToB项目的身份认证集成。文中还提供了相关系列文章链接,便于读者深入了解AD和LDAP的基础知识。
105 0
|
3月前
|
Java Shell 开发工具
git集成IDEA,托管项目实现版本管理
git集成IDEA,托管项目实现版本管理
47 0
|
3月前
|
jenkins Shell 持续交付
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(一)
Jenkins持续集成GitLab项目 GitLab提交分支后触发Jenkis任务 持续集成 CI/CD 超级详细 超多图(一)
303 0
|
3月前
|
Java Maven Docker
gitlab-ci 集成 k3s 部署spring boot 应用
gitlab-ci 集成 k3s 部署spring boot 应用
|
2月前
|
消息中间件 监控 Java
您是否已集成 Spring Boot 与 ActiveMQ?
您是否已集成 Spring Boot 与 ActiveMQ?
67 0

热门文章

最新文章