JDBC操作数据库的基本步骤

二话不说,直接上代码:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;


public class JDBC {
	
	public static void main(String[] args) {
		
		//数据库连接
		Connection connection = null;
		//预编译的Statement,使用预编译的Statement可以提高数据库性能
		PreparedStatement preparedStatement =null;
		//结果集
		ResultSet resultSet = null;
		
		try {
			
			//加载数据库驱动
			Class.forName("com.myqsl.jdbc.Driver");
			//通过数据驱动管理类获取数据库连接
			connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf8","root","123456");
			//定义sql语句?表示占位符
			String sql = "select * from user where username = ?";
			//获取预处理statement
			preparedStatement = connection.prepareStatement(sql);
			//设置参数
			preparedStatement.setString(1, "小路");
			//向数据库发出sql执行查询,查询出结果集
			resultSet = preparedStatement.executeQuery();
			//遍历查询结果集
			while(resultSet.next()){
				System.out.println(resultSet.getString("id") + " "+resultSet.getString("username") );
			}
			
		} catch (Exception e) {
			e.printStackTrace();
		}finally{
			//释放资源
			if(resultSet != null){
				try {
					resultSet.close();
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
			if(preparedStatement != null){
				try {
					preparedStatement.close();
				} catch (Exception e) {
					e.printStackTrace();
				}
			}
		}
	}
	
}


JDBC介绍

      JDBC的全称是Java Database Connectivity,即Java数据库连接,它是一种可以执行SQL语句的Java API。与其他数据库编程环境相比,JDBC为数据库开发提供了标准的API,所以使用JDBC开发的数据库应用可以跨平台运行,而且可以跨数据库。通过使用JDBC,就可以使用同一种API访问不同的数据库系统,只需要根据不同的数据库,使用不同的数据库驱动程序就可以了。

PS:Sun公司制定了一组标准的API,它们只是接口,没有提供实现类——这些实现类由各数据库厂商提供实现,这些实现类就是驱动程序。而程序员使用JDBC时只要面向标准的JDBC API编程即可,当需要在数据库之间切换时,只要更换不同的实现类(即更换数据库驱动程序)就行,这就是面向接口编程的典型应用。

SQL语句基础

标准的SQL语句通常可分为如下几种类型。

1)查询语句:主要由select关键字完成。

2)DML(Data Manipulation Language,数据操作语言)语句:主要由insert,update和delete三个关键字完成

3)DDL(Data Definition Language,数据定义语言)语句:主要由create,alter,drop和truncate四个关键字组成。

4)DCL(Data Control Language,数据控制语言)语句:主要由grant和revoke两个关键字完成。

5)事务控制语句:主要由commit,rollback和savepoint三个关键字完成。

SQL语句的关键字不区分大小写。

JDBC常用接口和类介绍

1)DriverManager:用于管理JDBC驱动的服务类。程序中使用该类的主要功能是获取Connection对象,该类包含如下方法:

     public static synchronized Connection getConnection(String url,String user,String pass):该方法获得url对应数据库的连接。

2)Connection:代表数据库连接对象,每个Connection代表一个物理连接会话。要想访问数据库,必须先获得数据库连接。该接口的常用方法如下:

     Statement createStatement():该方法返回一个Statement对象。

     PreparedStatement prepareStatement(String sql) :该方法返回预编译的Statement对象,即将SQL语句提交到数据库进行预编译。

     CallableStatement prepareCall(String sql) :该方法返回CallableStatement对象,该对象用于调用存储过程。

     上面三个方法都返回用于执行SQL语句的Statement对象,PreparedStatement,CallableStatement是Statement的子类,只有获得了Statement之后才可执行SQL语句。

     除此之外,Connection还有如下几个用于控制事务的方法。

    (1)Savepoint setSavepoint():创建保存点。

    (2)Savepoint setSavepoint(String name):指定名字来创建一个保存点。

    (3)void setTransactionIsolation(int level):设置事务的隔离级别。

    (4)void rollback():回滚事务。

    (5)void rollback(Savepoint savepoint):将事务回滚到指定的保存点。

    (6)void setAutoCommit(boolean autoCommit):关闭自动提交,打开事务。

    (7)void commit():提交事务。

