利用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中进行相应的配置。