JavaEE学习12--JDBC(上)

来源:互联网 发布:sql创建主键语句 编辑:程序博客网 时间:2024/06/05 05:02

JDBC概念及详解

 

JDBC简介

 

JDBC(Java DataBase Connectivity)即java数据库连接是Java连接不同数据库的类库,它有三个核心功能:1.连接数据库2.向数据库发送SQL语句3.操作SQL语句的返回结果


JDBC概念

 

JDBC是SUN公司提供一套访问数据库的规范(就是一组接口),并提供连接数据库的协议标准,各个数据库厂商遵循SUN的规范提供一套访问自己公司的数据库服务器的API。SUN提供的规范命名为JDBC,而各个厂商提供的,遵循了JDBC规范的可以访问不同型号的数据库的API被称之为数据库驱动


JDBC核心类与接口

 

DriverManager类

 

简介:DriverManger是java.sql包下的一个类,它的作用是1.注册驱动:这可以让JDBC知道要使用的是哪个驱动。2.获取Connection:成功获取到Connection,那么说明已经与数据库连接上了。

常用方法:

public static Connection getConnection(String url,String user,String password)

该方法作用试图建立到给定数据库 URL 的连接,并返回一个数据库连接对象connection

getConnection方法有三个参数:

url: URL用于标识数据库的位置,通过URL地址告诉JDBC程序连接哪个数据库

其基本格式为:协议子协议主机端口数据库,例如: jdbc:mysql://localhost:3306/itcast_gjp

如果我们连接的是本机并且端口号是3306,以上代码也可以简写成Jdbc:mysql:///itcast_gjp

url后面也可以携带参数例如:jdbc:mysql://localhost:3306/day06?useUnicode=true&characterEncoding=UTF-8

user:这个是数据库的用户名

password:这个是对应用户的密码

Connection类

简介:Connection代表的是一个与数据库连接的对象

常用方法:

Statement createStatement() 创建一个 Statement 对象来将 SQL 语句发送到数据库

PreparedStatement prepareStatement(String sql)创建一个 PreparedStatement 对象来将参数化的 SQL 语句发送到数据库

CallableStatement prepareCall(String sql)创建一个 CallableStatement 对象来调用数据库存储过程

Statement类

简介:Statement对象用于执行静态 SQL 语句并返回它所生成结果的对象。

常用方法:

ResultSet executeQuery(String sql) 执行给定的sql语句,该语句通常是select,返回单个的ResultSet对象

int executeUpdate(String sql) 执行给定的sql语句,该语句可能为update,delete,insert,返回的是行计数

boolean execute(String sql) 执行给定的sql语句,该语句返回多个结果,如果第一个结果为ResultSet对象,则返回true,其它则返回false

ResultSet类

简介:ResultSet对象表示数据库结果集的数据表,是一个二维数据表,可以通过索引操作其中的数据,通常通过执行查询数据库的语句生成。Resultset封装执行结果时,类似迭代器。

常用方法:

boolean next()将光标从当前位置向前移一行。ResultSet 指针最初位于第一行之前;第一次调用 next 方法使第一行成为当前行;第二次调用使第二行成为当前行,依此类推。如果存在下一行,则返回true,不存在则返回false.

Object getObject(String columnLabel) 获取任意类型数据,参数 columnLabel代表的是列的名称

Object getObject(int columnIndex) 参数columnIndex代表的是列的序号,第一列序号为1,第二列是2,以此类推

获取指定类型数据

int getInt(int columnIndex)

Date getDate(int columnIndex)

String getString(int columnIndex)

 

JDBC操作数据库

JDBC连接数据库是一个固定步骤,是常规Java项目的基本操作。

1.通过DriverManager注册驱动

2.通过DriverManager获取连接对象Connection

3.通过Connection获取一个可以向数据库发送sql语句的对象Statement    

4.通过Statement对象执行sql语句(select) 得到一个结果集ResultSet

5.遍历结果集ResultSet,得到数据表中的数据

6.释放资源

/***1.通过DriverManger注册驱动* 使用registerDriver()方法注册驱动最终会组测两次驱动,因为Driver对象中有一个静态代码块用来注册驱动* 因此常用反射的方式注册驱动* Class.forName("com.mysql.jdbc.Driver");*/DriverManager.registerDriver(new Driver() throws SQLException);/**2.通过DriverManager获取连接对象*/Connection connection = DriverManager.getConnection(    "jdbc:mysql://localhost:3306/ gjp", "root", "abc");/**3.通过Connection获取一个操作sql语句的对象Statement*/Statement statement = connection.createStatement();/*** 4.执行sql语句(select) 得到一个ResultSet* 使用executeQuery方法执行查询会有结果集,使用executeUpdate方法执行更新则没有结果集*/String sql = "select * from aaa";ResultSet resultSet = statement.executeQuery(sql);/*** 5.操作结果集,得到数据(使用类似迭代器)* ResultSet就是一张二位表格,它内部有一个"行光标",光标默认的位置在"第一行上方",我们可以调用ResultSet对象的next()方法把"行光标"向下移动一行,当第一次调用next()方法之后,"行光标"就到了第一行记录的位置,这时就可以使用ResultSet提供的getXXX(int col)方法来获取指定列的数据了* resultSet.next();//光标移动到第一行* resultSet.getInt(1);//获取第一行第一列的数据*/while (resultSet.next()) {System.out.println("ID:" + resultSet.getInt("id") + "\tNAME:"+ resultSet.getString("name"));}/*** 6.释放资源* 包括结果集 resultSet* 负责向数据库发送sql语句的对象 statement* 数据库连接对象 connection* 关闭是有顺序的,先得到的后关闭,后得到的先关闭*/resultSet.close();statement.close();connection.close();


原创粉丝点击