做权限的时候,通过role角色中的roleid,在auth权限中查找角色对应的权限。

sql语句:

SELECT authName from auth where authId in (1,2,3,4,5)

in后面的东西即是角色所具有的各个权限的id,可以查出1,2,3,4,5对应的权限名字。

于是结合auth表,直接使用,sql语句为:

SELECT authName from auth where authId in (SELECT authIds from role  where roleId=1)

后面查出来的即是1,2,3,4,5这样的内容。实际中,这样会出错,并不能查出预料的结果。in后面的内容应该是("字段1",“字段2”,...),上面那种查出来的,应该是这种格式的 in ("1,2,3,4,5"),把1,2,3,4,5这五个当做一个字符串了。

然后在java代码中,可以避免这个问题,主要是因为java的string的拼接,可以方便地组装in后面括号里面的数据格式。

下面一段示例代码,就是达到想要的结果。

public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
DbUtil dbUtil=new DbUtil();
Connection connection=dbUtil.getCon();
String hql="SELECT authIds from role where roleId=1";
PreparedStatement preparedStatement2=connection.prepareStatement(hql);
ResultSet resultSet2=preparedStatement2.executeQuery();
String authid=null;
while(resultSet2.next()){
authid=resultSet2.getString("authIds");
System.out.println("authids:"+resultSet2.getString("authIds"));
} String sql="SELECT authName from auth where authId in ("+authid+")"; //拼接sql语句
PreparedStatement preparedStatement=connection.prepareStatement(sql);
ResultSet resultSet=preparedStatement.executeQuery();
while(resultSet.next()){
System.out.println("authname:"+resultSet.getString("authName"));
}
}

最新文章

  1. (一)Protobuf的Java使用
  2. ZBrush中的笔刷该怎样制作
  3. hdu4432 Sum of divisors(数论)
  4. 初学Android:意图之intent
  5. 【HDOJ】3033 I love sneakers!
  6. JAVA-POI实现EXCEL的读写
  7. PowerDesigner 为sql生成凝视
  8. Jdk1.6 JUC源码解析(12)-ArrayBlockingQueue
  9. caffe︱cifar-10数据集quick模型的官方案例
  10. Python小代码_14_交换 2 个变量的 3 种方式
  11. 使用axios 的post请求下载文件,
  12. (转)iOS学习——UIlabel设置行间距和字间距
  13. ECMAScript 6 字符串的扩展
  14. Oracle树形查询
  15. 被顶级学术期刊枪毙的p.Value到底是个什么鬼
  16. 前端html的简单认识
  17. 一个可以代替冗长switch-case的消息分发小框架
  18. WP8.1学习系列(第九章)——透视Pivot开发指南
  19. PID控制算法的C语言实现七 梯形积分的PID控制算法C语言实现
  20. NNVM代码阅读

热门文章

  1. [Nlog]使用经验
  2. [转]MVC 经验总结_EF
  3. Asp.net 页面传值的方法
  4. 浏览器禁用Cookie
  5. js 按字段分组
  6. 5月24日上课笔记-js操作DOM
  7. rm 递归删除目录下某一类型文件
  8. python学习-day 1
  9. 错误:HttpServlet was not found on the Java
  10. 彻底禁止win10更新