JDBC

jdbc操作数据库流程:
 第一步:ClassForName();加载数据库连接驱动;
 第二部:DriverManager.getConnection()获取数据库连接对象
 第三步:根据sql获取sql回话对象,有两种方式 一种是Statement 另一种是PreparedStatement
 第四步:执行sql处理结果集

 第五步:关闭结果集,关闭回话,关闭连接


package com.mybatis.excample.jdbc;

import java.sql.*;
import java.util.HashMap;
import java.util.Map;

/**
 * 创建java_jdbc连接
 */
public class CreateJDBCConnection {

	/**
	 * java程序都是通过 jdbc(java data base connectivity)连接数据库的,这样我们就可以通过编写slq来对数据库进行编程操作,实现实现业务数据操作
	 * jdbc是有sun公司提出的一系列规范,但是它只定义了接口规范,而具体的实现是由各大数据库厂商去实现的,每个数据库都有自己的特性特殊实现,jdbc就是一种典型的桥接模式
	 *   jdbc主要功能
	 *   (1) 建立数据库或者其他数据源的连接
	 *   (2)向数据库发送slq语言
	 *   (3)处理数据库的返回结果
	 *   	jdbc常用类和接口
	 *   建立数据库连接 Connection,建立操作指令statement, 执行查询的指令executeQuery, 获取查询结果 ResultSet等
	 *
	 *   	驱动程序管理类
	 *   DriverManager是jdbc的驱动管理类,作用于用户与驱动程序之间它跟踪当前可执行驱动程序,并在数据库和相应的驱动之间建立连接,DriverManager也可以处理 登录连接的时间限制
	 *   提供的常用方法有 DriverManger.getConnection().
	 *
	 *   		声明类Statement
	 *   Statement对象用于将SQL语句发送到数据库中。实际上有三种Statement对象,它们都作为在给定链接上执行SQL语句的包容器:Statement、PreparedStatement(它从Statement继承而来)和CallableStatement(它从PreparedStatement继承而来)。它们都专用于发送特定类型的SQL语句:

	 (1)Statement对象用于执行不带参数的简单的SQL语句;Statement接口提供了执行语句和获取结果的基本方法。

	 (2)PerparedStatement对象用于执行带或不带IN参数的预编译SQL语句;PeraredStatement接口添加处理IN参数的方法;

	 (3)CallableStatement对象用于执行对数据库已存储过程的调用;CallableStatement添加处理OUT参数的方法。

	 Statement提供了许多方法,最常用的方法如下:

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

	 (2)executeQuery()方法:运行查询语句,返回ReaultSet对象。

	 (3)executeUpdata()方法:运行更新操作,返回更新的行数。

	 (4)addBatch()方法:增加批处理语句。

	 (5)executeBatch()方法:执行批处理语句。

	 (6)clearBatch()方法:清除批处理语句。

	 *
	 *
	 */
	//传统jdbc连接

	public Map getConnection(){
		Connection connection=null;
		String url="jdbc:mysql://127.0.0.1:3306/test";
		String user="root";
		String password="password";
		Map map=new HashMap();

		try {
			//加载数据库驱动
			Class.forName("com.mysql.jdbc.Driver");
			//使用驱动管理器 创建 数据库连接
			connection = DriverManager.getConnection(url, user, password);
			//通过获取的数据库连接 对数据库进行予执行操作 Statement类或者 PrepareStatement() 两者是有区别的 下面会说到
			//Statement statement = connection.createStatement();
			String sql="SELECT * FROM TABLE_NAME WHEN 1=1 AND id IN (1,2,3,)";
			PreparedStatement preparedStatement = connection.prepareStatement(sql);
			ResultSet resultSet = preparedStatement.getResultSet();
			//获取结果集中的数据
			while (resultSet.next()){
				System.out.println(resultSet.next());
				map.put(resultSet.getFetchSize(),resultSet.next());
			}

		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}finally {
			if (connection!=null){
				try {
					connection.close();
				} catch (SQLException e) {
					e.printStackTrace();
				}
			}
		}

		return map;
	}




}

为什么要使用PreparedStatement?或者 PreparedStatement和Statement的应用区别

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值