在列表项所显示的数据 ,是通过一个任务节点表和任务表进行查询统计.
这是写在ibatis.xml里面的SQL!
SELECT d.name as businessType,d.userName as userName,count(d.userId) as countNum ,d.taskId,d.userId
from (select b.taskId,b.userId,b.userName,c.code,c.name from
(select taskId,userId,userName from T_OA_TaskNode group by taskId,userId,userName) as b
left join T_OA_Task as a on b.taskId = a.id
left join SY_YeWuLeiXingWeiHu as c on a.businessType = c.id
where
<if test="orgId != 0">
b.userId in (select id from HI_User WHERE org = #{orgId}) and
</if>
a.businessType IS NOT NULL and a.businessType!=' ' and a.status=1) as d
group by d.username ,d.code,d.name,d.taskId,d.userId
同过这条SQL的句子 ,来查询统计.
树的每个部门都是一个treeId,点击后会往Action里面传递一个treeId,treeId是根据Org一个部门表的id.所以treeid对应的也就是orgid。
Action里面的代码是这样处理的:
public String countNum() {
String userName = user.getUserName();// 获取登录系统用户名
Integer treeId = Integer.valueOf(request.getParameter("treeId"));// 获取树ID
if (userName.equals("Xxy")) { //管理员的orgId为null,所以,这只能根据他的名字来判断,而管理员能看到所有的人员 和每个部门的人员.
操作是根据treeId
list = JianGuanLvZhiService.countJianGuanLvZhi(treeId);
}else{//这里就是其它的普通用户了,是根据登录后取到得用户Id
0 查询所有 ,如果treeId等于用户ID ,就能看到当前部门的
int orgId = user.getOrg().getId();
if (treeId == 0 || treeId == orgId) {
list = JianGuanLvZhiService.countJianGuanLvZhi(treeId);
}
}
returnPageURL = "/taskManagement/jianguanlvzhi/JianGuanLvZhi.jsp";
return "dispatcher";
}
下面是具体的Service:
public static List countJianGuanLvZhi(int orgId) {//通过action里面传过来的treeId,这里用的是Map
CommonService commonService = (CommonService) SpringContextHolder.getBean("commonServiceImpl");
Map parMap = new HashMap();
parMap.put("orgId", orgId);
list = commonService.getManyObject("org.hi.zongheguanli.taskmanagement.dao.ibatis3.JianGuanLvZhi.selectJianGuanLvZhi", parMap);
return list;
}
上面已经贴出来XML.配置文件里面的SQL了 ..
这个语句我也不是很懂 ,是高人指点我写出来的 ..
大概的意思 ,我明白!
刚开发不久 ,每次做完一个功能 ,都会写一点总结 ,算是积累 ,以后总是会用到的!
- 大小: 48.9 KB
分享到:
相关推荐
在实际开发中,还需要注意一些兼容性和性能问题。例如,确保MySQL服务器和驱动版本匹配,以及合理配置连接池以提高应用性能。在处理大量并发请求时,应考虑使用连接池(如HikariCP、C3P0等),以重用数据库连接,...
1. **libs**:包含了Selenium Java绑定所需的库文件,这些jar文件在编写测试脚本时需要引入到项目中。 2. **src**:源代码目录,对于开发者来说,查看源码有助于深入理解其工作原理。 3. **docs**:文档目录,可能...
这个版本`5.1.40`代表的是该驱动的特定版本,可能包含了一些安全修复、性能优化和新功能。 在Java程序中,使用MySQL Connector/J通常需要以下步骤: 1. **引入依赖**:将`mysql-connector-java-5.1.40.jar`添加到...
总之,"java-1.8.0-openjdk.linux.x86_64"是Linux系统上用于开发和运行Java应用的重要软件包,包含了Java开发和运行所需的所有基本组件,支持最新的Java 8特性,并针对64位系统进行了优化。安装和使用这个包,开发者...
安装与使用MySQL Connector/J非常简单,通常将其添加到Java项目的类路径中即可。在Maven项目中,可以在pom.xml文件中添加如下依赖: ```xml <groupId>mysql <artifactId>mysql-connector-java <version>8.0.22 ...
在Java项目中,src通常分为多个包,如com.alipay、com.example.demo等,分别存放不同功能模块的类。在这个支付接口的demo中,开发者会找到实现支付功能的关键类,如与支付宝API交互的工具类、处理支付请求和响应的...
这个版本是纯净且正版的,适合于Java开发者在他们的项目中直接集成使用。 在Java编程中,为了连接到MySQL数据库,我们需要一个适配器或驱动程序,这就是MySQL Connector/J的角色。它实现了JDBC(Java Database ...
除了基本的SQL操作,MySQL Connector/J还提供了高级功能,如连接池管理、事务控制、预编译的SQL语句、结果集缓存等。连接池如C3P0或HikariCP可以帮助管理数据库连接,提高应用的性能和可伸缩性。 此外,MySQL ...
首先,我们来了解MySQL Connector/J的基本功能。它是MySQL官方推荐的用于Java应用的JDBC驱动,支持标准的JDBC接口,如Connection、Statement、PreparedStatement、ResultSet等,使得开发人员无需关注底层数据库操作...
Java 1.8.0 OpenJDK 1.8.0.222-2 是一个针对Windows x64平台的开源Java开发工具包,它提供了完整的Java开发环境,包括Java虚拟机(JVM)、Java类库以及用于构建和运行Java应用程序所需的其他组件。这个版本的OpenJDK...
需要注意的是,虽然java-unrar库提供了基本的RAR操作,但并不包含RAR文件的创建或更新功能,也就是说,它主要用于读取和解压,而不是打包和压缩RAR文件。 此外,由于RAR格式有多种版本,包括RAR1.5、RAR2.x、RAR4.x...
总的来说,`mysql-connector-java-5.0.8-bin.jar`是Java开发人员与MySQL数据库交互的关键组件,它的存在使得Java应用程序能够无缝地利用MySQL的强大功能。了解如何正确配置和使用这个驱动包,对于任何涉及Java和...
除了基本的数据库连接和查询,`mysql-connector-java`还支持更高级的功能,如事务处理、存储过程调用、批处理操作、连接池管理等。同时,它也提供了异常处理机制,帮助开发者更好地处理可能出现的错误和异常情况。 ...
除了基本的连接功能,`mysql-connector-java`还提供了许多高级特性,如预编译的SQL语句(PreparedStatement)、批处理操作、连接池支持、事务处理等。例如,预编译的SQL语句可以防止SQL注入攻击,提高执行效率,并能...
这个库是Java编程语言中的一个开源项目,主要用于提供一些通用的、跨平台的Java工具和实用程序。在Java开发中,这样的库可以极大地提高开发效率,因为它封装了常见的功能,开发者可以直接使用,而无需从头编写代码。...
MySQL Connector/J 5.1.37 是 MySQL 数据库与 Java 应用程序之间的关键桥梁,它是 MySQL 官方提供的一个驱动程序,使得 Java 开发人员能够通过 JDBC(Java Database Connectivity)接口与 MySQL 数据库进行交互。...
在使用这个驱动之前,你需要将其添加到Java项目的类路径中。这可以通过多种方式实现,如在IDE(如Eclipse、IntelliJ IDEA)中设置项目构建路径,或者在命令行执行Java程序时使用`-cp`或`-classpath`选项。一旦驱动被...
这个版本1.11.46可能包含了一些bug修复、性能优化或新功能。 3. ScalaTest:这是一个强大的测试框架,专为Scala设计,支持多种测试风格,如行为驱动开发(BDD)和规范驱动开发(FDD)。它提供了丰富的断言库和灵活...
1. "taobao-sdk-java-auto_1479188381469-20190920.jar" - 这是主SDK的二进制文件,包含了所有必要的类和库,使得开发者可以直接在Java项目中引用,实现与淘宝接口的交互,包括钉钉扫码登录的相关功能。 2. "taobao...
开发者可以创建Java项目,设置构建路径,管理依赖关系,以及配置构建和部署选项。 4. **调试工具**:Eclipse的调试器使得代码调试变得直观,支持断点、单步执行、查看变量值、调用栈跟踪等功能。 5. **版本控制**...