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();
- JavaEE学习12--JDBC(上)
- JavaEE学习12—JDBC(下)
- JAVAEE学习之JDBC
- javaee学习之路(十八)JDBC
- javaee-jdbc
- 【JavaEE】JDBC
- javaEE JDBC
- 天猫总站JavaEE版本的实现(一):jdbc的学习
- javaee学习之路(十九)JDBC连接池
- javaee学习日记之java基础之jdbc
- javaEE jdbc编程步骤
- javaEE jdbc事务管理
- javaEE jdbc批处理
- 【概念笔记】JavaEE - jdbc
- 【JavaEE】JDBC基本技术
- 【javaEE】【Mybatis】【JDBC】问题
- javaEE jdbc获取数据1(封装到对象中)
- javaEE学习
- 【HDU】 1027 Ignatius and the Princess II
- 2017年Android第三方框架排行榜
- Python 获取二进制中1的位置
- Spring单例模式与线程安全
- Win10不能直接拖文件进行打开解决 办法
- JavaEE学习12--JDBC(上)
- as 导入eclipse项目报错:Error:Application and test application id cannot be the same: both are 'com.hjy.act
- 商城项目--产品的加减中的watch监听
- 外网远程桌面连接内网服务器教程(超详细)
- jquery操作select(取值,设置选中)
- 区别 chown和chmod的用法
- 数据的表示与存储
- memcached在linux下的安装
- 51nod 1603 限高二叉排列树(求补思想->DP)