表 't_student' 存在,且表名正确,程序运行结果也正确,但sql语句insert into t_student values(null,#{stuname},#{stuage},#{stuaddress});中't_student' 显示报错
时间: 2024-02-05 14:13:22 浏览: 57
如果表名正确,并且程序运行结果也正确,但是SQL语句中仍然报错,可能是因为SQL语句中的表名不加引号导致的。在SQL语句中,表名与列名一般需要加上反引号或者是单引号,以避免与SQL关键字冲突。
你可以尝试使用以下SQL语句:
```
insert into `t_student` values(null,#{stuname},#{stuage},#{stuaddress});
```
或者
```
insert into 't_student' values(null,#{stuname},#{stuage},#{stuaddress});
```
注意,如果使用的是MySQL数据库,需要使用反引号,而不是单引号。如果使用的是其他数据库,例如SQL Server,则需要使用方括号或双引号等符号进行引用。
相关问题
insert into t_student values (null,'李逵',30,'黑龙江',1)
这是一个 SQL 语句,用于向 t_student 表中插入一条数据。其中 null 表示该字段自动生成,'李逵' 是姓名,30 是年龄,'黑龙江' 是地址,1 是性别(1 表示男性,0 表示女性)。如果该表中已经存在主键自增的字段,则可以将 null 替换为 0 或者省略该字段。例如:
insert into t_student(name, age, address, gender) values ('李逵', 30, '黑龙江', 1)
请修改下面的两段代码使之能运行, 代码 1<body> <%request.setCharacterEncoding("utf-8");//解决提交乱码问题 %> <% String stuno = request.getParameter("stuno"); String stuname = request.getParameter("stuname"); if (stuno != null) { Class.forName("com.mysql.cj.jdbc.Driver"); Connection conn = DriverManager.getConnection("jdbc:mysql: //127.0.0.1:3306/sys", "root", "1234"); PreparedStatement ps = null; ResultSet rs = null; String sql = "SELECT num FROM tb_student WHERE NUM=?"; ps = conn.prepareStatement(sql); ps.setString(1, stuno); rs = ps.executeQuery(); if (rs.next()) { out.println("对不起,该学生学号已经存在!"); } else { sql = "INSERT INTO tb_student(NUM,NAME) VALUES(?,?)"; ps = conn.prepareStatement(sql); ps.setString(1, stuno); ps.executeUpdate(); out.println("添加成功!"); } } %> 添加学生信息 <br> <form method="post"> 输入学号:<input type="text" name="stuno"><BR> 输入姓名:<input type="text" name="stuname"><BR> <input type="submit" value="添加"> </form> </body> </html>,代码2 // 添加学生信息到数据中 public int addStudent(Student student) throws Exception { initConnection(); // 创建一个sql语句 String sql = "insert into tb_student(num,name) values (?,?)"; // 创建一个PreparedStatement对象 PreparedStatement ps = conn.prepareStatement(sql); // 填充参数 ps.setString(1, student.getNum()); ps.setString(2, student.getName()); // 执行sql语句 int retv = ps.executeUpdate(); ps.close(); // 关闭链接 closeConnection(); return retv; }
代码1修改后的代码如下:
```html
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ page import="java.sql.*" %>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>添加学生信息</title>
</head>
<body>
<%
request.setCharacterEncoding("utf-8");//解决提交乱码问题
String stuno = request.getParameter("stuno");
String stuname = request.getParameter("stuname");
if (stuno != null) {
Class.forName("com.mysql.cj.jdbc.Driver");
Connection conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/sys?useUnicode=true&characterEncoding=utf-8&useSSL=false", "root", "1234");
PreparedStatement ps = null;
ResultSet rs = null;
String sql = "SELECT num FROM tb_student WHERE NUM=?";
ps = conn.prepareStatement(sql);
ps.setString(1, stuno);
rs = ps.executeQuery();
if (rs.next()) {
out.println("对不起,该学生学号已经存在!");
} else {
sql = "INSERT INTO tb_student(NUM,NAME) VALUES(?,?)";
ps = conn.prepareStatement(sql);
ps.setString(1, stuno);
ps.setString(2, stuname);
ps.executeUpdate();
out.println("添加成功!");
}
rs.close();
ps.close();
conn.close();
}
%>
添加学生信息 <br>
<form method="post">
输入学号:<input type="text" name="stuno"><BR>
输入姓名:<input type="text" name="stuname"><BR>
<input type="submit" value="添加">
</form>
</body>
</html>
```
代码2修改后的代码如下:
```java
// 添加学生信息到数据中
public int addStudent(Student student) throws Exception {
initConnection();
// 创建一个sql语句
String sql = "insert into tb_student(num,name) values (?,?)";
// 创建一个PreparedStatement对象
PreparedStatement ps = conn.prepareStatement(sql);
// 填充参数
ps.setString(1, student.getNum());
ps.setString(2, student.getName());
// 执行sql语句
int retv = ps.executeUpdate();
ps.close();
// 关闭链接
closeConnection();
return retv;
}
```
阅读全文