关于next()方法有一点没想明白:
按照这个代码逻辑,当next()方法返回false的时候将跳出循环
那么在数据的最后一行将必然返回false
既然返回false了是如何获取到数据的?
老师我有几个问题不太明白
问题一:ResultSet中的next()游标值是从0开始的吗,类似于数组的下标吗。
问题二:ResultSet逻辑分页与Limit物理分页查询的结果为啥不一样啊,物理分页与逻辑分页开始取值的位置不一样。
问题三:关于游标由下向上取值,我看到有人问,如果说后进先出的话,那数据插入不是从上往下插入的吗,根据查询到的数据来看好像是先进先出。这点不太理解。
这几个问题不太理解,请您回答一下,谢谢老师
为什么无法调用?
package com.Dream.pojo; public class Users { private int userid; private String username; private int userage; @Override public String toString ( ) { return "Users{" + "userid=" + userid + ", username='" + username + '\'' + ", userage=" + userage + '}'; } public int getUserid ( ) { return userid; } public void setUserid ( int userid ) { this.userid = userid; } public String getUsername ( ) { return username; } public void setUsername ( String username ) { this.username = username; } public int getUserage ( ) { return userage; } public void setUserage ( int userage ) { this.userage = userage; } } ============================================================ import com.Dream.pojo.Users; import com.Dream.service.UsersService; import com.Dream.service.impl.UsersServiceImpl; public class Test1 { UsersService us=new UsersServiceImpl (); Users u=new Users ();
老师运行结果有点不对呢?
/** * 分页查询测试类 */ public class PageTest { /** * 分页查询Usera */ public Page<Users> selectPage(Page page){ Connection conn=null; PreparedStatement ps=null; ResultSet rs=null; List<Users> list=new ArrayList<>(); try { //获取连接对象 conn= JdbcUtils.getConnection(); //创建PreparedStatement对象 ps = conn.prepareStatement("select * from users limit ?,?"); //绑定m参数 m的值 = (当前页-1)*每页显示的条数//绑定m参数 m的值=(当前页-1) * 每页显示的条数 ps.setInt(1,(page.getCurrentPage()-1)*page.getPageSize()); //绑定n参数 n的值为每页显示的条数 ps.setInt(2,page.getPageSize()); //执行查询 rs=ps.executeQuery(); //处理结果集 while (rs.next()){ //完成ORM映射 Users users=new Users(); users.setUserid(rs.getInt("userid")); users.setUsername(rs.getString("username")); users.setUserage(rs.getInt("userage")); list.add(users); } //将结果集存放到Page对象中 page.setResult(list); //查询总条数 ps = conn.prepareStatement("select count(*) from users"); //执行查询 rs=ps.executeQuery(); while (rs.next()){ //总条数 int count=rs.getInt(1); //保存总条数 page.setTotalCount(count); //换算总页数=总条数/每页显示的条数 向上取整 int totalPage=(int)Math.ceil(1.0*count/page.getPageSize()); //保存总页数 page.setTotalCount(totalPage); } }catch (Exception e){ e.printStackTrace(); }finally { JdbcUtils.closeResourse(rs,ps,conn); } return page; } public static void main(String[] args) { PageTest pt=new PageTest(); Page page=new Page(); page.setCurrentPage(1); page.setPageSize(2); Page p=pt.selectPage(page); System.out.println("总条数: "+p.getTotalCount()); System.out.println("总页数: "+p.getTotalPage()); System.out.println("当前页: "+p.getCurrentPage()); System.out.println("每页显示的条数: "+p.getPageSize()); List<Users> list=p.getResult(); for (Users user:list){ System.out.println(user.getUserid()+" "+user.getUsername()+" "+user.getUserage()); } } }
实操29题我不太明白
29. 求比普通员工的最高薪水还要高的经理人名称
普通员工是指什么,如果是除过经理人的人,那么就只有一个人,如果不是那又指什么,优秀案例里面那个完全写的不是咱们这个表的查询
老师这软件不是破解版么。。。emmmmmmmmm
老师,这个方法有问题,如果i=1;i<1000时,后面的499条就不执行了,应该怎么优化呢?
if(i%500 == 0){
24 //执行sql
25 ps.executeBatch();
26
27 //清除缓存
28 ps.clearBatch();
29 }
老师,限制条件中到底要不要把复合索引中的列按顺序写全,还是只要写复合索引中的第一列(前导列)就行了
老师,这个例子给的不合适吧!有问题,
会出现有多个a的名字。
SQL> select last_name from employees where last_name like '%a%' and last_name like '%e%'; LAST_NAME ------------------------- Baer Bates Colmenares Davies De Haan Faviet Fleaur Gates Hartstein Markle Nayer Partners Patel Philtanker Raphaely Sewall Whalen 17 rows selected
其中的
Raphaely
就是多个a
varchar后面的长度是指的多少空间,或者说一个长度是指一个字符或者字节,还是等于一个字
老师好,此时已经创建好了用户
给用户赋予权限
可能是上一步失败了,所以这里无法使用新用户登录,
问题: 怎么才能做到呢
老师您好!请问创建多对多在T_item的Columns不能勾选Nullable,选择这个保存就会提示这个是怎么回事啊 ,谢谢
可以在多表中使用子查询不?
. 求出 emp 表中哪些人是经理人,打印出名字和编号
在实操作业中,这道题我想了很久,但是一点思路都没有,请老师为我解答下
老师,你好!这里的SQL语句是完整的sql语句,没有包含?占位符。那么它生成的执行计划还会被缓存吗?没有占位符是不是会被sql注入呀?
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637