使用jdbc完成对于数据库的查询

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);
		
	}
}
import java.awt.List;
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.entity.Clazz;

public class TestStatementSelect {
	public static void main(String[] args) {
		/**
		 * 1、创建jdbc参数
		 * 2、创建jdbc变量
		 * 3、加载驱动
		 * 4、创建连接
		 * 5、创建SQL执行对象
		 * 6、创建SQL命令
		 * 7、执行SQL命令
		 * 8、处理执行结果
		 * 9、关闭资源
		 */
		//1、创建jdbc参数
		String driver ="oracle.jdbc.OracleDriver";
		String url="jdbc:oracle:thin:@localhost:1521:XE";
		String username="scott";
		String password="123456";
		//创建jdbc变量
		Connection conn = null;
		Statement stmt = null;
		ResultSet rs = null;
		Clazz c = new Clazz();
		ArrayList list = null;
		//3、加载驱动
		try {
			Class.forName(driver);
			//4、创建连接
			conn = DriverManager.getConnection(url, username, password);
			//5、创建SQL执行对象
			stmt = conn.createStatement();
			//6、创建SQL命令
			String sql="select * from clazz";
			
			//7、执行SQL命令
			rs = stmt.executeQuery(sql);
			//8、处理结果
			
			list = new ArrayList();
			while(rs.next()){
				
				c.setCno(rs.getInt("cno"));
				c.setCname(rs.getString("cname"));
				c.setSdesc(rs.getString("cdesc"));
				list.add(c);
			}
			System.out.println(list);
			//9、关闭资源
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}finally{
			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();
			}
			try {
				rs.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
				
		
		
		
		
	}

}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值