jsp操作access数据库

来源:互联网 发布:sql删除字段 编辑:程序博客网 时间:2024/04/29 23:01

1JDBC至数据库的通信路径

2)访问数据库的方法步骤

JDBC URL的一般语法为:

jdbc: subprotocol :other stuffjdbc:<子协议>:<子名称>

 其中, subprotocol用于指明连接到数据库的特定驱动程序。othe ruff参数的格式随所使用的subprotocol不同而不同。如果要了解具体格式,可以查阅数据库供应商提供的相关文档。

1)找到所要使用的JDBC驱动程序类的名称,如:

org.postgresql.Driver

下载相应的DB驱动

 

2将这个驱动包含在classpath中,或使用-classpath命令行启动数据库程序。

 

3)连接数据库。

  a) 注册驱动程序

  DriverManager类用于选择数据库驱动程序和创建新的数据库连接,连接后会返回一个Connection对象。不过,只有在驱动管理器中注册过的驱动程序才可以被激活。

 jdbc.drivers属性包含了一系列驱动程序的类名,驱动管理器会在启动时注册这些驱动程序。可以用通过方法调用来设置系统属性,比如:

System .setProperty("jdbcc.drivers" ,"org. postgresql.Driver") .也可以同时添加多个驱动程序,只要用冒号将它们隔开即可.

 b) 打开数据库连接

  String url = "jdbc: postgresql :COREJAVA";

Stri ng username = "dbuser";

String password =secret ;

Connectionconn = DriverManager.getConnection(url , username, password);

 

4)用sql语句对数据库进行操作(省略了异常处理)

 执行sql语句之前,首先要创建一个Statement对象

Statement stat=conn.createStatement();

  stat.execute(“CREATE TABLE Greetings(Message CHAR(20))”)

  stat.execute(“INSERT INTO Breetings VALUES(‘Hello,World!’)”);

  ResultSet result=stat.executeQuery(“SELECT * FROM Greetings”);

  result.next();  //默认指针在第一条记录之前

  System.out.println(result.getString(1));

  stat.execute(“DROP TABLE Greetings”);

  conn.close();  //断开连接

 说明:executeUpdate方法既可以执行诸如INSERT,UPDATEDELETE之类的操作,也可以执行诸如CREATE TABLEDROP TABLE之类数据定义命令。但是,执行SELECT查询时必须使用executeQuery方法。execute方法可以执行任意的SQL语句。

 

 

操作ACCESS数据库的代码如下:

 public Connection getConnToAccess()

   {

             try{

                 AccessDriver = getPara("AccessDriver");        

                 AccessURL = getPara("AccessURL");

                 AccessPath = getPara("AccessPath");

                    AccessURL=AccessURL+AccessPath;

                 Class.forName(AccessDriver).newInstance();

                 conn = DriverManager.getConnection(AccessURL);

                 }catch(Exception e){

                        //e.printStackTrace();

                        //return "操作数据库出错,请仔细检查" ;

                        //System.err.println(e.getMessage());

                 }

          return conn;

}

其中AccessDriver=sun.jdbc.odbc.JdbcOdbcDriver

AccessURL=jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=

AccessPath=F:/Program Files/apache-tomcat-6.0.18/webapps/news/WEB-INF/DreamNews.mdb

查询是:

Connection Conn = DBConn.getConn();

                 Statement stmt = Conn.createStatement(1004,1007);

                 String sql = "select * from BigClass order by BigClassID";

                 ResultSet rs = stmt.executeQuery(sql);

整理成DBtest.jsp如下:

<%@ pagelanguage="java"contentType="text/html; charset=gb2312"

    pageEncoding="gb2312"%>

<!DOCTYPEhtml PUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

 

<head>

<metahttp-equiv="Content-Type"content="text/html; charset=gb2312">

<title>ACCESS数据库访问测试</title>

</head>

<body>

<%@ pagelanguage="java" import="java.sql.*"%>

<%!

   Connection con=null;

%>

<%   

   try

   {   // 加载、注册JDBC驱动器类

     Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

       // 建立到数据库连接,如果设置了用户名和密码还要指出用户名和密码

     con=DriverManager.getConnection("jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=D:/ZQ/java source/Data_base/db_Test.mdb");

         //在数据库中创建表

   }

   catch(SQLException ex)

   {

       while(ex!=null)

       {

         ex.printStackTrace();

         ex=ex.getNextException();

       }       

    }

   // catch(IOException ex)

   // { ex.printStackTrace();}

   Statement stmt=con.createStatement();

   ResultSet result=stmt.executeQuery("SELECT * FROM news");

   result.next();

  

%>

  <h2>读取的第一条新闻为:<%=result.getString("cont")%></h2>

</body>

</html>

注意,当操作数据库时,如果已经通过access打开的所将操作的库、表,则会出错。