首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Java基础学习-MySQL连接

Java基础学习-MySQL连接

原创
作者头像
FutureTester
发布2021-12-15 19:10:59
发布2021-12-15 19:10:59
1.4K0
举报
文章被收录于专栏:FutureTesterFutureTester

学习了一下怎么连接数据库操作数据,遇见了一些问题,记录一下

报错:

代码语言:javascript
复制
Exception in thread "main" com.mysql.cj.jdbc.exceptions.MysqlDataTruncation: Data truncation: Incorrect date value: '1995' for column 'submission_date' at row 1
    at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:104)
    at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:953)
    at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1098)
    at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1046)
    at com.mysql.cj.jdbc.ClientPreparedStatement.executeLargeUpdate(ClientPreparedStatement.java:1371)
    at com.mysql.cj.jdbc.CallableStatement.executeLargeUpdate(CallableStatement.java:2545)
    at com.mysql.cj.jdbc.CallableStatement.executeUpdate(CallableStatement.java:901)
    at JdbcDemo.main(JdbcDemo.java:13)

查了半天发现sql语句添加得值没有加单引号

错误代码:

代码语言:javascript
复制
 String sql2 ="INSERT INTO runoob_tbl(runoob_title,runoob_author, submission_date)VALUES(1,2,2021-12-14);";

修改过后:

代码语言:javascript
复制
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class JdbcDemo {
    public static void main(String[] args) throws ClassNotFoundException, SQLException {
        Class.forName("com.mysql.cj.jdbc.Driver");
        Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test_frank","root","root");

        String sql2 ="INSERT INTO runoob_tbl(runoob_title,runoob_author, submission_date)VALUES('1','2','2021-12-14');";
        PreparedStatement statement = connection.prepareCall(sql2);
        statement.executeUpdate();
        statement.close();
        connection.close();
    }
}

代码优化:各种异常往出抛

代码语言:javascript
复制
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class JdbcDemo {
    public static void main(String[] args)  {
        Connection connection = null;
        PreparedStatement statement = null;
        String sql2 ="INSERT INTO runoob_tbl(runoob_title,runoob_author, submission_date)VALUES('1','2','2021-12-14');";
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
            connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test_frank","root","root");
            statement = connection.prepareCall(sql2);
            statement.executeUpdate();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
        finally {
            try {
                if(statement != null){
                    statement.close();
                }
                if(connection != null){
                    connection.close();
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档