打开Access2000,创建一个新的数据库,我将这个数据库命名为 foxdb.mdb,存在C:\\tomcat\\fox\\global\\foxdb.mdb。接下来在eagle.mdb中创建一个表,命名为 foxtable,表中有五个字段......
作者:陈小冲 来源:yesky 2007年10月30日
关键字:
三.编写 foxnoteinsert.jsp ,将用户的留言写进数据库表中:
<body bgcolor="#FFFFFF">
<%@ page import="java.sql.*,MyUtil,java.util.*"%>
<%
Connection con=null;
String username=MyUtil.gb2312ToUnicode(request.getParameter("username"));
String email=MyUtil.gb2312ToUnicode(request.getParameter("email"));
String doc=MyUtil.gb2312ToUnicode(request.getParameter("doc"));
String url=request.getRemoteAddr();
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); con=DriverManager.getConnection("jdbc:odbc:foxdb","","");
String str="insert into foxtable values(?,?,?,?);";
PreparedStatement pstmt=con.prepareStatement(str);
pstmt.setString(1,username);
pstmt.setString(2,email);
pstmt.setString(3,doc);
pstmt.setString(4,url);
pstmt.executeUpdate();
pstmt.close();
con.close();
}
catch(Exception e) {
out.println(e.getMessage());
}
%>
这个程序中有一些要说明的地方,就是其中用到了一个 JavaBean :MyUtil.class 。
MyUtil 的作用是字符串之间的转换。必需关注的是JSP的字符串以Unicode码表示,而留言板界面的表单却是以 gb2312 码表示。所以将用户的留言写进数据库还需要码间的转换。如果不转换而把留言直接写到数据库表,则会产生乱码。下面是 MyUtil 的原代码,存于C:\tomcat\fox\WEB-INF\classes\MyUtil.java ,编译后的MyUtil.class文件也存于此。
import java.io.*;
public class MyUtil{
public static String gb2312ToUnicode(String s){
try{
return new String(s.getBytes("ISO8859_1"),"gb2312");
}
catch(UnsupportedEncodingException uee){
return s;
}
}
public static String unicodeTogb2312(String s){
try{
return new String(s.getBytes("gb2312"),"ISO8859_1");
}
catch(UnsupportedEncodingException uee){
return s;
}
}
}