JDBC添加表字段
老师,您好!为什么我通过JDBC给mysql表添加create_time字段会报错?是不是JDBC只能对表中的值操作,不能对字段进行操作。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class DButile {
/**
* 建立mysql数据库连接
* @return conn
* @throws SQLException
*/
public static Connection getConnection() throws ClassNotFoundException, SQLException {
Class.forName("com.mysql.cj.jdbc.Driver");
Connection conn = null;
String url = "jdbc:mysql://localhost:3306/jdbcstu?useSSL=false&" +
"useUnicode=true&characterEncoding=UTF-8&" +
"serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true";
return conn = DriverManager.getConnection(url, "root", "ad123456");
}
/**
* 关闭数据库连接
* @param conn
* @throws SQLException
*/
public static void close(Connection conn) {
try {
if (conn != null && !conn.isClosed()) {
conn.close();
}
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
}import java.sql.Connection;
import java.sql.PreparedStatement;
/**
* 向goods表添加一个Date类型的字段:create_time
*/
public class InsertGoods {
public static void main(String[] args) {
String sql = "ALTER TABLE goods ADD ? DATETIME";
Connection conn = null;
try {
conn = DButile.getConnection();
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setString(1, "create_time");
pstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
DButile.close(conn);
}
}
}
14
收起
正在回答
1回答
同学你好,
1、setXxx() 方法是用来设置参数的,第一个参数是要设置的 SQL 语句中的参数的索引(从 1 开始),第二个是设置的 SQL 语句中的参数的值,在这里设置列名是不可以的,所以建议同学直接更改为如下这样:

2、类名由多个单词组成时,每个单词首字母大写,如:DButile应更改为DBUtile
祝学习愉快~
2023版Java工程师
- 参与学习 人
- 提交作业 8788 份
- 解答问题 9886 个
综合就业常年第一,编程排行常年霸榜,北上广深月薪过万! 不需要基础,无需脱产即可学习,只要你有梦想,想高薪! 全新升级:技术栈升级(包含VUE3.0,ES6,Git)+项目升级(前后端联调与功能升级)
了解课程



恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星