写了个在Servlet中连接和使用MYSQL数据库的代码,可总是出错
高手帮忙看看!前台的HTML页面接收用户输入的内容:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>MySQL 调用实例</title>
</head><body>
<form method="post" action="/mysql/servlet/Insert">
学生姓名:<input type="text" name="name"><br>
学生年龄:<input type="text" name="age"><br>
学生介绍:<textarea name="introduce" rows="5"></textarea><br>
<input type="submit" value="提交">
<input type="reset" value="重填">
</form>
</body>
</html>后台具体的JAVA程序实现代码:
// Java Document
/*Insert.java*/
import java.io.*;
//导入JDBC相关的类
import java.sql.*;
//导入Mysql的JDBC的相关类
import org.gjt.mm.mysql.*;
//导入servlet的相关类
import javax.servlet.*;
import javax.servlet.http.*;
public class Insert extends HttpServlet{//Servlet的dopost方法,来处理用户POST表单的请求
public void doPost(HttpSerletRequest request,HttpServletResponse response)
throws IOException,ServletException{
//设置输出类型text/html,并且编号GB2312,这样才不会出现中文的乱码
response.setContentType("text/html;charset=gb2312");
//定义输出对象
PrintWriter out=response.getWriter();
java.sql.Connection conn=null;
java.sql.Statement st=null;
//将用户输入转换味8859-1编码的字节,然后再转换成字符,这样就不会出现中文乱码了
String name=new String(request.getparameter("name").getBytes("8859-1"));
String age=new String(request.getparameter("age").getBytes("8859-1"));
String introduce=new String(request.getparameter("introduce").getBytes("8859-1"));
try{
//查找Mysql的JDBC驱动程序,如果找不到会出错
Class.forName("org.gjt.mm.mysql.Driver");
//连接数据库
conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/person","root","123");
out.println("与Mysql数据库连接成功!<br>");
//生成数据库执行对象
st=conn.createStatement();
//执行添加学生的sql语句
st.executeQuery("insert into student values('"+name+"','"+age+"','"+introduce+"')");
out.println("学生添加成功!<br>");
//关闭数据库
conn.close();
out.println("数据库关闭成功!<br>");
}
//捕获错误
catch(Exception e)
{
//打印出错误信息
out.printin("发生了如下错误:<br>");
out.println(e.getMessage());
}
}
}
高手帮忙看看!前台的HTML页面接收用户输入的内容:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>MySQL 调用实例</title>
</head><body>
<form method="post" action="/mysql/servlet/Insert">
学生姓名:<input type="text" name="name"><br>
学生年龄:<input type="text" name="age"><br>
学生介绍:<textarea name="introduce" rows="5"></textarea><br>
<input type="submit" value="提交">
<input type="reset" value="重填">
</form>
</body>
</html>后台具体的JAVA程序实现代码:
// Java Document
/*Insert.java*/
import java.io.*;
//导入JDBC相关的类
import java.sql.*;
//导入Mysql的JDBC的相关类
import org.gjt.mm.mysql.*;
//导入servlet的相关类
import javax.servlet.*;
import javax.servlet.http.*;
public class Insert extends HttpServlet{//Servlet的dopost方法,来处理用户POST表单的请求
public void doPost(HttpSerletRequest request,HttpServletResponse response)
throws IOException,ServletException{
//设置输出类型text/html,并且编号GB2312,这样才不会出现中文的乱码
response.setContentType("text/html;charset=gb2312");
//定义输出对象
PrintWriter out=response.getWriter();
java.sql.Connection conn=null;
java.sql.Statement st=null;
//将用户输入转换味8859-1编码的字节,然后再转换成字符,这样就不会出现中文乱码了
String name=new String(request.getparameter("name").getBytes("8859-1"));
String age=new String(request.getparameter("age").getBytes("8859-1"));
String introduce=new String(request.getparameter("introduce").getBytes("8859-1"));
try{
//查找Mysql的JDBC驱动程序,如果找不到会出错
Class.forName("org.gjt.mm.mysql.Driver");
//连接数据库
conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/person","root","123");
out.println("与Mysql数据库连接成功!<br>");
//生成数据库执行对象
st=conn.createStatement();
//执行添加学生的sql语句
st.executeQuery("insert into student values('"+name+"','"+age+"','"+introduce+"')");
out.println("学生添加成功!<br>");
//关闭数据库
conn.close();
out.println("数据库关闭成功!<br>");
}
//捕获错误
catch(Exception e)
{
//打印出错误信息
out.printin("发生了如下错误:<br>");
out.println(e.getMessage());
}
}
}
解决方案 »
- mysql 查询按倒序排序的前十行数据是否包含某关健词,请php高手帮忙解决,谢谢
- mysql 查询左右数据
- 索引添加的问题
- 求高手指教mySql复杂查询语句
- 一个mysql表,每天至少插入6万以上数据
- Mysql数据,不能写入,请教高手指点!
- **********简单到无敌的问题,Apache虚拟主机.***********
- 如何使mysql数据库中的编号重新从1开始编号?
- 多表联合查询 结果出错 求指点
- 一个产品和属性多对应的问题
- 数据库里的数据突然全部不见了,怎么恢复呀??(要多少都给)
- 请问各位老大:在MS SQL Server中能正确运行的Update语句,到My SQL中后要作何修改?
Connection con=DriverManager.getConnection("jdbc:odbc:sql","CS-K","");
Statement stmt=con.createStatement();