小鲁哥哥白话笔记-JDBC(API详解)
前边我们讲过SQL的一些基本操作,大家都是通过图形化工具对数据本身进行操作,今天我们讲一讲如何通过java代码去操作数据库,java中定义了一种规范,叫做JDBC. JDBC:JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。是Java访问数据库的标准规范 JDBC的使用是有标准的步骤的,大家根据固定的模式去写自己的JDBC代码就可以。 JDBC一共6个步骤: 1. 注册驱动. 2. 获得连接. 3. 获得语句执行平台 4. 执行sql语句 5. 处理结果 6. 释放资源. 下边给大家聊一聊JDBC里API的使用: 一、注册驱动: 代码:Class.forName("com.mysql.jdbc.Driver"); JDBC规范定义驱动接口:java.sql.Driver,MySql驱动包提供了实现类:com.mysql.jdbc.Driver DriverManager工具类,提供注册驱动的方法 registerDriver(),方法的参数是java.sql.Driver,所以我们可以通过如下语句进行注册: DriverManager.registerDriver(new com.mysql.jdbc.Driver()); 以上代码不推荐使用,存在两方面不足 1. 硬编码,后期不易于程序扩展和维护 2. 驱动被注册两次。 通常开发我们使用Class.forName() 加载一个使用字符串描述的驱动类。 如果使用Class.forName()将类加载到内存,该类的静态代码将自动执行。 通过查询com.mysql.jdbc.Driver源码,我们发现Driver类“主动”将自己进行注册 [Java] 纯文本查看 复制代码 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!");
}
}
……
} 二、获得链接 代码:Connection con = DriverManager.getConnection
(“jdbc:mysql://localhost:3306/mydb”,”root”,”root”); 获取连接需要方法 DriverManager.getConnection(url,username,password),三个参数分别表示,url 需要连接数据库的位置(网址) user用户名 password 密码 url比较复杂,下面是mysql的url: jdbc:mysql://localhost:3306/mydb JDBC规定url的格式由三部分组成,每个部分中间使用冒号分隔。 l 第一部分是jdbc,这是固定的; l 第二部分是数据库名称,那么连接mysql数据库,第二部分当然是mysql了; l 第三部分是由数据库厂商规定的,我们需要了解每个数据库厂商的要求,mysql的第三部分分别由数据库服务器的IP地址(localhost)、端口号(3306),以及DATABASE名称(mydb)组成。 三、获得语句执行平台 String sql = "某SQL语句"; 获取Statement语句执行平台:Statement stmt = con.createStatement(); 常用方法: int executeUpdate(String sql); --执行insert update delete语句. ResultSet executeQuery(String sql); --执行select语句. boolean execute(String sql); --执行select返回true 执行其他的语句返回false. 四、处理结果集: 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) 获得双精度浮点型 五、释放资源: 与IO流一样,使用后的东西都需要关闭!关闭的顺序是先得到的后关闭,后得到的先关闭。 rs.close(); stmt.close(); con.close(); 今天先给大家介绍一下什么是JDBC以及JDBC相关的API的使用,下一次我们详细讲一讲如何使用JDBC。
点进这个帖子的同学肯定是要奋发图强,学技术拿高薪的有志青年,这里我看你骨骼惊奇,是个绝世的练武奇才,你我有缘,今天我就把这个武林秘籍如来神掌传授于你! 什么?不想学如来神掌?不要紧!这里有各个门派的武林绝学,链接拿好!!哈哈哈哈 如果你想了解更多黑马课程,如果你想加入黑马这个大家庭学习先进技术,光交天下好友,那就快来吧!
黑马程序员济南中心联系电话:0531-55696830
|