使用Java插入mySql
我试图在sql数据库中插入一些东西,但我的代码不起作用。我对这有点陌生,但在尝试了一些不同的东西后,我仍然被卡住了。关于如何让代码正常工作,有什么想法吗?我实际上没有收到任何错误,但信息从未输入数据库。提前谢谢使用Java插入mySql,java,mysql,Java,Mysql,我试图在sql数据库中插入一些东西,但我的代码不起作用。我对这有点陌生,但在尝试了一些不同的东西后,我仍然被卡住了。关于如何让代码正常工作,有什么想法吗?我实际上没有收到任何错误,但信息从未输入数据库。提前谢谢 import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; public class sqlIns {
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
public class sqlIns
{
public static void main (String []args)
{
String host = "jdbc:mysql://localhost:3306/tempdatat";
String user = "root";
String pass = "Nathan1";
try
{
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection(host,user, pass);
PreparedStatement statement = con.prepareStatement("Insert Into tempdata(id, timedata, tempdata) VALUES (?, ?, ?)");
statement.setInt(1, 1);
statement.setInt(2, 30);
statement.setDouble(3, 78.30);
statement.execute();
statement.close();
con.close();
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
finally
{
System.out.println("Done!");
}
}
}
您的代码实际上相当不错,而且几乎正确 您唯一的错误是,对于INSERT,您需要使用:
statement.executeUpdate();
数据库表名称在主机变量和sql查询中不同。确保两个位置的数据库表名都正确。并且,在sql查询中使用所有小写字母 试试看:
insert into tempdata(id, timedata, tempdata) values (?, ?, ?)
而不是:
Insert Into tempdata(id, timedata, tempdata) VALUES (?, ?, ?)
execute()
有什么问题?@CostisAivalis没有,没有OP编写的代码没有问题。@CostisAivalis正在链接OP未使用的内容。。。真的没什么变化。尝试查看JavaDoc中的PreparedStatement
您是对的!我以为这是一个声明。我没有仔细研究代码。你发布的代码没有问题。是否打印“完成!”?您应确保始终打印con
和语句closed@RC. 嗯?是的,作为良好实践,您应该关闭语句,他也关闭连接。唯一的改进是移动范围并在中最终执行它block@Brian,哦,我错过了语句行,但是是的,这应该放在中最后
我遇到了同样的问题,但是MS Access不是MySQL,con.setAutoCommit(false)
在执行查询和con.setAutoCommit(true)之前
执行后解决了我的问题。