Java基础学习-MySQL连接
2023-04-18 14:59:42 时间
学习了一下怎么连接数据库操作数据,遇见了一些问题,记录一下
报错:
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语句添加得值没有加单引号
错误代码:
String sql2 ="INSERT INTO runoob_tbl(runoob_title,runoob_author, submission_date)VALUES(1,2,2021-12-14);";
修改过后:
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();
}
}
代码优化:各种异常往出抛
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();
}
}
}
}
相关文章
- 通过引进SQL Server 2000驱动的jar包连接SQL服务器
- SQL Server 2k无法实现远程数据库连接的解决方案
- 用企业管理器备份和还原SQL Server数据库
- 简单介绍一下Excel XP的数据库功能
- 没有SQL Server数据库时怎样打开.MDF文件?
- 图解SQL Server注册远程服务器数据库的步骤
- Oracle数据库的物理存储结构之数据库控制文件详解
- Oracle数据库中序列(SEQUENCE)的用法详解
- 虚拟机安装Oracle错误ORA-12514的解决方案
- 不同数据库分页技术的实现及高效率分页技术三方案
- 教你五招,快速提升MySQL可扩展性
- 简单介绍一下DORADO展现中间件的实现
- iOS 11安装率已达到59% 但低于iOS 10同期
- 有关MySQL数据库的INI文件的详细介绍
- MySQL数据库中COUNT(*)和DISTINCT的使用及效率研究
- Oracle数据库远程连接设置的四种方法及其注意事项
- Oracle数据库如何查看当前用户角色权限及默认表空间
- SQL vs NoSQL:数据库并发写入性能比拼
- NoSQL数据库对比:MongoDB vs.Cassandra
- Oracle数据库的冷备份及冷备份异地恢复方法