利用ajax获取网页表单数据,并存储到数据库之一(使用JDBC)

所谓JDBC就是利用java与数据库相连接的技术,从数据库获取既有的信息或者把网页上的信息存储到数据库。

这里简单的介绍公司的一个小项目中的一部分,由于代码较多,所以用图片形式进行展示。源码请查看源码库,稍后上传。

            图1-信息图                            图2-用户图

如上图所示的两个模块,对应着数据库当中的两张表。第一张表用来显示部分岗位的信息,第二张表示用户信息表,我们用来显示用户部分信息。

本次所使用的数据库为ORACLE,所以必须首先在数据库当中建表。

      图3-建表

在oracle中建立两张表,对应如上所示的两个图。第一张表java02_xp_table1是用户信息表,当填入信息并点击submit按钮时,所填入的信息将保存在数据库当中,在PLSQL当中立即可以查询到。而第二张表java02_xp_table2是信息表,数据库中对于此表已经有了数据,只需通过查询吧数据库当中的信息显示在页面上。如图1所示已经显示了信息。

    图4-项目结构图

如上图4所示为该web项目的结构图,在eclipse下,我们首先建立两个实体类也即两个javaBean,对应两张表的信息。其中一个用户信息

public class User {
  private String xp_id;
  private String xp_name;
  private String xp_email;
  private String xp_subject;
  private String xp_message;

  //用eclipse自动生成get,set方法。这里不再累述。

 }

 同样的,对于第二张表也要生成get,set方法

public class Information {
  private String table_id;
  private String table_name;
  private String table_price;
  private String table_info1;
  private String table_info2;
  private String table_info3;
  private String table_info4;
  private String table_info5;

  //用eclipse自动生成get,set方法。这里不再累述

}

在javaBean建立成功的基础上我们建立三个dao类。

1.BaseDao---不可更改,封装数据库的基础操作,是其他Dao类的父类,

2.UserDao---继承BaseDao,提供从对数据库中的用户表的操作接口,由UserDaoImpl实现,UserDaoImpl---实现UseroDao接口。大体就是这样的结构.

3. InformationDao跟UserDao实现一样的功能。其他Dao类也从BaseDao继承。实现对不同表的操作。

          图5-BaseDao

如图5所示,建立了一个基础dao类,后面的两个dao都是继承与这个基本的dao。注意上图的driver_oracle,使用oracle进行驱动必须要加入相应的jar包,本次所使用的问哦ojdbc6.jar。通过build path添加到工程文件中去。url_oracle是数据库的连接字符串,通过localhost我们知道连接的数据库为本地的数据库,1521为oracle数据库的监听端口,mysql一般为3306,再后面的ORACLE 为我数据库的名字。class.forName()方法进行数据库的驱动进行加载DriverManager.getConnection(url_oracle,"user2","12345")是对数据库进行连接,user2为当前数据库的用户名,12345为密码。

这就是使用JDBC连接数据库。

          图6-UserDao

上图6为UserDao类。该类继承BaseDao类,主要是定义了一个addUser()方法,其目的在于通过点击submit来实现对java02_xp_table1表进行数据的添加操作。这里采用预编译的方法对数据库进行操作,有不懂的请参考:http://blog.csdn.net/c1481118216/article/details/52838673。

方法executeUpdate,用于执行 INSERT、UPDATE 或 DELETE 语句以及 SQL,DDL(数据定义语言)语句,例如 CREATE TABLE 和 DROP TABLE。 INSERT、UPDATE 或DELETE 语句的效果是修改表中零行或多行中的一列或多列。 executeUpdate的返回值是一个整数,只是返回受影响的行数(即更新计数)。 对于 CREATE TABLE 或 DROP TABLE等不操作行的语句,executeUpdate 的返回值总为零。

 

          图7-InformationDao

InformationDao继承于BaseDao,主要是对Information这张表进行数据操作,实现了对数据库JAVA02_XP_TABLE2表的内容查询的功能。执行了查询以后将数据进行封装,封装到一个list当中,通过get,set方法实现数据的转换。

    图8-InformationService                图9-UserService

上图为两个service,这两个service主要是为了实现两个方法。InformationService是为了得到更新的数量,而UserService是为了实现addUser()方法。

最主要的就是两个servlet,这两个servlet都有相同的一些方法,但是在doPost()方法中所实现的功能不一样。

      图10-UserServlet

在UserServlet中,通过request.getParameter()方法从页面上获取相应的数据。数据的格式使用JSON,使用JSON得添加相应的jar包。得到页面上相应的数据以后,再通过set方法传递到user中实现addUser()方法。row的值是为了确认传递数据的数量,通过这个值来确认是否传递成功是一个小的亮点。

          图10-InformationServlet

该IformationServlet主要实现的功能是对数据的查询,查询已经存在于数据库当中的信息。

            图11-jquery                               图12-ajax

这两种方法都是Html中用到的技术。这也是模板的固定形式。用于页面数据的传递。

 本项目的结构大概如此,千万别忘了在web.xml中进行相应的配置。

 

posted @ 2017-09-10 09:17  怡安  阅读(9254)  评论(0编辑  收藏  举报