JDBC基础之连接

本文详细介绍了JDBC作为连接Java程序与数据库的接口,包括如何注册驱动、建立连接、执行SQL语句以及处理结果集。重点阐述了JDBC在数据库访问过程中的关键步骤与常用方法,并提供了实例代码演示,帮助开发者掌握JDBC的基本使用。

      JDBC就是连接java程序和数据库的一个接口,JDBC支持基本的sql语句,可实现mysql、sql sever和oracle数据库接口。是有sun公司定义,数据库厂商以驱动程序实现的一个协议。JDBC的功能主要有以下几个方面:

1.     可以连接数据库,提供java到数据库的连接,实现了一个沟通桥梁的作用;

2.     可以通过sql标准命令语言来操作数据库,实现增删改查的功能;

3.     可以提供对结果集的封装和处理;

4.     支持事务的操作

访问数据库的过程

1.     注册驱动

DrivaterManager.registeDriver(new com.mysql.jdec.Driver());这段代码可以注册加载驱动程序,但从java.5.0以后,该静态代码块就已经注册了,在类运行时刻自行加载,因此该步骤可以省略不写。

2.     加载驱动程序

DiverManager.registerDiver(driver);

3.     建立连接

Connection con = DriverManager.getConnection(url,user,password);

Connction是java.sql.Connection的实现类,但具体是返回哪个类是由驱动决定的,也就是说我们虽然注册的是mysql的驱动,但返回的却是mysql中的Connection,查看源码。

常用mysql的url地址:jdbc:mysql//localhost:3306/sid

注:sid就是需要连接的库名

4.     创建Statement对象

Statement st = con.createStatement();

下面是常用到的一些方法及其作用:

           Statement createStatement();创建Statement对象,Statement对象可以向数据库发送sql语句

     PewparedStatement prepareStatement(String sql);在程序中编译sql语句, 可以减轻数据库服务器压力, 以及提高程序安全性.

CallableStatement prepareCall(String sql)

调用存储过程, 存储过程是数据库中的一组编译好的sql语句, 类似于Java中的函数

ResultSet executeQuery(String sql)

执行查询语句, 返回结果集;

int executeUpdate(String sql)

执行插入, 修改, 删除语句, 返回影响行数;

boolean execute(String sql)

执行任意sql语句, 返回执行是否成功;

void addBatch( String sql )

将sql语句添加到命令列表;

int[] executeBatch()

运行命令列表, 返回每一个命令影响的行数;

4. 处理结果

   如果是查询:那么获取ResultSet对象,进行返回记录的相应操作

       ResultSet rs = st.executeQuery(sql)

   boolean next()

尝试将指针向下移动一行, 返回是否成功

Object getObject(String columnName)

当指针指向某一条记录之后, 可以根据列号或者列名获取某一列的数据, 由于数据库中可以存放多种类型数据, 所以返回Object

ResultSet除了大量get方法外还有一些控制指针移动的方法

boolean next()

尝试将指针向后移动一行, 返回是否成功

boolean previous()

尝试将指针向前移动一行, 返回是否成功
boolean absolute(int row)

尝试将指针移动到指定行, 返回是否成功

 

void beforeFirst()

将指针移动到第一行以前

void afterLast()

将指针移动到最后一行以后

5.释放资源

      rs.close()

   st.close()

   conn.close()

操作方法:

CREATE(增):

CreateStatement st = conn.createStatement();

String sql = "insert into user(name,password,email,birthday) values('zl','111111','zl@itcast.cn','2011-2-19')";

st.executeUpdate(sql);Retrieve

RETRIEVE(查):

Statement st = conn.createStatement();

String sql = "select id,name,password,email,birthday from user";

ResultSet rs = st.executeQuery(sql);

while (rs.next()) {

      System.out.print(rs.getInt(1) + "\t");

      System.out.print(rs.getString(2) + "\t");

      System.out.print(rs.getString(3) + "\t");

      System.out.print(rs.getString(4) + "\t");

      System.out.println(rs.getDate(5) + "\t");

}

UPDATE(改):

Statement st = conn.createStatement();

String sql = " update user set password='123456' where id=4";

st.executeUpdate(sql);

DELETE(删):

Statement st = conn.createStatement();

String sql = " delete from user where id='4'";

st.executeUpdate(sql);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值