JSP 添加操作
在JSP中,用户可以用INSERT语句将一行记录插入到指定的一个数据表中。例如,要将图书名称为“Java实验指导”的记录插入到名为bookinfo的表中,可以使用如下语句:
INSERT INTO bookinfo(bookname,booknum,price) Values('Java实验指导',200,36);
通过这样的INSERT语句,系统将括号内的值填入到相应的列中。这些列按照创建表时定义的顺序排列。
INSERT 语句的完整句法如下:
INSERT [INTO] {table_name|view_name} [(column_list)]
{DEFAULT VALUES | Values_list | lect_statement};
如果一个表有多个字段,通过把字段名和字段值用逗号隔开,可以向所有的字段插入数据。系统将值插入表时,除了执行规则之外还要进行类型检查。如果类型不符(例如将一个字符
串插入到类型为数字的列中),系统将拒绝操作并返回错误信息。如果SQL拒绝所填入的一列值,语句中其他各列的值也不会填入。
注意所有的十进制整数都不需要用单引号引起来,而字符串和日期类型的值都要用单引号来区别,为了增加可读性而在数字间插入逗号会引起错误,在SQL中逗号是元素的分隔符。输入文字值时要使用单引号。双引号用来封装限界标识符。
当用INSERT语句向一个表中插入一条新记录,但有一个字段没有提供数据。这种情况有下面的四种可能:
● 如果字段有一个缺省值,该值会被使用。例如,假设插入新记录时没有给字段booknum提供数据,而这个字段有一个缺省值‘不详’。在这种情况下,当新记录建立时会插入值‘不详’。
● 如果字段可以接受空值,而且没有缺省值,则会被插入空值。
as well
● 如果字段不能接受空值,而且没有缺省值,就会出现错误。系统报错:The column in table player may not be null。
当然● 如果字段是一个标识字段,那么它会自动产生一个新值。当向一个有标识字段的表中插入新记录时,只要忽略该字段,标识字段会给自己赋一个新值。
在执行数据的插入操作时,首先要建立与数据库的连接,然后把SQL语句传递到数据库中,通过SQL语句来操作数据库中的数据。在下面的示例程序中,将向bookinfo表中插入一条记录,具体代码如下。
英语听力技巧<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<HTML>
<HEAD><TITLE>添加数据</TITLE></HEAD>
<BODY>
<CENTER><FONT SIZE = 5 COLOR = blue>添加数据</FONT></CENTER><HR>
勇敢英文<%
// 加载驱动
Class.forName("sql.jdbc.Driver").newInstance();
String url = "jdbc:mysql://localhost:3306/testdb";
String ur = "root";
String password = "123";
Connection conn = Connection(url, ur,password);
//创建用于将 SQL 语句发送到数据库的 SQLServerStatement 对象。
Statement st = ateStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
String strSQL = "INSERT INTO bookinfo(bookname,booknum,price) Values('Java实验指导',200,36)";
st.executeUpdate(strSQL); //利用SQL语句将数据新增至数据库
%>
<P>已完成数据的新增, 目前Book数据表的内容如下:</P>
<%
ResultSet rs = st.executeQuery("SELECT * FROM bookinfo"); //执行SQL语句, 从数据库中取得BookIns数据表中的数据
%>
<CENTER>
<TABLE bgcolor=DodgerBlue width="400">
<TR bgcolor=SkyBlue>
<TD><B>图书编号</B></TD><TD><B>图书名称</B></TD>
<TD><B>价 格</B></TD>
crd</TR>
<%
//利用while循环配合next方法将数据表中的记录列出
回见英文())
{
%>
<TR>
<TD bgcolor = LightYellow>
<B><%= rs.getString(1) %></B></TD>
<TD bgcolor = LightYellow>
<B><%= rs.getString(2) %></B></TD>
<TD bgcolor = LightYellow>ilink
<B><%= rs.getString(4) %></B></TD>
</TR>
nardone <%
}
rs.clo(); //关闭ResultSet变量
引道
st.clo(); //关闭Statement变量
conn.clo(); //关闭Connection变量
%>
</TABLE></CENTER></BODY></HTML>
在上述代码中,首先加载驱动程序与数据库建立连接;然后通过Inrt语句接入图书信息并查询数据库显示插入的图书信息;最后关闭连接。执行上述代码,结果如图10-12所示。
图10-12 插入数据