数组在dao中如何操作以及怎么样把String类型的数组转换成int类型的数组呢?

与世无争的帅哥 提交于 2020-03-10 08:25:21

我要做的功能是:权限管理(修改用户所拥有的菜单),以上问题是我遇到的困难并解决。

思路:

1.获取所选中的菜单ID,2.删除该角色ID的角色菜单中间表,3.新增该角色ID的角色菜单中间表

接口:

 //增加角色菜单中间表
  public int addRoleMenu(int roleId, int[] menuIds) throws Exception;

数组在dao中如何操作:

@Override
	public int addRoleMenu(int roleId, int[] menuIds) throws Exception {
		//增加角色菜单中间表
		String sql="INSERT INTO T_ROLE_MENU(ROLE_ID,MENU_ID) VALUES(?,?)";
		Object[][]params=new Object[menuIds.length][];
		for(int i=0;i<menuIds.length;i++) {
			params[i]=new Object[2];
			params[i][0]=roleId;
			params[i][1]=Integer.valueOf(menuIds[i]);
		}
		return runner.batch(JDBCUtil.getConnection(), sql, params).length;
	}

应该也可以这样做:(写了方法但没调)

@Override
	public int addRoleMenu(RoleMenu roleMenu) {
		Connection conn=DBUtil.getConnection();
		PreparedStatement ps = null;
		String sql="INSERT INTO T_ROLE_MENU(ROLE_ID,MENU_ID) VALUES(?,?)";
		try {
			ps = conn.prepareStatement(sql);
			ps.setInt(1, roleMenu.getRoleId());
			ps.setInt(2, roleMenu.getMenuId());
			return ps.executeUpdate();
		} catch (SQLException e) {
			e.printStackTrace();
		}finally {
			DBUtil.closeConn(conn, ps, null);
		}
		return 0;
	}

怎么样把String类型的数组转换成int类型的数组?

// 获取所选菜单
		String menuList = request.getParameter("menuList");//"2,12,15,3,18,19,"
		String[] menuIds = menuList.split(",");//[0] "2" [1] "12" [2] "15"....
		int menuId[] = new int[menuIds.length];//[0]  2  [1]  12  [2]  15....
		for (int i = 0; i < menuIds.length; i++) {
			menuId[i] = Integer.parseInt(menuIds[i]);
		}

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!