JDBC学习笔记(一)

JDBC(Java Database Connectivity,Java数据库连接),是Java访问数据库的程序接口,由一组用Java语言编写的类与接口组成.JDBC实际上就是由Java实现的数据库访问中间件。

 

JDBC 连接数据库步骤

1.在项目中导入驱动
相关链接

  • Mysql JDBC驱动包----MySQL Connector/J 下载地址:请点这里

下载驱动包提取mysql-connector-java-5.1.38-bin.jar包
右击 项目-> Build Path -> Configure Build Path -> Add Exteranl JARs...选择mysql-connector-java-5.1.38-bin.jar文件
2.在项目中加载JDBC驱动程序
在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),这通过java.lang.Class类的静态方法forName(String  className)实现。成功加载后,会将Driver类的实例注册到DriverManager类中。

  1. Mysql 驱动名:com.mysql.jdbc.Driver 
  1. 加载方式: Class.forName(驱动名);

3.连接及关闭数据库

        要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象,该对象就代表一个数据库的连接。

        使用DriverManager的getConnectin(String url , String username , String password )方法传入指定的欲连接的数据库的路径、数据库的用户名和密码来获得。

  • DriverManager 驱动管理类,主要负责获取一个数据库的连接; 
  •  static Connection getConnection(String url,String user,String password)试图建立到给定数据库URL  的 连接。
  • MySQL 数据库的连接地址格式:" jdbc:mysql://IP 地址:端口号/数据库名称  "
  • Connection 接口与特定数据库的连接(会话)。 
  •  void close() 立即释放此 Connection 对象的数据库和 JDBC 资源,而不是等待它们被自动释放。

4.代码演示

代码1:

package cn.iborder.jdbc.test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class test1 {
    //驱动名称
	private static String jdbcDriver="com.mysql.jdbc.Driver";
    //数据库地址
	private static String url="jdbc:mysql://localhost:3306/test";
    //数据库用户名
	private static String user="root";
    //数据库密码
	private static String password="root";	
	
	public static void main(String[] args) {
		try {
			Class.forName(jdbcDriver); //加载驱动
			System.out.println("JDBC驱动加载成功");
		} catch (ClassNotFoundException e) {
			// TODO 自动生成的 catch 块
//			e.printStackTrace();
			System.out.println("JDBC驱动加载失败");
		}
		Connection con=null;
		try {
            //连接数据库
			con = DriverManager.getConnection(url, user, password);
			System.out.println("连接数据库成功");
		} catch (SQLException e) {
			// TODO 自动生成的 catch 块
//			e.printStackTrace();
			System.out.println("连接数据库失败");
		}finally{
			try {
                //关闭数据库
				con.close();
				System.out.println("关闭数据库成功");
			} catch (SQLException e) {
				// TODO 自动生成的 catch 块
//				e.printStackTrace();
				System.out.println("关闭数据库失败");
			}
		}
	}
}

执行结果:

JDBC驱动加载成功
连接数据库成功
关闭数据库成功

代码2:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class TestSqlConnect {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		final String SQL_DRIVER = "com.mysql.jdbc.Driver";			//jdbc驱动
		final String SQL_URL = "jdbc:mysql://localhost:3306/test";	//数据库地址
		final String SQL_USER = "root";		//数据库用户名
		final String SQL_PASSWORD = "root";	//数据库密码
		Connection connSQL = null;
		Statement statement = null;
		String sql = null;
		ResultSet resultSet = null;	//结果集
		try {
			Class.forName(SQL_DRIVER);
			connSQL = DriverManager.getConnection(SQL_URL, SQL_USER, SQL_PASSWORD);
			statement = connSQL.createStatement();
			sql = "select * from user";
			resultSet = statement.executeQuery(sql);
			while(resultSet.next()){
			    int uid  = resultSet.getInt("uid");
			    String username = resultSet.getString("username");
			    System.out.println("uid: " + uid+" , username: " + username);
			}
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			System.out.println(e.getMessage());
			System.out.println("加载驱动失败!");
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			System.out.println(e.getMessage());
			System.out.println("连接数据库失败!");
		} finally {
			try {
				resultSet.close();
				statement.close();
				connSQL.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}
}

JDBC API提供了以下接口和类:

  • DriverManager: 这个类管理数据库驱动程序的列表。内容是否符合从Java应用程序使用的通信子协议正确的数据库驱动程序的连接请求。识别JDBC在一定子协议的第一个驱动器将被用来建立数据库连接。

  • Driver: 此接口处理与数据库服务器通信。很少直接与驱动程序对象。相反,使用DriverManager中的对象,它管理此类型的对象。它也抽象与驱动程序对象工作相关的详细信息

  • Connection : 此接口与接触数据库的所有方法。连接对象表示通信上下文,即,与数据库中的所有的通信是通过唯一的连接对象。

  • Statement : 可以使用这个接口创建的对象的SQL语句提交到数据库。一些派生的接口接受除执行存储过程的参数。

  • ResultSet: 这些对象保存从数据库后,执行使用Statement对象的SQL查询中检索数据。它作为一个迭代器,让您可以通过移动它的数据。

  • SQLException: 这个类处理发生在一个数据库应用程序的任何错误。

有下列涉及构建JDBC应用程序的六个步骤:

  • 导入数据包 . 需要包括含有需要进行数据库编程的JDBC类的包。大多数情况下,使用 import java.sql.*  就可以了.

  • 注册JDBC驱动程序. 需要初始化驱动程序,可以与数据库打开一个通信通道。

  • 打开连接. 需要使用DriverManager.getConnection() 方法创建一个Connection对象,它代表与数据库的物理连接。

  • 执行查询 . 需要使用类型声明的对象建立并提交一个SQL语句到数据库。

  • 从结果集中提取数据 . 要求使用适当的关于ResultSet.getXXX()方法来检索结果集的数据。

  • 清理环境. 需要明确地关闭所有的数据库资源相对依靠JVM的垃圾收集。

 

Statement接口的常用方法

boolean execute() 
允许执行查询语句、更新语句、DDL语句。返回值为true时,表示执行的是查询语句,可以通过getResultSet方法获取结果;返回值为false时,执行的是更新语句或DDL语句,getUpdateCount方法获取更新的记录数量。 
int executeUpdate(String sql)
执行给定 SQL 语句,该语句可能为 INSERT、UPDATE 或 DELETE 语句,或者不返回任何内容的 SQL 语句(如 SQL DDL 语句)。 
ResultSet executeQuery(String sql) 
执行给定的 SQL 语句,该语句返回单个 ResultSet 对象。返回值是更新的记录数量

 

转载于:https://my.oschina.net/u/2321708/blog/742429

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值