在Java代码中执行SQL语句,可以采用以下两种 :
JDBC (Java Database Connectivity)
JDBC是Java中访问数据库的标准接口,它提供了一组操作数据库的类和接口。使用JDBC执行SQL语句的步骤如下:
导入JDBC相关的jar包
建立与数据库的连接
创建Statement对象
执行SQL语句
处理结果集(如果有的话)
关闭连接和Statement对象
Spring ORM (Object-Relational Mapping)
Spring ORM是一种Java框架,提供了对数据库的映射和操作功能。使用Spring ORM执行SQL语句的步骤如下:
配置数据源(DataSource)
定义实体类,用于映射数据库表
创建Spring ORM会话
使用会话执行SQL语句
处理查询结果
关闭会话
代码示例
JDBC示例:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JDBCExample {
public static void main(String[] args) {
try {
// 建立数据库连接
Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/database_name", "username", "password");
// 创建Statement对象
Statement stmt = conn.createStatement();
// 执行SQL语句
ResultSet rs = stmt.executeQuery("SELECT * FROM table_name");
// 处理结果集
while (rs.next()) {
System.out.println(rs.getString("column_name"));
}
// 关闭连接和Statement对象
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
Spring ORM示例:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate5.HibernateTemplate;
import org.springframework.stereotype.Repository;
import org.springframework.transaction.annotation.Transactional;
import javax.persistence.Query;
@Repository
public class SpringORMExample {
@Autowired
private HibernateTemplate hibernateTemplate;
@Transactional
public void executeSQL() {
// 使用命名参数查询(query by named parameters)
Query query = hibernateTemplate.getSessionFactory().getCurrentSession().createQuery("FROM TableEntity WHERE name = :name");
query.setParameter("name", "John Doe");
// 获取查询结果
List
// 处理查询结果
for (TableEntity entity : entities) {
System.out.println(entity.getName());
}
}
}
以上两种 各有利弊,JDBC更加通用和灵活,而Spring ORM提供了更方便易用的编程模型