jsp中常用的数据库操作

来源:互联网 发布:大数据面临的问题评价 编辑:程序博客网 时间:2024/05/16 06:34

一.连接数据库

【例1】


//这是一个model类
//完成得到一个数据库连接

package com.sp.model;
import java.sql.*;

public class ConnDB {
    
    private Connection ct=null;
    
    public Connection getConn(){
        
        try{
                   //加载数据库驱动
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

                    //与数据库建立连接

             ct=DriverManager.getConnection("jdbc:sqlserver://127.0.0.1:1433;databaseName=testdb","sa","ray");
            
            if(!ct.isClosed())
                System.out.println("成功连接数据库");
            
        
        }catch(Exception e){
            e.printStackTrace();
            //TODO:handle Exception
        }
        
        return ct;
        
    }
}



二.释放资源

public void close(){
        try{
            
            if(rs!=null){
                rs.close();
                rs=null;
            }
            if(ps!=null){
                ps.close();
                ps=null;
            }
            if( !ct.isClosed()){
                ct.close();
                ct=null;
            }
            
    
        }catch(Exception e){
            e.printStackTrace();
        }
    }


三.对javaBean的操作

【例2】

//这是一个model类,处理与goods表相关的业务逻辑

package com.sp.model;
import java.sql.*;
import java.util.ArrayList;

public class GoodsBeanBO {

     //定义一些变量
    private Connection ct=null;
    private ResultSet rs=null;
    private PreparedStatement ps=null;

    
   
    //1.获取数据项
    //根据一个货物id,得到货物具体信息的函数
    public GoodsBean getGoodsBean(String id){
        
        GoodsBean gb=new GoodsBean();
        
        try{
            ct=new ConnDB().getConn();
            
            ps=ct.prepareStatement("select * from goods where goodsId=?");
            ps.setString(1,id);
            System.out.println("id="+id);
            rs=ps.executeQuery();
            
            if(rs.next()){
                //放到gb中
                gb.setGoodsId(rs.getInt(1));
                gb.setGoodsName(rs.getString(2));
                gb.setGoodsIntro(rs.getString(3));
                gb.setGoodsPrice(rs.getFloat(4));
                gb.setGoodsNum(rs.getInt(5));
                gb.setPublisher(rs.getString(6));
                gb.setPhoto(rs.getString(7));
                gb.setType(rs.getString(8));
            }
            
    
        }catch(Exception e){
            e.printStackTrace();
        }finally{
            //关闭资源
            this.close();
        }
        
        return gb;
        
    }




    /*

     * 2.分页技术

     * 分页的SQL语句: 排除(pageNow-1)*pageSize条,取pageSize

                                    select top "+pageSize+" * from goods where goodsId not in

                                    (select top "+(pageNow-1)*pageSize+" goodsId from goods)"


     * 分页显示货物的信息

     * @parameter int pageSize:每页显示几条记录
     * @author 顺平
     * @parameter int pageNow:显示当前页码
     * @return ArrayList : 需要显示的货物集合
     * ctrl+shift+m : 可以引入包
     * GoodsBean是一个数据项,而ArrayList是一个二维表
     */
    public ArrayList getGoodsByPage(int pageSize,int pageNow){
        
        ArrayList al=new ArrayList();
        
        try{
            ct=new ConnDB().getConn();
            ps=ct.prepareStatement("select top "+pageSize+" * from goods where goodsId not in (select top "+(pageNow-1)*pageSize+" goodsId from goods)");
            rs=ps.executeQuery();
            
            while(rs.next()){
                
                GoodsBean gb=new GoodsBean();
                gb.setGoodsId(rs.getInt(1));
                gb.setGoodsName(rs.getString(2));
                gb.setGoodsIntro(rs.getString(3));
                gb.setGoodsPrice(rs.getFloat(4));
                gb.setGoodsNum(rs.getInt(5));
                gb.setPublisher(rs.getString(6));
                gb.setPhoto(rs.getString(7));
                gb.setType(rs.getString(8));
                
                //加入到al
                al.add(gb);
            }
            
        }catch(Exception e){
            e.printStackTrace();
        }finally{
            this.close();
        }
        
        return al;
        
    }



    //释放资源
    public void close(){
        try{
            
            if(rs!=null){
                rs.close();
                rs=null;
            }
            if(ps!=null){
                ps.close();
                ps=null;
            }
            if( !ct.isClosed()){
                ct.close();
                ct=null;
            }
            
    
        }catch(Exception e){
            e.printStackTrace();
        }
    }
    
}







0 0
原创粉丝点击