包括数据库的封装,数据操作。

解决方案 »

  1.   

    先连接,用jdbc很方便的,然后写个程序就ok了,这样的程序在论坛里一堆一堆的。
      

  2.   

    Jsp 操作数据库 就是通过JDBC来操作的一般分为如下几个步骤:
    1.加载注册驱动  Class.forName("driver name"); // 里面写上具体的数据库的驱动名
    2.获得连接                     Connection con = DriverManager.getConnection(url,user,password); //数据库地址,用户,密码3.获得Statement对象
     
    Statement stmt = con.createStatement(); // 也可以使用 PreperedStatement 这个类4.执行sql语句得到结果集Result rs  = stmt.executeQuery("select * from tablename"); 5.对结果集进行操作while(rs.next()) {
        rs.getString(1) ;  
    }
    大致步骤如上具体细节参考api
      

  3.   

    一个基本的观点数据库的操作不应该在JSP页面上直接操作,而是应该把它封装到类里,最起码的是得通过调用类的方法来进行操作。这样才能有效的处理异常,并且保证有足够的安全性
      

  4.   

    keephope()
    我想了解的就是你说的这些,怎么进行数据封装和操作,能不能详细谈一下。如果是上面几位说的东西,就没必要给100分了。
      

  5.   

    kevinliuu(@。@)   昨天四点钟睡觉 数据库的操作操作一般的封装在DAO(数据访问对象)里面,实际上也就是一些JavaBean比如你有一个User 用户表,你肯定要对User作一些增删改查(CRUD)的工作所以你可以定义public void createUser(UserVO user) ;public UserVO getUser(long id);public void updateUser(UserVO user)public void delUser(long id)当然这几个操作只是最基本的 
    你还可以根据你的业务需求 增加一些方法,比如: 按某个字段获得一个User 集合的方法 等等你可以看看有关DAO的资料 讲的比我详细多了
      

  6.   

    //用于连接数据库
    package a;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;public class DBConnection {
        public DBConnection() {
        }
        public static Connection getCon(){
            Connection con=null;
            try {
                Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//这个我用的jdbc-odbc桥
            } catch (ClassNotFoundException ex) {
                System.out.println("驱动加载失败!");
            }
            try {
                con = DriverManager.getConnection("jdbc:odbc:test");
            } catch (SQLException ex1) {
                System.out.println("数据库连接失败!");
            }
            return con;
        }
    }//这个是javaBean
    package a;public class aa {
        public aa() {
        }
        private String a1=null;
        private String a2=null;
        public void seta1(String a1){
        this.a1=a1;
        }
        public void seta2(String a2){
        this.a2=a2;
        }
        public String geta1(){
        return a1;
        } 
        public String geta2(){
        return a2;
        }
    }//DAO
    package a;
    import java.sql.*;
    import a.aa;
    import a.DBConnection;
    import java.util.ArrayList;public class aaDAO {
        public aaDAO(){
        }
        private Connection con=null;
        private Statement st=null;
        private ResultSet rs=null;
        DBConnection cm=new DBConnection();    public ArrayList show1(){
        ArrayList list1=new ArrayList();
        con=cm.getCon();
        try {
            st = con.createStatement();
            rs=st.executeQuery("select * from 表名");
            while(rs.next()){
            aa t=new aa();
            t.seta1(rs.getString(1));
            t.seta2(rs.getString(2));
            list1.add(t);
            }
        } catch (SQLException ex) {
            ex.printStackTrace();
        }finally{
        try {
            rs.close();//关闭连接
            st.close();
            con.close();
        } catch (SQLException ex1) {
            ex1.printStackTrace();
        }
        }
        return list1;
        }
    }//在jsp页面中显示数据库中的信息
    <%@ page contentType="text/html;charset=GBK"%>
    <%@ page import="java.util.ArrayList,a.aa,a.aaDAO"%>
    <%!
    aaDAO aD=new aaDAO();
    aa d=new aa();
    ArrayList list1=aD.show1();
    %>
    <%
    for(int i=0;i<list1.size();i++){
    t=(aa)list1.get(i);
    %>
    a1的值为:<%=list1.geta1()%>
    a2的值为:<%=list1.geta2%>
    <%}%>
      

  7.   

    Jsp 操作数据库 就是通过JDBC来操作的一般分为如下几个步骤:
    1.加载注册驱动  Class.forName("driver name"); // 里面写上具体的数据库的驱动名
    2.获得连接                     Connection con = DriverManager.getConnection(url,user,password); //数据库地址,用户,密码3.获得Statement对象
     
    Statement stmt = con.createStatement(); // 也可以使用 PreperedStatement 这个类4.执行sql语句得到结果集Result rs  = stmt.executeQuery("select * from tablename"); 5.对结果集进行操作while(rs.next()) {
        rs.getString(1) ;  
    }
    大致步骤如上具体细节参考api
      

  8.   

    通过一个中间的dao层来封装数据库联接,具体上面说的很清楚了
      

  9.   

    wode421898419()的方法看了,但不明白这样作的目的比如我有一个页面,里面有N个数据库的读写操作,按照我以前的写法,只需要打开,关闭一次数据库链接,在打开,关闭数据库链接之间,我可以操作很多次数据库,每次读取后,只要rs.close()就可以了。因为打开,关闭数据库是很耗资源的,这样可以节省很多页面的执行时间。
    但如果按照上面的做法,则读取一次数据库,数据库链接就要打开,关闭一次,一但页面的数据库操作多了,那耗费的CPU资源就太大了,
      

  10.   

    人家问数据库如何操作,你说什么dao层根本就没用,
      

  11.   

    我问的就是使用dao层后的效率问题如果一个页面要若干个数据库操作,每个操作都调用一次dao,则数据库就要打开关闭若干次,这是不是很影响效率?
      

  12.   

    如果一个页面要若干个数据库操作,每个操作都调用一次dao,则数据库就要打开关闭若干次,这是不是很影响效率?这个不用担心,成熟的dao框架都会用连接池进行Connection 的管理。就是说Connection 是不关闭的,重复使用的。建议你学习一下 Speedframework,源代码比较少,一两天就可以大概了解了。hibernate比较复杂。
      

  13.   

    ftiger(哈哈鱼):
    Speedframework是什么?哪里有?
      

  14.   

    google,一个简单的ObjectMapping框架
      

  15.   


    引用
    一个基本的观点数据库的操作不应该在JSP页面上直接操作,而是应该把它封装到类里,最起码的是得通过调用类的方法来进行操作。这样才能有效的处理异常,并且保证有足够的安全性
      

  16.   

    ftiger(哈哈鱼):
    你说的连接池不关闭是什么意思?
      

  17.   

    UP
    ftiger(哈哈鱼):
    你说的连接池不关闭是什么意思?
      

  18.   

    用连接池(ConnPool)管理 Connection ,有很多现成的做法。
    就是不关闭 Connection,或每几个小时关闭一次。
    使用时从ConnPool .getConn()得到Connection.
    完成后用ConnPool.freeConn(conn);放回到连接池中。这样基本上就没有打开和关闭Connection 的开销了。
      

  19.   

    ftiger(哈哈鱼) :
    谢谢你!
    我以前看到过有延时关闭Connection的说法,但那本书上没有具体说怎么做能不能给段代码详细解说下?