一、JDBC简介
JDBC(java database connectivity),是sun公司指定的java数据库连接技术的简称。
它是Java程序操作数据库的API,是Java操作数据库的规范,由一组用Java语言编写的类和接口组成,他对数据库的操作提供了基本方法,但对于数据库的细节操作由数据库厂商进行实现。JDBC实际上有两组API,一组面向java应用程序开发人员,另一组是面向数据库驱动程序开发人员的,一般都是数据驱动程序开发人员利用后面一组API开发出供应程序开发人员使用的API。
我们需要熟悉包java.sql.*中定义的类(class),接口(interface),例外(expection),并且能够灵活使用他们,就能够发挥出JDBC强大的功能。
二、JDBC连接数据库的过程
1.注册数据库驱动
Class.forName("com.mysql.jdbc.Driver");
2.构建数据库连接URL
3.获取Connection对象
Connection connection = DriverManager.getConnection(url:"jdbc:mysql://localhost:3306/xxx",user:"root",password:"root");
三、实例
1 public class JDBCTest { 2 public static Connection getConnection() throws SQLException, 3 java.lang.ClassNotFoundException 4 { 5 //第一步:加载MySQL的JDBC的驱动 6 Class.forName("com.mysql.jdbc.Driver"); 7 8 //取得连接的url,能访问MySQL数据库的用户名,密码;jsj:数据库名 9 String url = "jdbc:mysql://localhost:3306/fuck"; 10 String username = "root"; 11 String password = "861113"; 12 13 //第二步:创建与MySQL数据库的连接类的实例 14 Connection con = DriverManager.getConnection(url, username, password); 15 return con; 16 } 17 18 19 public static void main(String args[]) { 20 try 21 { 22 //第三步:获取连接类实例con,用con创建Statement对象类实例 sql_statement 23 Connection con = getConnection(); 24 Statement sql_statement = con.createStatement(); 25 26 //如果同名数据库存在,删除 27 //sql_statement.executeUpdate("drop table if exists student"); 28 //执行了一个sql语句生成了一个名为student的表 29 //sql_statement.executeUpdate("create table student (id int not null auto_increment, name varchar(20) not null default 'name', math int not null default 60, primary key (id) ); "); 30 31 //向person表中插入数据 32 sql_statement.executeUpdate("insert person values(3, 'liying', 98)"); 33 sql_statement.executeUpdate("insert person values(4, 'jiangshan', 88)"); 34 sql_statement.executeUpdate("insert person values(5, 'wangjiawu', 78)"); 35 sql_statement.executeUpdate("insert person values(6, 'duchangfeng', 100)"); 36 37 //第四步:执行查询,用ResultSet类的对象,返回查询的结果 38 String query = "select * from person"; 39 ResultSet result = sql_statement.executeQuery(query); 40 41 //显示数据中person表中的内容: 42 System.out.println("person表中的数据如下:"); 43 System.out.println("------------------------"); 44 System.out.println("序号" + " " + "姓名" + " " + "分数"); 45 System.out.println("------------------------"); 46 47 //对获得的查询结果进行处理,对Result类的对象进行操作 48 while (result.next()) 49 { 50 int number = result.getInt("number"); 51 String name = result.getString("name"); 52 String mathsorce = result.getString("mathsorce"); 53 54 //取得数据库中的数据 55 System.out.println(" " + number + " " + name + " " + mathsorce); 56 } 57 58 //关闭连接和声明 59 sql_statement.close(); 60 con.close(); 61 62 } catch(java.lang.ClassNotFoundException e) { 63 System.err.print("ClassNotFoundException"); 64 System.err.println(e.getMessage()); 65 } catch (SQLException ex) { 66 System.err.println("SQLException: " + ex.getMessage()); 67 } 68 } 69 70 }