java面向对象—JDBC编程

(1)JDBC基础

JDBC的全称是Java Database Connectivity,即java数据库连接,它是一种可以执行SQL语句的JavaAPI。程序可通过JDBC API连接到数据库,并使用结构查询语句实现对数据库查询、更新等操作。与其他数据库编程环境相比,JDBC为数据库开发提供了标准的API,因此使用JDBC开发数据库应用可以跨平台运行,且可以跨数据库。

1> JDBC简介

通过使用JDBC,可以使用同一组API访问不同的数据库系统,使用JDBC最大的优势在于通过JDBC API不必为访问Sybase、DB2等数据库学习新的API,从而极大地简化了开发人员使用JAVA语言对数据库的操作。

2> JDBC常用API简介

JDBC提供了独立于数据库的统一API,用于帮助用户建立与数据库的连接、执行SQL语句和检索结果集等,java开发人员可以利用JDBC API开发数据库应用程序。

3>JDBC编程步骤

1.加载数据库驱动 

 驱动文件导入成功后,即可加载数据库驱动。常用的加载启动方式是使用Class类的forName()静态方法实现加载驱动,代码如下:

Class.forName("com.mysql.jdbc.Driver");

2.获取数据库连接

通过DriverManager类获取数据库连接Connection实例,获取数据库连接代码如下:

Connection conn=DriverManager.getConnection(URL,USER,PASSWORD);

 使用DriverManager类获取数据库连接时,需要传入3个参数;

(1)连接数据库的URL

(2)登录数据库的账号USER

(3) 登录数据库的密码PASSWORD

连接数据库URL遵循如下写法:

jdbc:mysql://hostname:port:dataname

如连接本机Mysql数据库,数据库名为data,数据库账号为root,密码为root,代码如下:

DriverManager.getConnection("jdbc:mysql://localhost:3306/data","root","root");

3.通过Connection实例获取Statement对象 

Connection对象创建Statement实例有3种方法;

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

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

(3)prepareCall(String sql)根据传入的SQL语句创建CallableStatement对象,该对象可执行储存过程。

4.使用Statement执行SQL语句

所有的Statement都有如下3个方法用于执行sql语句。

(1)execute()可执行任何SQL语句,但操作繁琐,一般不推荐使用。

(2)executeUpdate()主要执行DML语句,如对数据库的表的添加、修改和删除操作。

(3)executeQuery()只能执行查询语句,执行后返回代表查询结果的Result对象。

5.处理ResultRest结果集

如果执行的SQL语句是查询语句,则执行结果将返回一个ResultSet对象,该对象保存了与SQL语句查询的结果,程序可以通过操作该Result对象获取查询结果。

6.回收数据库资源

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

(2)PreparedStatement执行DML语句

1>PreparedStatement接口说明

PreparedStatement接口继承自Statement接口,其使用更为灵活高效,此外该接口还提供了比Statement接口更为安全的预处理功能,此功能可以有效防止SQL注入。

PreparedStatement pst=
conn.prepareStatement("update Emp set name=?,address=?,phone=?,where no=?");

(3)封装类DBConnection

1>封装操作

对数据库进行操作的代码共性是:对数据库的操作需要建立与数据库的连接、关闭对象和连接。所以实际应用中为便于管理、实现代码复用,应建立专门的自定义来实现建立连接、关闭对象和连接的操作。

public class DbConnection {
	private static final String DRIVERNAME="com.mysql.cj.jdbc.Driver";
	private static final String URL="jdbc:mysql://localhost:3306/movies_db";
	private static final String USER="root";
	private static final String PASSWORD="123456";
	
	static {
		try {
			Class.forName(DRIVERNAME);
		}catch(ClassNotFoundException e) {
			e.printStackTrace();
		}
	}
	
	public static Connection getConnection()throws Exception {
		try {
			return 
					DriverManager.getConnection(URL,USER,PASSWORD);
		}catch(SQLException e) {
			e.printStackTrace();
			throw new Exception();
		}
		
	}
	
	public static void close(ResultSet rs,Statement stat,Connection conn) throws Exception{
		try {
			if (rs!=null) {
				rs.close();
			}
			if (stat!=null) {
				stat.cancel();
			}
			if (conn!=null) {
				conn.close();
			}
			
			
		} catch (Exception e) {
			e.printStackTrace();
			throw new Exception();
		}
		
	}

}

(4)PreparedStatement执行查询语句 

1>ResultSet对象

通过调用PreparedStatement对象的executeQuery()方法可执行数据库中的查询操作语句,但使用PreparedStatement对象执行查询操作,与执行DML语句的不同之处在于执行查询语句后,可能需要显示输出与条件匹配语句对应的数据库中的记录。executeQuery()方法的返回值为ResultSet对象,该对象保存了与SQL语句查询的结果。JDBC使用Result封装查询到的结果,然后通过ResultSet记录的指针来获取结果集合的内容。

总结:JDBC进行开发的步骤有哪些?

(1)加载数据库驱动

(2)获取数据库连接

(3)通过Connection实例获取Statement对象

(4)使用Statement执行SQL语句

(5) 处理ResultRest结果集

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值