JDBC操作基本流程

这里再添加两步骤:利用结果集打印结果,关闭连接。 

这里将以流程为背景介绍查询操作:

1.加载JDBC驱动程序

Class.forName("com.mysql.jdbc.Driver"); //反射

2.建立连接

Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/数据库名称","用户名称","密码");
//例如:用户名称 root     密码123456

3.发送SQL语句(对数据库发出请求)

//例如:插入请求
String sql="select id,username,pwd from t_user where id>?";
PrepareStatement ps=conn.prepareStatement(sql);
ps.setObject(1, 2); //第一个"问号",传入2. -->把id大于2的记录都取出来
rs=ps.executeQuery();

4.返回查询结果

ResultSet rs=ps.executeQuery();  //执行查询请求,并返回"结果集"

5.打印查询结果

while(rs.next()) {//rs.next()指向第一条
	//传入的参数是列索引-->数据库中的第1列,第2列,第3列
	System.out.println(rs.getInt(1)+"---"+rs.getString(2)+"---"+rs.getString(3));
}

6.关闭链接

if(rs!=null){ //RsultSet rs
   rs.close();
}
if(ps!=null){ //PreparedStatement ps
   ps.close();
}
if(conn!=null){ //connection conn
   conn.close();
}

注意:关闭连接时 顺序为:resultset-->preparestatement-->connection 这样的关闭顺序

源代码:

package jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import org.omg.CORBA.COMM_FAILURE;


public class d_ResultSet {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Connection conn=null;
		PreparedStatement ps=null;
		ResultSet rs=null;
		try { 
			Class.forName("com.mysql.jdbc.Driver");
			//返回一个connection对象 建立连接
			conn=DriverManager.getConnection("jdbc:mysql://localhost:3307/TestJdbc","root","123456");
			
			String sql="select id,username,pwd from t_user where id>?";
			ps=conn.prepareStatement(sql);
			ps.setObject(1, 2); //把id大于2的记录都取出来
			//ps.executeQuery() 执行并返回结果集
			rs=ps.executeQuery();
			while(rs.next()) {//rs.next()指向第一条
				//getInt() 传入的参数是列索引
				System.out.println(rs.getInt(1)+"---"+rs.getString(2)+"---"+rs.getString(3));
			}
	
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			if(rs!=null){
				try {
					rs.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
			if(ps!=null){
				try {
					ps.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
			if(conn!=null){
				try {
					conn.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}

	}

}

猜你喜欢

转载自blog.csdn.net/qq_41877184/article/details/93394718