大侠们帮我看看为什么填入表单的数据不能插入数据库
另一个页面能读出里面的数据
<%@ page language="java" contentType="text/html; charset=GBK"%>
<%@ page import="java.sql.*,javax.naming.*,javax.sql.*" %>
<html>
<head>
<title>创建表并插入及修改数据</title>
</head>
<body>
<%String Student_id= request.getParameter("Student_id");
String Student_name= request.getParameter("Student_name");
String sex= request.getParameter("sex");
String Student_class= request.getParameter("Student_class");
String Student_grade=request.getParameter("Student_grade");
Connection con = null;
try {
// 加载ODBC驱动
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
// 通过驱动管理器(DriverManager)获得连接
con = DriverManager.getConnection("jdbc:odbc:mysj",
"sa","123");
out.println("<h2>创建student表成功!</h2><br>");
// 插入数据到student表
String Sql="insert into student(Student_id,Student_name,sex,Student_class,"
+ "Student_grade) values ('" + Student_id + "','"
+ Student_name+"','"+ sex+"','"+Student_class+"','"+Student_grade+"')"; // 执行完SQL语句的结果
//b = st.execute(student);
out.println("<h2>插入数据成功!</h2><br>"); } catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (con != null)
con.close();
} catch (Exception e) {
e.printStackTrace();
}
} %>
</body>
</html>
另一个页面能读出里面的数据
<%@ page language="java" contentType="text/html; charset=GBK"%>
<%@ page import="java.sql.*,javax.naming.*,javax.sql.*" %>
<html>
<head>
<title>创建表并插入及修改数据</title>
</head>
<body>
<%String Student_id= request.getParameter("Student_id");
String Student_name= request.getParameter("Student_name");
String sex= request.getParameter("sex");
String Student_class= request.getParameter("Student_class");
String Student_grade=request.getParameter("Student_grade");
Connection con = null;
try {
// 加载ODBC驱动
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
// 通过驱动管理器(DriverManager)获得连接
con = DriverManager.getConnection("jdbc:odbc:mysj",
"sa","123");
out.println("<h2>创建student表成功!</h2><br>");
// 插入数据到student表
String Sql="insert into student(Student_id,Student_name,sex,Student_class,"
+ "Student_grade) values ('" + Student_id + "','"
+ Student_name+"','"+ sex+"','"+Student_class+"','"+Student_grade+"')"; // 执行完SQL语句的结果
//b = st.execute(student);
out.println("<h2>插入数据成功!</h2><br>"); } catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (con != null)
con.close();
} catch (Exception e) {
e.printStackTrace();
}
} %>
</body>
</html>
Statement sm=null;
ResultSet rs=null;
try{
Class.forName("com.mysql.jdbc.Driver"); //连接数据库
con=DriverManager.getConnection("jdbc:mysql://localhost/sms?useUnicose=true&characterEncoding=utf8",
"root", "root");
sm=con.createStatement();
String name=request.getParameter("name"); //提取表单数据
String psw=request.getParameter("psw");
String query="select * from player where usename = " + "'" + name + "' and password = " + "'"+psw+"'";
rs = sm.executeQuery(query); //执行语句
if(rs.next()){
response.sendRedirect("success.jsp");
}
else{
response.sendRedirect("false.jsp");
}
// 插入数据到student表
String Sql="insert into student(Student_id,Student_name,sex,Student_class,"
+ "Student_grade) values ('" + Student_id + "','"
+ Student_name+"','"+ sex+"','"+Student_class+"','"+Student_grade+"')";// 执行完SQL语句的结果
//b = st.execute(student);
这个还不是你所写的 Sql
String Sql="insert into student(Student_id,Student_name,sex,Student_class,Student_grade) values ('" + Student_id + "','"+ Student_name+"','"+ sex+"','"+Student_class+"','"+Student_grade+"')";ResultSet rs=stmt.executeUpdate(Sql);
换成这段应该就行了。
1,加载驱动类
2,获得链接
3,创建语句对象
4,执行sql语句
让数据库连接尽量放到一个单独的类中,
让执行数据库操作的方法也放到单独的一个类中,
在执行数据库操作时,调用的是你写的插入数据字符串而不是对象。
ResultSet rs=stmt.executeUpdate(Sql);
<% String Student_id=(String) request.getParameter("Student_id");
String Student_name= (String)request.getParameter("Student_name");
String Sex=(String) request.getParameter("Sex");
String Student_class= (String)request.getParameter("Student_class");
String Student_grade=(String)request.getParameter("Student_grade");
Connection con=null;
Statement sql;
ResultSet rs;
try {
// 加载ODBC驱动
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
// 通过驱动管理器(DriverManager)获得连接
con = DriverManager.getConnection("jdbc:odbc:mysj",
"sa","123");
// 插入数据到student表
sql=con.createStatement();
String condition="insert into student(Student_id,Student_name,Sex,Student_class,Student_grade) values ('" + Student_id + "','"+ Student_name+"','"+ Sex+"','"+Student_class+"','"+Student_grade+"')";rs = sql.executeQuery(condition);
out.println("<h2>插入数据成功!</h2><br>"); } catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (con != null)
con.close();
} catch (Exception e) {
e.printStackTrace();
}
} %>
"sa","123");
PreparedStatement pst=null;
String sql="insert into aqcs_user(username,phone,cityid,status,cid) values(?,?,?,?,?)";
try{
pst=con.prepareStatement(sql);
pst.setString(1, username);
pst.setString(2, phone);
pst.setString(3, city);
pst.setString(4, "0");
pst.setString(5, va.findCidByStatus());
pst.execute();
}catch(Exception e){
e.printStackTrace();
}finally{
if(con!=null){
con.close();
}
if(pst!=null){
pst.close();
}
if(rs!=null){
rs.close();
}
}
use int returnnum=st.executeUpdate(Sql);