3)Statement:用于执行SQL语句的工具接口。该对象既可以执行DDL,DCL语句,也可以执行DML语句,还可以执行SQL查询。当执行SQL查询时,返回查询到的结果集。常用方法如下:

     (1)ResultSet executeQuery(String sql):该方法用于执行查询语句,并返回查询结果对应的ResultSet对象。该方法只能用于执行查询。

     (2)int executeUpdate(String sql):该方法用于执行DML语句,并返回受影响的行数;该方法也可以执行DDL语句,执行DDL语句将返回0。

     (3)boolean execute(String sql):该方法可执行任何SQL语句。如果执行后第一个结果为ResultSet对象,则返回true;如果执行后第一个结果为受影响的行数或没有任何结                果,则返回false。

4)PreparedStatement:预编译的Statement对象。preparedStatement是Statement的子接口,它允许数据库预编译SQL语句(这些SQL语句通常带有参数),以后每次只改变SQL命令的参数,避免数据库每次都需要编译SQL语句,因此性能更好。它比Statement多了如下方法:

     void setXxx(int paremeterIndex,Xxx value):该方法根据传入参数值的类型不同,需要使用不同的方法。传入的值根据索引传给SQL语句中指定位置的参数。

     PS:PreparedStatement同样有executeUpdate(),executeQuery(),execute()三个方法,只是这三个方法无须接收SQL字符串,因为PreparedStatement对象已经预编译了SQL命令,只要为这些命令传入参数即可。

5)ResultSet:结果集对象。该对象包含访问查询结果的方法,ResultSet可以通过列索引或列名获得数据。它包含了如下常用方法来移动记录指针。

     (1)void close():释放ResultSet对象。

     (2)boolean absolute(int row):将结果集的记录指针移动到第row行,如果row是负数,则移动到倒数第row行。如果移动后的记录指针指向一条有效记录,则返回true。

     (3)void beforeFirst():将ResultSet的记录指针定位到首行之前,这是ResultSet结果集记录指针的初始状态——就指针的起始位置位于第一行之前。

     (4)boolean first():将ResultSet的记录指针定位到首行。如果移动后的记录指针指向一条有效数据,则该方法返回true。

     (5)boolean previous():将ResultSet的记录指针定位到上一行。如果移动后的记录指针指向一条有效数据,则该方法返回true。

     (6)boolean next():将ResultSet的记录指针定位到下一行。如果移动后的记录指针指向一条有效数据,则该方法返回true。

     (7)boolean last():将ResultSet的记录指针定位到最后一行。如果移动后的记录指针指向一条有效数据,则该方法返回true。

     (8)void afterLast():将ResultSet的记录指针定位到最后一行之后。

       当把记录指针移动到指定行之后,ResultSet可以通过getXxx(int columnIndex)或getXxx(String columnLable)方法来获取当前行,指定列的值,前者根据列索引获取值,后者根据列名获取值。Java 7 新增了<T>T getObject(int columnIndex ,Class<T>type)<T>T getObject(String columnLable,Class<T>type)两个泛型方法,它们可以获取任意类型的值。

JDBC编程步骤(首先得添加MySQL的数据库驱动)

1)加载数据库驱动。通常使用Class类的forName()静态方法来加载驱动。

     Class.forName(driverClass) ; 如:Class.forName("com.mysql.jdbc.Driver") ;//加载MySQL的驱动

2)通过DriverManager获取数据库连接

     DriverManager.getConnection(String url,String user,String pass);

     MySQL数据库的URL写法如下:jdbc:mysql://hostname:port/databasename

3)通过Connection对象创建Statement对象。Connection创建Statement的方法有如下三个:

     (1)createStatement():创建基本的Statement对象。 

     (2)prepareStatement(String sql):根据传入的SQL语句创建预编译的Statement对象。

     (3)prepareCall(String sql):根据传入的SQL语句创建CallableStatement对象。

4)使用Statement执行SQL语句。所有的Statement都有如下三个方法来执行SQL语句。

    (1)execute();

    (2)executeUpdate();

    (3)executeQuery();

5)操作结果集。如果执行的SQL语句是查询语句,则执行结果将返回一个ResultSet对象,该对象里保存了SQL语句查询的结果。

6)回收数据库资源,包括关闭ResultSet,Statement和Connection等资源。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值