如何在java中运行sql脚本[关闭]
Posted
技术标签:
【中文标题】如何在java中运行sql脚本[关闭]【英文标题】:How to run sql script in java [closed] 【发布时间】:2016-12-01 09:23:39 【问题描述】:您好,在 Java 中运行 sql 脚本的最佳方法是什么?我与数据库建立了连接,并获取了一些我认为可以运行脚本的代码,目前出现了一些错误。
public class DatabaseConnection
private String userName = "";
private String password = "";
private String serverName = "";
private String portNumber = "";
public Connection getConnection() throws SQLException
Connection conn = null;
Properties connectionProps = new Properties();
connectionProps.put("user", this.userName);
connectionProps.put("password", this.password);
String connectionString = "jdbc:mysql://" +
this.serverName +
":" + this.portNumber;
System.out.println("Connection String: " + connectionString);
conn = DriverManager.getConnection(connectionString, connectionProps);
System.out.println("Connected to database");
return conn;
**ScriptRunner runner = new ScriptRunner(conn, connectionString, connectionProps)
String file = "resources/cleanDatabaseScript.sql";
System.out.println("retreived script");
runner.runScript(new BufferedReader(new FileReader(file)));**
ScriptRunner 部分是我目前正在努力解决的领域。
【问题讨论】:
你遇到了什么错误? 目前这在 scriptRunner 行,但我确实更改了我复制的原始代码以匹配我的。错误:(47, 88) java: ';'预计我添加了 conn、connectionString、connectionProps 为什么ScriptRunner runner...
行末尾没有;
?
为什么return语句后有代码,return会在getConnection函数内部结束执行,所以return后的代码永远不会执行
@Meshredded 有道理,这是一个好的开始。我必须指出,我对 java 还是很陌生,所以这都是一个学习曲线,所以如果它看起来很业余,我很抱歉,这可能是因为这就是我问专家的原因。
【参考方案1】:
这是一个连接到 mySql 的基本类:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
public class DbConnection
private static Connection singleConnection ;
private static Statement singleStatement;
public static synchronized Statement getStatement() throws SQLException
if (singleConnection == null)
singleConnection = DriverManager.getConnection("jdbc:mysql://HereTheHost:HereThePortNumber/HereTheDataBaseName","HereTheUserName","HereThePassWord");
if (singleStatement == null)
singleStatement = singleConnection.createStatement();
System.out.println("Connection Success !");
return singleStatement;
此示例确保您将只有一个数据库连接实例,如果您不理解这一点,请忽略它。
【讨论】:
为了从您的表中检索数据,您可以查看以下示例:github.com/Meshredded/Java8_Planning_Manager/blob/master/… 谢谢你,它看起来确实干净了很多,但我认为这一点被忽略了。虽然您已经改进了数据库连接。我未能解释我的项目中有一个文件 String file = "resources/cleanDatabaseScript.sql";我需要做的就是在数据库连接后运行脚本。我的错,我没有在原帖中正确解释。 如果你有一个文件,它必须是一个 sqlite 数据库,所以你需要另一个驱动程序 这是使用 sqlite 的方法bitbucket.org/xerial/sqlite-jdbc以上是关于如何在java中运行sql脚本[关闭]的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Delphi 中执行包含许多 GO 语句的大型 SQL 脚本? [关闭]