Java JDBC

JDBC API

开发公司:原SUN公司,现Orcal公司。

简介:提供了可调用的接口与类,集成在java.sql与javax.sql中,提供以下接口与类

1)Driver接口:代表驱动程序, Driver接口由数据库厂家提供,对于Java开发者而言,只需要使用Driver接口就可以了。

  • 在编程中要连接数据库,必须先装载特定厂商的数据库驱动程序。不同的数据库有不同的装载方法。

  • 驱动:就是各个厂商实现Sun公司提出的JDBC接口。即对Connection等接口的实现类的jar文件。

  • 装载mysql驱动:Class.forName(“com.mysql.jdbc.Driver”);

  • 装载oracle驱动:Class.forName(“com.jdbc.driver.OracleDriver”);

2)DriverManager类:驱动程序管理员,是JDBC管理层,作用于用户和驱动程序之间, 此类管理数据库驱动程序列表,用来管理数据库中的所有驱动程序,跟踪可用的驱动程序,并在数据库和相应驱动程序之间建立连接.此外,DriverManager类中的方法都是静态方法,所以在程序中无须对它进行实例化,直接通过类名就可以调用.DriverManager类的常用方法有getConnection(String url,String user,String password)方法

3)Connection接口:代表数据库连接,此接口与特定数据库的连接(会话),在连接上下文中执行sql语句并返回结果(说白了就是指定,数据库连接,然后连接执行sql语句获取结果)
DriverManager的getConnection()方法建立在JDBC URL中定义的数据库Connection连接上

1. Mysql

Connection con = DriverManager.getConnection(“jdbc:mysql://localhost:8080/database”, “user”,“password”);

2. Oracle

Connection con =DriverManager.getConnection(“jdbc:oracle:thin@localhost:8080/database”, “user”,“password”);

4)Statement接口: 数据库操作对象,有三种Statement类

1.Statement,由con.createStatement创建,用于发送简单的sql语句(不带参数,用的较少)

2.PreparedStatement,继承自Statement接口,由con.preparedStatement创建,用于发送含有一个或者多个输入参数的SQL语句。 比Statement对象效率更高,并且是防止SQL注入。我们一般都使用PreparedStatement。

3.CallableStatement:继承自preparedStatement。由方法prePareCall创建,用于调用存储过程。

常用的Statement方法

  • execute():运行语句,返回是否有结果集。

  • executeQuery():运行select语句,返回ResultSet结果节

  • executeUpdate():运行insert/update/delete操作,返回更新的行数。

5)ResultSet接口:数据库结果集

Statement执行SQL语句时返回Result结果集。

ResultSet提供的检索不同类型字段的方法,常用的有:

  • getString():获得在数据库里是varchar,char等数据类型的对象。

  • getFloat():获得数据库里是Float类型的对象

  • getDate():获得数据库里是Date类型的对象

  • getBoolean():获得数据库里是Boolean类型的数据

    依序关闭使用的对象和连接

  • Result->Statement->Connection

JDBC实例:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class TestJdbc {

	public static void main(String[] args) {
		Connection conn = null;  //提升Connection作用域,用于关闭连接
		Statement stmt = null;
		ResultSet rs = null;
		// TODO Auto-generated method stub		
		try {
			//1.加载驱动
			Class.forName("com.mysql.jdbc.Driver");
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		try {
			//2.获取连接对象
			 conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/myschools","root","sss");
			System.out.println("连接成功");  //如果上一句话成功连接数据库,则会执行此句
			//3.写sql语句并执行
			String sql = "select * from subject";
		    stmt = conn.createStatement(); //创建一个Statement对象来将SQL语句发送到数据库
			//4.返回ResultSet
			rs = stmt.executeQuery(sql);
			while (rs.next()) {
			int sNo = rs.getInt("subjectNo");
			String sName = rs.getString("subjectName");
			int classHours = rs.getInt("classHours");
			int gId = rs.getInt("gradeID");		
			System.out.println(sNo+"\t"+sName+"\t"+classHours+"\t"+gId);
			}
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			//关闭连接
			try {
				rs.close();
				conn.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		
		
	}

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值