JDBC

JDBC:java Data Base Connectivity (java数据库连接)
步骤:
1. 注册驱动.
2. 获得连接.
3. 获得语句执行平台
4. 执行sql语句
5. 处理结果
6. 释放资源.

1、注册驱动
代码:Class.forName(“com.mysql.jdbc.Driver”);//以mySQL为例
JDBC规范定义驱动接口:java.sql.Driver
MySql驱动包提供了实现类:com.mysql.jdbc.Driver
DriverManager工具类,也提供注册驱动的方法 registerDriver(),所以我们可以通过如下语句进行注册:
DriverManager.registerDriver(new com.mysql.jdbc.Driver());
但以上代码不推荐使用,存在两方面不足
1. 硬编码,后期不易于程序扩展和维护
2. 驱动被注册两次,浪费资源:通过查询Driver接口的源码我们发现静态代码块中已经new了一个Driver,在使用上述代码进行注册时,驱动就被注册了两次。
因此通常开发我们使用Class.forName() 加载一个使用字符串描述的驱动类。

public class Driver extends NonRegisteringDriver implements java.sql.Driver {
    static {
        try {
            java.sql.DriverManager.registerDriver(new Driver());
        } catch (SQLException E) {
            throw new RuntimeException("Can't register driver!");
        }
    }
}

2、获得数据库连接
代码:Connection con = DriverManager.getConnection(url,username,password);
url就是需要连接数据库的位置(网址)
user用户名
password 密码
其中,JDBC规定url的格式由三部分组成,每个部分中间使用冒号分隔。
 第一部分是jdbc,这是固定的;
 第二部分是数据库名称,那么连接mysql数据库,第二部分当然是mysql了;
 第三部分是由数据库厂商规定的,我们需要了解每个数据库厂商的要求,mysql的第三部分分别由数据库服务器的IP地址、端口号(一般为3306),以及DATABASE名称组成。
例如:本地的mySQL数据库的url=jdbc:mysql://localhost:3306/数据库名
3、获得语句执行平台
使用Connection接口中的createStatement方法,返回一个Statement对象,用于将要执行的sql语句发送到数据库。
代码:Statement state = con.createStatement();
4、执行SQL语句
使用Statement中的方法:
int executeUpdate(String sql); –执行insert update delete语句.
ResultSet executeQuery(String sql); –执行select语句.,返回值为查询结果的集合
boolean execute(String sql); –执行select返回true 执行其他的语句返回false.
5、处理结果集
当我们执行查询语句时会返回一个结果集ResultSet
ResultSet实际上就是一张二维的表格,我们可以调用其boolean next()方法指向某行记录,当第一次调用next()方法时,便指向第一行记录的位置,这时就可以使用ResultSet提供的getXXX(int col)方法(与索引从0开始不同个,列从1开始)来获取指定列的数据:
rs.next();//指向第一行
rs.getInt(1);//获取第一行第一列的数据
常用方法:
 Object getObject(int index) / Object getObject(String name) 获得任意对象
 String getString(int index) / Object getObject(String name) 获得字符串
 int getInt(int index) / Object getObject(String name) 获得整形
 double getDouble(int index) / Object getObject(String name) 获得双精度浮点型
6、释放资源
需要释放的资源一般有三个(Connection对象con,Statement对象state,结果集ResultSet对象rs),使用close方法关闭即可。
rs.close();
state.close();
con.close();

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值