求sql分页利用java的变量的代码

public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
try{
creatFile(fn, FILE_NAME);
Class.forName("com.mysql.jdbc.Driver");

System.out.println("连接数据库...");
conn = DriverManager.getConnection(DB_URL,USER,PASS);


System.out.println(" 实例化Statement对象...");
stmt = conn.createStatement(); 
int sunNum = 30;
int pagesize = 0; pagesize = sunNum/2;
for(int i=0;i<=pagesize;i++) {

String sql = "SELECT ID,name, url From websites limit i*2,2;";
ResultSet rs = stmt.executeQuery(sql);

String fn = "F://NEWtest//again4.txt";
wf(fn,"ID,name,url.");
while(rs.next()){

    int id  = rs.getInt("id"); 
     String name = rs.getString("name");
    String url = rs.getString("url");
    //String country = rs.getString("country");
    //String fourth = rs.getString("fourth");
      System.out.print(", FR: " + id); 

    System.out.print(", SE: " + name);

    System.out.print(", TH: " + url);
    //System.out.print(", FO: " + country);

    System.out.print("\n");
    wf(fn,id+ name + url );
}

rs.close();
stmt.close();
conn.close();}
    看看我的代码对不,想利用循环分页,目前不知道怎么样把java的变量赋值给sql,帮忙解决一下,写个代码出来吧,我刚学java不到一个星期,谢谢。
0

4个回答

之前你的提问:java用limit循环读取mysql直到全部读完,并能显示读了多少条,我给你写了个通用工具,你没采纳,建议你还是研究下的给你贴的代码

0

public int getPage(String param){
int recordCount=0,t1=0,t2=0;
if(param==null)
{
param="";
}
String param_new = "%"+param+"%";
PreparedStatement pstmt=null;
ResultSet rs=null;
JdbcUtil jdbc=new JdbcUtil();
Connection conn=jdbc.connect();
String sql="select count(*) from webnews where wnkeyword like ? or wntitle like ? or introreading like ?;";
try {
pstmt=conn.prepareStatement(sql);
pstmt.setString(1,param_new);
pstmt.setString(2,param_new);
pstmt.setString(3,param_new);
rs=pstmt.executeQuery();
rs.next();
recordCount=rs.getInt(1);
t1=recordCount%5;
t2=recordCount/5;
} catch (Exception e) {

    e.printStackTrace();
    }finally{
    jdbc.close(conn, pstmt, rs);
    }
    if(t1 != 0){
    t2=t2+1;
    }
    return t2;
    }
    /**
    * 查询指定页的数据
    * @param pageNo
    * @return
    */
    public List<WebNews> listWebNews(int pageNo,String param){
    PreparedStatement pstmt=null;
    ResultSet rs=null;
    List<WebNews> list=new ArrayList<WebNews>();
    int pageSize=5;
    int page=(pageNo-1)*5;
    if(param==null)
    {
        param="";
    }
    String param_new = "%"+param+"%";
    JdbcUtil jdbc=new JdbcUtil();
    Connection conn=jdbc.connect();
    String sql="select * from webnews where wnkeyword like ? or wntitle like ? or introreading like ? order by wnid limit ?,?;";
    //String sql1="select * from webnews where wnkeyword order by wnid limit ?,?;";
    try {
    pstmt=conn.prepareStatement(sql);
    pstmt.setString(1,param_new);
    pstmt.setString(2,param_new);
    pstmt.setString(3,param_new);
    pstmt.setInt(4, page);
    pstmt.setInt(5, pageSize);
    rs=pstmt.executeQuery();
    while(rs.next()){
        WebNews webnews = new WebNews();
        webnews.setWnid(rs.getInt("wnid"));
        webnews.setWntitle(rs.getString("wntitle"));
        webnews.setWnurl(rs.getString("wnurl"));
        webnews.setWnkeyword(rs.getString("wnkeyword"));
        webnews.setWnimgurl(rs.getString("wnimgurl"));
        webnews.setWnmedia(rs.getString("wnmedia"));
        webnews.setWncreatetime(rs.getString("wncreatetime"));
        webnews.setWntext(rs.getString("wntext"));
        webnews.setTplink1(rs.getString("tplink1"));
        webnews.setTplink2(rs.getString("tplink2"));
        webnews.setIntroreading(rs.getString("introreading"));
        list.add(webnews);
    }
    } catch (Exception e) {

    e.printStackTrace();
    }finally{
    jdbc.close(conn, pstmt, rs);
    }
    return list;
    }
1

java变量传到SQL里面,在SQL里面写问好,然后在stmt.set里面设置

1

例如总共1000条以上记录,循环每次查询100条
int sum=1010;
int pageSize=100;
int pageNum = sum%pageSize==0?sum%pageSize:(sum%pageSize)+1;
String sql = "";
for(int i=1;i<=pageNum;i++){
String sql = "SELECT ID,name, url From websites limit "+(i-1)*pageSize,pageSize;
ResultSet rs = stmt.executeQuery(sql);
.....
}


0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!

相似问题

6
limit 后面如何用java变量赋值
2
kettle中有源表和目标表,两个表的表输入的查询中的表名是一个变量,如何让源表中的数据更新到目标表中?
3
sql或java代码编写问题,地理坐标换算
1
Java的lambda表达式可以实现类似sql的inner join的操作吗?
2
MyBatis-plus分页条件自定义查询的问题
1
sql触发器 调用java Servlet地址 传参 后台重新去查 数据库表值 查询结果返回是NULL
1
java语言写代码实现“读取sqlserver备份文件bak中的多备份集列表并可选择性还原”怎么做?
1
间歇性出现:ora-01483:DATE或NUMBER赋值变量的长度无效
2
萌新java连接MySQL数据库出现java.lang.NullPointerException错误是为什么,求大佬看一下代码解答
1
SSM 查询 异常 java.sql.SQLTimeoutException: ORA-01013: 用户请求取消当前的操作
1
在Java中怎么在一个主菜单系统中调用已经写好的一个class
4
如何在一个JSP页面完成用户名和密码的验证?在JSP使用Java代码片的方法
2
求助,jsp里面java的类型转换问题
2
java web服务SSM项目 SQL是相同的,mybaits加载数据和mysql查询的不一致。
1
求物业管理系统源代码?
1
用sql进行排序分页,为什么点击下一页之后排序的结果传不过去?我应该怎么改代码呢?
4
java 拼接查询sql语句
2
想通过java查询某表的数据并并显示
2
Navicat声明变量提示错误
0
Navicat连接Oracle如何声明变量、创建变量?