使用jdbc中statement完成数据库的查询

本文详细介绍了如何使用JDBC中的Statement接口执行SQL查询,包括连接数据库、创建Statement对象、编写SQL语句和处理查询结果。通过实例演示了基本的增删改查操作,帮助开发者掌握数据库交互的基础技巧。
JDBC使用Statement对象完成查询:
	使用Statement对象完成查询:
		1、声明jdbc参数
		2、声明jdbc变量
		3、加载驱动
		4、创建连接
		5、创建SQL命令
		6、创建SQL命令对象
		7、执行SQL命令
		8、处理结果
			使用while循环遍历resultset集合
				创建实例化对象存储数据(使用角标方式或者字段方式)
				将对象存储到集合中
		9、关闭资源	

----------------------------------------------------------------------------------------------------------------------------------------------
package com.bjsxt.test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

import com.bjsxt.pojo.Emp;

/**
 * jdbc完成查询:
 * 	Statement对象方式:
 * 		问题:
 * 			将数据库中的数据查询到java代码中,在java代码中怎么存储查询到数据。
 * 		解决:
 * 			数据库中使用二维表进行数据的存储
 * 			java中存储数据的方式为:变量或者对象
 * 			根据二维表的结构在java代码中创建对应的类,一条数据为类的一个实例化对象。
 * 		实现:
 * 			创建一个和二维表结构相同的java实体类
 * 		使用:
 * 			//1、声明jdbc参数
			//2、声明jdbc变量
			//3、加载驱动
			//4、创建连接对象
			//5、创建SQL命令
			//6、创建SQL命令对象
			//7、执行SQL命令
			//8、处理结果
			 	//使用while循环遍历查询的结果
				 	//使用实例化对象存储每条遍历的结果
				 	 	方式一:使用rs.get类型(角标) 获取每条数据;
				 	 			主要使用在功能查询里,sql语句时动态改变的。
				 	 	方式二:使用rs.get类型(字段名) 获取每条数据;
				 	 			主要使用在指定表查询,SQL语句一般不会发生变更.
				 	//将对象存储到集合中
		注意:
			1、jdbc的查询中,执行查询后返回ResultSet对象
			使用rs.next()判断是否有下一条数据,如果有则指针指向该数据。
			2、每条数据的角标从1开始,使用rs.get类型(角标)获取数据
		ResultSet特点:
			特点1:基于指针方式
			特点2:实现了数据库数据类型和java数据类型的转换。
		概念:
			实体类:专门用来存储数据的类--->com.bjsxt.pojo(使用这个), com.bjsxt.vo,com.bjsxt.enity
 * 
 * 
 * 
 * @author MyPC
 *
 */
public class TestStatementSelect {
	public static void main(String[] args) {
		//1、声明jdbc参数
			String driver="oracle.jdbc.OracleDriver";
			String url="jdbc:oracle:thin:@localhost:1521:XE";
			String username="scott";
			String password="123";
		//2、声明jdbc变量
			Connection conn=null;
			Statement stmt=null;
			ResultSet rs=null;
			ArrayList<Emp> list=null;
			try {
				//3、加载驱动
				Class.forName(driver);
				//4、创建连接对象
				conn=DriverManager.getConnection(url, username, password);
				//5、创建SQL命令
				String sql="select * from emp";
				//6、创建SQL命令对象
				stmt=conn.createStatement();
				//7、执行SQL命令
				rs = stmt.executeQuery(sql);
				list=new ArrayList<>();
				//8、处理结果
				while(rs.next()){
					//创建emp实例化对象存储数据
					Emp e=new Emp();
					//使用角标获取
							/*e.setEmpno(rs.getInt(1));
							e.setEname(rs.getString(2));
							e.setJob(rs.getString(3));
							e.setMgr(rs.getInt(4));
							e.setHiredate(rs.getDate(5));
							e.setSal(rs.getDouble(6));
							e.setComm(rs.getDouble(7));
							e.setDeptno(rs.getInt(8));*/
					//使用字段名获取
						e.setEmpno(rs.getInt("empno"));
						e.setEname(rs.getString("ename"));
						e.setJob(rs.getString("job"));
						e.setMgr(rs.getInt("mgr"));
						e.setHiredate(rs.getDate("hiredate"));
						e.setSal(rs.getDouble("sal"));
						e.setComm(rs.getDouble("comm"));
						e.setDeptno(rs.getInt("deptno"));
					list.add(e);
				}
				//9、关闭资源
			} catch (Exception e) {
				e.printStackTrace();
			}finally{
				try {
					rs.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				try {
					stmt.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
				try {
					conn.close();
				} catch (SQLException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
			
		System.out.println(list);
		
	}
}
		

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值