数据库脚本文件是包含多个彼此分离的SQL查询的文件。通常,这些文件具有.sql扩展名。
您可以使用Apache iBatis的ScriptRunner类的runScript()方法在Java中执行.sql脚本文件。对于此方法,您需要传递一个连接对象。
因此,要运行脚本文件-
使用DriverManager类的registerDriver()方法注册MySQL JDBC驱动程序。
使用getConnection()方法创建一个连接对象以与MySQL数据库建立连接。
初始化软件包org.apache.ibatis.jdbc的ScriptRunner类。
创建一个Reader对象以读取脚本文件。
最后,使用runScript(reader)方法执行脚本。
让我们创建一个名称为sampleScript.sql的脚本文件,复制以下内容init。该脚本在MySQL数据库中创建一个名为cricketers_data的表,并用五条记录填充该表。
CREATE DATABASE exampleDB; use exampleDB; CREATE TABLE exampleDB.cricketers_data( First_Name VARCHAR(255), Last_Name VARCHAR(255), Date_Of_Birth date, Place_Of_Birth VARCHAR(255), Country VARCHAR(255) ); insert into cricketers_data values('Shikhar', 'Dhawan', DATE('1981-12-05'), 'Delhi', 'India'); insert into cricketers_data values('Jonathan', 'Trott', DATE('1981-04-22'), 'CapeTown', 'SouthAfrica'); insert into cricketers_data values('Kumara', 'Sangakkara', DATE('1977-10-27'), 'Matale', 'Srilanka'); insert into cricketers_data values('Virat', 'Kohli', DATE('1988-11-05'), 'Delhi', 'India'); insert into cricketers_data values('Rohit', 'Sharma', DATE('1987-04-30'), 'Nagpur', 'India'); select * from mydatabase.cricketers_data;
将以下maven依赖项(对于jar文件mybatis-3.4.1.jar)添加到pom.xml文件中-
<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.4.5</version> </dependency>
以下JDBC程序执行sampleScript.sql文件。
import java.io.BufferedReader; import java.io.FileNotFoundException; import java.io.FileReader; import java.io.Reader; import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import org.apache.ibatis.jdbc.ScriptRunner; public class RunningScripts { public static void main(String args[]) throws Exception { //注册驱动程序 DriverManager.registerDriver(new com.mysql.jdbc.Driver()); //获得连接 String mysqlUrl = "jdbc:mysql://localhost/talakai_noppi"; Connection con = DriverManager.getConnection(mysqlUrl, "root", "password"); System.out.println("Connection established......"); //初始化脚本运行器 ScriptRunner sr = new ScriptRunner(con); //创建阅读器对象 Reader reader = new BufferedReader(new FileReader("E:\\sampleScript.sql")); //运行脚本 sr.runScript(reader); } }
输出结果
Connection established...... CREATE DATABASE exampleDB use exampleDB CREATE TABLE exampleDB.cricketers_data( First_Name VARCHAR(255), Last_Name VARCHAR(255), Date_Of_Birth date, Place_Of_Birth VARCHAR(255), Country VARCHAR(255) ) insert into cricketers_data values('Shikhar', 'Dhawan', DATE('1981-12-05'), 'Delhi', 'India') insert into cricketers_data values('Jonathan', 'Trott', DATE('1981-04-22'), 'CapeTown', 'SouthAfrica') insert into cricketers_data values('Kumara', 'Sangakkara', DATE('1977-10-27'), 'Matale', 'Srilanka') insert into cricketers_data values('Virat', 'Kohli', DATE('1988-11-05'), 'Delhi', 'India') insert into cricketers_data values('Rohit', 'Sharma', DATE('1987-04-30'), 'Nagpur', 'India') select * from mydatabase.cricketers_data First_Name Last_Name Year_Of_Birth Place_Of_Birth Country Shikhar Dhawan 1981-12-05 Delhi India Jonathan Trott 1981-04-22 CapeTown SouthAfrica Lumara Sangakkara 1977-10-27 Matale Srilanka Virat Kohli 1988-11-05 Delhi India Rohit Sharma 1987-04-30 Nagpur India