java spring jdbc_Spring与JDBC支持

本文详细介绍了JDBC接口在Java中连接数据库的基础操作,包括创建连接、执行SQL语句和异常处理。通过Customer DAO示例,展示了如何使用JDBC进行CRUD操作,并配以Spring配置文件解析。
摘要由CSDN通过智能技术生成

JDBC是一种标准Java编程接口(JAVA API),可以将Java编程语言与广泛数据库进行连接。

JDBC API库包含下面提到的每个任务,都是与数据库相关的常用用法。数据库的连接

创建sql语句

执行或提交sql语句

查看或修改查询到的记录

从根本上说,JDBC是一种规范,它提供了一套完整的接口,可以便携式访问底层数据库。

JDBC架构

JDBC API支持两层或三层的处理模式连接数据库,但一般只使用两层处理模式。JDBC API:提供了应用程序对JDBC管理器的连接。

JDBC DRIVER API:提供了JDBC管理器对驱动程序的连接。

JDBC API使用驱动程序管理器和数据库特定的驱动程序来提供异构(heterogeneous)数据库的透明连接。

JDBC驱动程序管理器可确保正确的驱动程序访问每个数据源,驱动程序管理器能够支持连接多个异构数据库的多个并发驱动程序。

JDBC API 提供了以下接口和类

DriverManager:这个类管理一系列数据库驱动程序。使用通信子协议从Java应用程序中请求合适的数据库驱动程序,建立数据库连接。

Driver:这个接口处理与数据库服务器的通信。我们将很少直接与驱动陈旭互动。

Connection:此接口具有操作数据库的所有方法。改连接对象表示通信上下文,即所有与数据库的通信仅通过这个对象连接。

Statement:这个接口的对象将sql语句提交到数据库。

ResultSet:这个接口保存sql语句查询结果。

SqlException:这个类处理发生在数据库应用程序的任何错误。

代码示例

Customer类

public class Customer {

int custId;

String name;

int age;

//getter and setter methods}

数据库访问DAO

public interface CustomerDAO{

public void insert(Customer customer);

public Customer findByCustomerId(int custId);

}

/*** @author :fengzhiwei* @date :Created in 2019/6/10 11:16* @description:${description}*/

public class JdbcCustomerDAO implements CustomerDAO {

private DataSource dataSource;

public DataSource getDataSource() {

return dataSource;

}

public void setDataSource(DataSource dataSource) {

this.dataSource = dataSource;

}

@Override

public void insert(Customer customer) {

StringBuilder sb = new StringBuilder();

sb.append("insert into customer ")

.append("(cust_id, name, age) ")

.append("value ")

.append("(?,?,?)");

Connection connection = null;

try {

connection = dataSource.getConnection();

PreparedStatement preparedStatement = connection.prepareStatement(sb.toString());

preparedStatement.setInt(1, customer.getCustId());

preparedStatement.setString(2, customer.getName());

preparedStatement.setInt(3, customer.getAge());

preparedStatement.executeUpdate();

preparedStatement.close();

} catch (SQLException e) {

throw new RuntimeException(e);

} finally {

if (connection != null) {

try {

connection.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

}

}

@Override

public Customer findByCustomerId(int custId) {

StringBuilder sb = new StringBuilder("select * from cutomer where cust_id = ?");

Connection connection = null;

Customer customer = null;

try {

connection = dataSource.getConnection();

PreparedStatement preparedStatement = connection.prepareStatement(sb.toString());

preparedStatement.setInt(1, custId);

ResultSet resultSet = preparedStatement.executeQuery();

if (resultSet.next()) {

customer = new Customer();

customer.setCustId(resultSet.getInt("cust_id"));

customer.setAge(resultSet.getInt("age"));

customer.setName(resultSet.getString("name"));

}

resultSet.close();

preparedStatement.close();

} catch (SQLException e) {

throw new RuntimeException(e);

} finally {

if (connection != null) {

try {

connection.close();

} catch (SQLException e) {

e.printStackTrace();

}

}

}

return customer;

}

}

Spring 配置文件

class="org.springframework.jdbc.datasource.DriverManagerDataSource">

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值