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
祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星