JSP使用数据库操作

16 篇文章 0 订阅
12 篇文章 0 订阅

JSP使用数据库操作
 在JSP 中可以使用Java 的JDBC 技术,实现对数据库中表记录的查询、修改和删除等操作。JDBC 技术在JSP 开发中占有很重要的地位。
 JDBC(Java DataBase Connectivity)是Java 数据库连接API。简单地说,
 JDBC 能完成三件事:
  (1) 与一个数据库建立连接,
  (2) 向数据库发送SQL 语句,
  (3) 处理数据库返回的结果。
 JDBC 和数据库建立连接的一种常见方式是建立起一个JDBC─ODBC 桥接器。由于ODBC 驱动程序被广泛的使用,建立这种桥接器后,使得JDBC 有能力访问几乎所
有类型的数据库。JDBC 也可以直接加载数据库驱动程序访问数据库,
 如果使用 JDBC─ODBC 桥接器访问数据库,事先必须设置数据源。
1 数据源
 利用系统建立一个ODBC数据源。
2.JDBC-ODBC 桥接器 
 建立一个JDBC─ODBC 桥接器,即加载桥接器驱动程序。
 Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
 Class 是包java.lang 中的一个类,该类通过调用它的静态方法forName 就可以建立JDBC-ODBC 桥接器。 
3 查询记录  
 (1)连接到数据库 
  首先使用包 java.sql 中的Connection 类声明一个对象,然后再使用类DriverManager 调用它的静态方法getConnection 创建这个连接对象:
  Connection con = DriverManager.getConnection("jdbc:odbc:数据源名字","login name", "password ");
 (2)向数据库发送SQL 语句。
  首先使用 Statement 声明一个SQL 语句对象,然后通过刚才创建的连接数据库的对象con 调用方法createStatment()创建这个SQL 语句对象。
  Statement sql=con.createStatement();
 (3)处理查询结果
  有了 SQL 语句对象后,这个对象就可以调用相应的方法实现对数据库中表的查询和修改。并将查询结果存放在一个ResultSet 类声明的对象中,
 也就是说SQL 语句对数据库的查询操作将返回一个ResultSet 对象:
  ResultSet rs=sql.executeQuery("SELECT * FROM 成绩表");
  ResultSet 对象是以统一形式的列组织的数据行组成。ResultSet 对象一次只能看到一个数据行,使用next()方法走到下一数据行,获得一行数据后,
  ResultSet 对象可以使用getxxxx 方法获得字段值,将位置索引(第一列使用1,第二列使用2 等等)或字段名传递给getxxxx方法的参数即可
  使用结果集Result 的next()方法,可以顺序的查询。一个结果集将游标最初定位在第一行的前面,第一次调用next()方法使游标移动到第一行。
  next()方法返回一个boolean 型数据,当游标移动到最后一行之后返回false。
 可滚动的结果集:
  Statement stmt=con.createStatement(int type ,int concurrency);
 根据参数的 type、concurrency 的取值情况,stmt 返回相应类型的结果集:
 type 的取值决定滚动方式,取值可以是:
  ResultSet.TYPE_FORWORD_ONLY :结果集的游标只能向下滚动。
  ResultSet.TYPE_SCROLL_INSENSITIVE :结果集的游标可以上下移动,当数据库变化时,当前结果集不变。
  ResultSet.TYPE_SCROLL_SENSITIVE :返回可滚动的结果集,当数据库变化时,当前结果集同步改变。
 Concurrency 取值决定是否可以用结果集更新数据库,Concurrency 取值:
  ResultSet.CONCUR_READ_ONLY:不能用结果集更新数据库中的表。
  ResultSet.CONCUR_UPDATETABLE:能用结果集更新数据库中的表。
 滚动查询经常用到 ResultSet 的下述方法:
  public boolean previous():将游标向上移动,该方法返回boolean 型数据,当移到结果集第一行之前时返回false.
  public void beforeFirst():将游标移动到结果集的初始位置,即在第一行之前。
  public void afterLast():将游标移到结果集最后一行之后。
  public void first():将游标移到结果集的第一行。
  public void last():将游标移到结果集的最后一行。
  public boolean isAfterLast():判断游标是否在最后一行之后。
  public boolean isBeforeFirst():判断游标是否在第一行之前
  public boolean ifFirst():判断游标是否指向结果集的第一行。
  public boolean isLast():判断游标是否指向结果集的最后一行。
  public int getRow():得到当前游标所指行的行号,行号从1 开始,如果结果集没有行,返回0
  public boolean absolute(int row):将游标移到参数row 指定的行号。
  注意:如果row 取负值,就是倒数的行数,absolute(-1)表示移到最后一行,absolute(-2)表示移到倒数第2 行。当移动到第一行前面或
 最后一行的后面时,该方法返回false。
4 更新记录
 使用SQL 语句更新记录中字段的值
  Statement 对象调用方法:public int executeUpdate(String sqlStatement);
5 添加记录
 使用SQL 语句添加新的记录
  Statement 对象调用方法:public int executeUpdate(String sqlStatement);
6 删除记录
 使用SQL 语句删除记录
  Statement 对象调用方法:
   public int executeUpdate(String sqlStatement);
 注:你可以使用一个Statement 对象进行添加、修改、删除和查询操作,但需要注意的是,当查询语句返回结果集后,没有立即输出结果集的记录,
而接着执行了添加语句,那么结果集就不能输出记录了。要想输出记录就必须重新返回结果集。
7 连接数据库的其它方式
 7.1 连接 Oracle 数据库
 (1)加载驱动程序:
  Class.forName("oracle.jdbc.driver.OracleDriver");
 (2)建立连接:
  Connection conn=DriverManager.getConnection( “jdbc:oracle:thin:@主机host:端口号:数据库名”, “用户名”, “密码”);
 7.2 连接 MySql 数据库
 (1)加载驱动程序:
  Class.forName("org.gjt.mm.mysql.Driver").newInstance();
 (2)建立连接:
  Connection conn=DriverManager.getConnection(”jdbc:mysql://host:Port: 数据库名”,”用户名”,”密码”);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值