Java调用SQL脚本执行常用的方法示例有很多种,下面我分别给出两种示例和详细攻略。
示例一
需求描述
我们需要在Java应用中执行一些SQL脚本文件,以便初始化数据库。这些脚本文件需要在应用启动时执行,只需要执行一次。
实现步骤
- 将SQL脚本文件包含在Java应用的classpath中,例如存放在
/src/main/resources/sql
目录下。 - 使用Spring JDBC Template框架进行操作,加载SQL脚本文件并执行。
代码示例
import org.springframework.core.io.ClassPathResource;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import javax.sql.DataSource;
public class InitDatabase {
private static final String DB_DRIVER_CLASS = "com.mysql.jdbc.Driver"; // 数据库驱动
private static final String DB_URL = "jdbc:mysql://localhost:3306/test"; // 数据库URL
private static final String DB_USERNAME = "root"; // 数据库用户名
private static final String DB_PASSWORD = "root"; // 数据库密码
public static void main(String[] args) throws Exception {
// 设置数据源
DataSource dataSource = new DriverManagerDataSource(DB_URL, DB_USERNAME, DB_PASSWORD);
((DriverManagerDataSource) dataSource).setDriverClassName(DB_DRIVER_CLASS);
JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);
// 读取SQL脚本文件并执行
ClassPathResource resource = new ClassPathResource("sql/init_database.sql");
BufferedReader reader = new BufferedReader(
new InputStreamReader(resource.getInputStream(), "UTF-8"));
String line;
StringBuilder builder = new StringBuilder();
while ((line = reader.readLine()) != null) {
builder.append(line);
builder.append("\n");
}
jdbcTemplate.execute(builder.toString());
// 关闭资源
reader.close();
}
}
示例二
需求描述
我们需要在Java应用中执行一些动态产生的SQL语句,以便更灵活地操作数据库。
实现步骤
- 获取数据库连接。
- 创建Statement对象,并设置参数。
- 执行SQL语句,并处理结果集。
- 关闭Statement对象和数据库连接。
代码示例
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.Properties;
public class ExecuteSql {
private static final String DB_DRIVER_CLASS = "com.mysql.jdbc.Driver"; // 数据库驱动
private static final String DB_URL = "jdbc:mysql://localhost:3306/test"; // 数据库URL
private static final String DB_USERNAME = "root"; // 数据库用户名
private static final String DB_PASSWORD = "root"; // 数据库密码
public static void main(String[] args) throws Exception {
// 配置数据库连接参数
Properties props = new Properties();
props.setProperty("user", DB_USERNAME);
props.setProperty("password", DB_PASSWORD);
props.setProperty("useUnicode", "true");
props.setProperty("characterEncoding", "UTF-8");
// 获取数据库连接
Connection conn = DriverManager.getConnection(DB_URL, props);
// 执行SQL语句
Statement stmt = conn.createStatement();
String sql = "SELECT * FROM user";
ResultSet rs = stmt.executeQuery(sql);
// 处理结果集
while (rs.next()) {
long userId = rs.getLong("user_id");
String username = rs.getString("username");
String password = rs.getString("password");
System.out.println("user_id=" + userId + ", username=" + username + ", password=" + password);
}
// 关闭资源
rs.close();
stmt.close();
conn.close();
}
}
以上就是Java调用SQL脚本执行常用的方法示例的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java调用SQL脚本执行常用的方法示例 - Python技术站