Spring JDBC
spring 框架对JDBC的简单封装, 提供一个JDBCTemplate对象简化的JDBC开发
步骤:
- 导入jar包
- 创建 JDBCTemplate 对象, 依赖于数据源DataSource
- 调用JDBCTemplate 的方法来完成增删改查的操作
update(): 执行DML语句. 增、删、改
queryForMap(): 查询结果将结果集封装为Map集合
queryForList(): 查询结果将结果集封装为List集合
query():查询结果,将结果封装为JavaBean对象
queryForObject: 查询结果, 将结果封装为对象
代码示例
druid.properties文件
username=root
password=qq124519
driverClassName=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/db3?useSSL=false&serverTimezone=UTC&characterEncoding=UTF-8&useUnicode=yes
initialSize=10
maxActive=50
maxWait=3000
Druid连接池的工具类
public class JDBCUtils {
//定义成员变量DataSource
private static DataSource ds;
//对静态变量进行初始化值
static {
//1.加载配置文件
Properties pro = new Properties();
//通过load方法加载
try {
pro.load(JDBCUtils.class.getClassLoader().getResourceAsStream("druid.properties"));
//获取DataSource
ds = DruidDataSourceFactory.createDataSource(pro);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 获取连接
*/
public static Connection getConnection() throws SQLException {
return ds.getConnection();
}
/**
* 释放资源
*/
public static void close(Statement stmt, Connection conn) {
if (stmt != null) {
try {//把异常处理而不是抛出去是为了使关闭的方法更加简单
stmt.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();//归还连接
} catch (SQLException e) {
e.printStackTrace();
}
}
}
//再来一个重载
public static void close(ResultSet rs, Statement stmt, Connection conn) {
if (rs != null) {
try {//把异常处理而不是抛出去是为了使关闭的方法更加简单
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (conn != null) {
try {
conn.close();//归还连接
} catch (SQLException e) {
e.printStackTrace();
}
}
}
/**
* 获取连接池的方法
*/
public static DataSource getDataSource() {
return ds;
}
}
package jdbcTemplate;
import org.springframework.jdbc.core.JdbcTemplate;
import utils.JDBCUtils;
public class JdbcTemplateDemo {
public static void main(String[] args) {
//创建 JDBCTemplate 对象
JdbcTemplate template=new JdbcTemplate(JDBCUtils.getDataSource());
//定义一个SQL
String sql="update account1 set balance=5000 where id = ?";
//调用方法, 给sql语句的问号赋值为3
int count = template.update(sql, 3);
//打印count,如果成功则打印1
System.out.println(count);
}
}