我想清空mysql的所有表 但在删除时报错,我的sql是否有问题

try {
        conn = super.openDB();
        if(conn!=null ){
            conn.setAutoCommit(false);

            String sql="show tables";
            ps = conn.prepareStatement(sql);
            rs = ps.executeQuery();
            while (rs.next()) {
                String tbname=rs.getString(1);
                //ls.add(tbname);

                sql="truncate table ?";
                ps = conn.prepareStatement(sql);
                ps.setString(1, tbname);
                System.out.println(tbname);
                ps.executeUpdate();
            }

报什么错,把你的错贴出来啊