社区
Java SE
帖子详情
怎么理解:ResultSet rs=statement.executeQuery(String sql)?
qinliu0425
2004-05-07 05:27:45
ResultSet 是一个接口,为什么却可以通过statement的方法返回一个实例?executeQuery是怎么生成ResultSet 实例的?
...全文
1175
6
打赏
收藏
怎么理解:ResultSet rs=statement.executeQuery(String sql)?
ResultSet 是一个接口,为什么却可以通过statement的方法返回一个实例?executeQuery是怎么生成ResultSet 实例的?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
wuyaxlz
2004-05-07
打赏
举报
回复
1
做程序要不求甚解!什么都问为什么你没法做好程序的。我老师教的
moke33
2004-05-07
打赏
举报
回复
注意,返回的只是实例的引用,它们实现了ResultSet接口,当然可以指向它们了
cxz7531
2004-05-07
打赏
举报
回复
你可以把mysql的jdbc驱动包mm.mysql-2.0.4-bin.jar 解开 ,就可以看到Connection,statement,ResultSet这几个接口的实现类
Arias
2004-05-07
打赏
举报
回复
就是!本身驱动就有他们的实现方法!
dragon525
2004-05-07
打赏
举报
回复
Connection,statement,ResultSet这些都是接口!
真正的实现得有jdbc的驱动来实现!
pleonheart
2004-05-07
打赏
举报
回复
sun的JDBC只是规范了JDBC需要实现的方法,既是接口
所有的实现都是由数据库厂商完成,比如oracle的jar,db2的jar
java项目之学生信息管理系统
package cn.com.dao.chivementdao; import java.
sql
.Connection; import java.
sql
.Prepared
Statement
; import java.
sql
.
ResultSet
; import java.
sql
.
SQL
Exception; import cn.com.util.DBConnection; import cn.com.util.DB
Sql
; import cn.com.vo.chivementvo.ChivementVo; public class ExamDao { private Connection conn = DBConnection.getConnectionOracle(); private ChivementVo examVo; public ExamDao() { } public ExamDao(ChivementVo examVo) { super(); this.examVo = examVo; } /** * 全部查询 */ public Object[][] selectAll() { Object date[][] = null; int max = 0; int i = 0; Prepared
Statement
ps = null;
ResultSet
rs
= null; try { ps = conn.prepare
Statement
(DB
Sql
.SELECT_ALL);
rs
= ps.
execute
Query
(); // 得到列数 max =
rs
.getMetaData().getColumnCount(); date = new Object[getnumberAll(DB
Sql
.SELECT_ALL_COUNT)][max]; while (
rs
.next()) { for (int j = 0; j < max; j++) { date[i][j] =
rs
.getObject(j + 1); } i++; } //
rs
.close(); // ps.close(); // conn.close(); } catch (
SQL
Exception e) { e.printStackTrace(); } return date; } /** * 根据学号查询 */ public Object[][] selectBySid() { Object date[][] = null; int max = 0; int i = 0; Prepared
Statement
ps = null;
ResultSet
rs
= null; try { ps = conn.prepare
Statement
(DB
Sql
.SELECT_BY_S_ID); ps.setInt(1, examVo.getS_id());
rs
= ps.
execute
Query
(); // 得到列数 max =
rs
.getMetaData().getColumnCount(); date = new Object[getnumber(DB
Sql
.SELECT_BY_S_ID_COUNT, examVo .getS_id())][max]; while (
rs
.next()) { for (int j = 0; j < max; j++) { date[i][j] =
rs
.getObject(j + 1); } i++; } //
rs
.close(); // ps.close(); // conn.close(); } catch (
SQL
Exception e) { e.printStackTrace(); } return date; } /** * 根据组号查询 */ public Object[][] selectByGid() { Object date[][] = null; int max = 0; int i = 0; Prepared
Statement
ps = null;
ResultSet
rs
= null; try { ps = conn.prepare
Statement
(DB
Sql
.SELECT_BY_G_ID); ps.setInt(1, examVo.getG_id());
rs
= ps.
execute
Query
(); // 得到列数 max =
rs
.getMetaData().getColumnCount(); date = new Object[getnumber(DB
Sql
.SELECT_BY_G_ID_COUNT, examVo .getG_id())][max]; while (
rs
.next()) { for (int j = 0; j < max; j++) { date[i][j] =
rs
.getObject(j + 1); } i++; } //
rs
.close(); // ps.close(); // conn.close(); } catch (
SQL
Exception e) { e.printStackTrace(); } return date; } /** * 根据课程号查询 */ public Object[][] selectByCid() { Object date[][] = null; int max = 0; int i = 0; Prepared
Statement
ps = null;
ResultSet
rs
= null; try { ps = conn.prepare
Statement
(DB
Sql
.SELECT_BY_C_ID); ps.setInt(1, examVo.getC_id());
rs
= ps.
execute
Query
(); // 得到列数 max =
rs
.getMetaData().getColumnCount(); date = new Object[getnumber(DB
Sql
.SELECT_BY_C_ID_COUNT, examVo .getC_id())][max]; while (
rs
.next()) { for (int j = 0; j < max; j++) { // System.out.println( examVo.getG_id()); date[i][j] =
rs
.getObject(j+1); } i++; } //
rs
.close(); // ps.close(); // conn.close(); } catch (
SQL
Exception e) { e.printStackTrace(); } return date; } /** * 根据姓名模糊查询 * * @return */ public Object[][] selectByName() { Object date[][] = null; int max = 0; int i = 0; Prepared
Statement
ps = null;
ResultSet
rs
= null; try { ps = conn.prepare
Statement
(DB
Sql
.SELECT_BY_S_NAME); ps.set
String
(1, examVo.getS_name()); ps.set
String
(2, "%" + examVo.getS_name() + "%"); ps.set
String
(3, "%" + examVo.getS_name()); ps.set
String
(4, examVo.getS_name() + "%");
rs
= ps.
execute
Query
(); // 得到列数 max =
rs
.getMetaData().getColumnCount(); date = new Object[getnumberByName(DB
Sql
.SELECT_BY_S_NAME_COUNT, examVo.getS_name())][max]; while (
rs
.next()) { for (int j = 0; j < max; j++) { date[i][j] =
rs
.getObject(j + 1); } i++; } } catch (
SQL
Exception e) { e.printStackTrace(); } return date; } /** * 根据课程名称模糊查询 * * @return */ public Object[][] selectByClassName() { Object date[][] = null; int max = 0; int i = 0; Prepared
Statement
ps = null;
ResultSet
rs
= null; try { ps = conn.prepare
Statement
(DB
Sql
.SELECT_BY_CLASS_NAME); ps.set
String
(1, examVo.getClass_name()); ps.set
String
(2, "%" + examVo.getClass_name() + "%"); ps.set
String
(3, "%" + examVo.getClass_name()); ps.set
String
(4, examVo.getClass_name() + "%");
rs
= ps.
execute
Query
(); // 得到列数 max =
rs
.getMetaData().getColumnCount(); date = new Object[getnumberByName(DB
Sql
.SELECT_BY_CLASS_COUNT, examVo.getClass_name())][max]; while (
rs
.next()) { for (int j = 0; j < max; j++) { date[i][j] =
rs
.getObject(j + 1); } i++; } } catch (
SQL
Exception e) { e.printStackTrace(); } return date; } /** * 修改选中学生的成绩 * */ public void updatSelectClass() { Prepared
Statement
ps = null;
ResultSet
rs
= null; try { ps = conn.prepare
Statement
(DB
Sql
.UPDATE_EXAM_BY_STUID); ps.setInt(1, examVo.getClassExamChivement()); ps.setInt(2, examVo.getS_id()); ps.setInt(3, examVo.getC_id()); ps.
execute
Update(); } catch (
SQL
Exception e) { e.printStackTrace(); } } /** * 得到所有课程号和课程名 * * @return */ public
String
[] getClassNoName() {
String
[] classNoName = null; Prepared
Statement
ps = null;
ResultSet
rs
= null; int j = 0; try { int i = getnumberAll(DB
Sql
.SELECT_CLASS_NAME_COUNT); classNoName = new
String
[i + i]; ps = conn.prepare
Statement
(DB
Sql
.SELECT_CLASS_NAME);
rs
= ps.
execute
Query
(); while (
rs
.next()) { classNoName[j] =
rs
.get
String
(1); classNoName[j + i] =
rs
.get
String
(2); j++; } } catch (
SQL
Exception e) { e.printStackTrace(); } return classNoName; } /** * 根据科目修改成绩 查询学号 姓名 成绩 * */ public void SelectClassStuName() { int i = 0; Prepared
Statement
ps = null;
ResultSet
rs
= null; int j = getnumberBySelectClassName( DB
Sql
.SELECT_CLASS_STU_SNO_SNAME_EXAM_COUNT, examVo.getC_id()); int[] sNum = new int[j];
String
[] sName = new
String
[j]; int[] classExam = new int[j]; try { ps = conn.prepare
Statement
(DB
Sql
.SELECT_CLASS_STU_SNO_SNAME_EXAM); ps.setInt(1, examVo.getC_id());
rs
= ps.
execute
Query
(); while (
rs
.next()) { sNum[i] =
rs
.getInt(1); sName[i] =
rs
.get
String
(2); classExam[i] =
rs
.getInt(3); i++; } } catch (
SQL
Exception e) { e.printStackTrace(); } examVo.setSid(sNum); examVo.setSname(sName); examVo.setClassExam(classExam); } /** * 根据科目修改成绩 查询学号 姓名 成绩 后修改成绩 * */ public void UpdateClassStuName() { // int i = 0; Prepared
Statement
ps = null;
ResultSet
rs
= null; int j = getnumberBySelectClassName( DB
Sql
.SELECT_CLASS_STU_SNO_SNAME_EXAM_COUNT, examVo.getC_id()); try { ps = conn.prepare
Statement
(DB
Sql
.UPDATE_CHIVEMENT_BY_CLASS); for(int i =0;i
executeUpdate(); } } catch (
SQL
Exception e) { e.printStackTrace(); } } /** * 全部查询获得行数 * * @return */ public int getnumberAll(
String
str) { int number = 0; Prepared
Statement
ps = null;
ResultSet
rs
= null; try { ps = conn.prepare
Statement
(str);
rs
= ps.
execute
Query
();
rs
.next(); number =
rs
.getInt(1); //
rs
.close(); // ps.close(); // conn.close(); } catch (
SQL
Exception e) { e.printStackTrace(); } return number; } /** * 根据学号 根据组号 根据课程号查询 获得行数 * * @return */ public int getnumber(
String
str, int i) { int number = 0; Prepared
Statement
ps = null;
ResultSet
rs
= null; try { ps = conn.prepare
Statement
(str); ps.setInt(1, i);
rs
= ps.
execute
Query
();
rs
.next(); number =
rs
.getInt(1); //
rs
.close(); // ps.close(); // conn.close(); } catch (
SQL
Exception e) { e.printStackTrace(); } return number; } /** * 根据姓名 课程名 查询 获得行数 * */ public int getnumberByName(
String
str,
String
i) { int number = 0; Prepared
Statement
ps = null;
ResultSet
rs
= null; try { ps = conn.prepare
Statement
(str); ps.set
String
(1, i); ps.set
String
(2, "%" + i + "%"); ps.set
String
(3, "%" + i); ps.set
String
(4, i + "%");
rs
= ps.
execute
Query
();
rs
.next(); number =
rs
.getInt(1); } catch (
SQL
Exception e) { e.printStackTrace(); } return number; } // /** // * 根据课程名查询 获得行数 // * // */ // // public int getnumberByClassName(
String
str,
String
i) { // int number = 0; // Prepared
Statement
ps = null; //
ResultSet
rs
= null; // try { // ps = conn.prepare
Statement
(str); // ps.set
String
(1, i); // ps.set
String
(2, "%" + i + "%"); // ps.set
String
(3, "%" + i); // ps.set
String
(4, i + "%"); //
rs
= ps.
execute
Query
(); //
rs
.next(); // number =
rs
.getInt(1); // } catch (
SQL
Exception e) { // e.printStackTrace(); // } // return number; // } /** * * 根据课程名修改成绩获得行数 * * @param str * @param i * @return */ public int getnumberBySelectClassName(
String
str, int i) { int number = 0; Prepared
Statement
ps = null;
ResultSet
rs
= null; try { ps = conn.prepare
Statement
(str); ps.setInt(1, i);
rs
= ps.
execute
Query
();
rs
.next(); number =
rs
.getInt(1); } catch (
SQL
Exception e) { e.printStackTrace(); } return number; } }
my
sql
-connector-java-5.1.30工具
My
SQL
官方提供的驱动包 my
sql
-connector-java-5.1.30.zip
ResultSet
rs
= pstm.
execute
Query
(
sql
); 报错 com.my
sql
.jdbc.exceptions.jdbc4.My
SQL
SyntaxErrorException:
当需要查询的语句带有参数时 执行预编译后 **1.原因:**不能在下面这条语句中插入
sql
值 **2.理由:**因为预编译已经改变了
sql
语句,向语句中的问号?插入了值,如果在
rs
语句中插入
sql
,会导致执行的是原来带问号的
sql
语句。也就是说预编译的
sql
语句没有被执行,my
sql
不能执行带问号的
sql
语句,所以报错
ResultSet
rs
= pstm.
execute
Query
(
sql
); ...
ResultSet
rs
= stmt.
execute
Query
(
sql
); 返回值问题判断
JAVA
ResultSet
rs
=stmt.
execute
Query
(
sql
);//查询返回的结果集不管是否查到,
rs
都不是null,那么问题是怎么判断查找不到来执行一个提示“账号或者密码错误”呢?
rs
.next()==null
ResultSet
rs
= stmt.
execute
Query
(
sql
); //查询返回的结果集 ...
# web编程
rs
=stmt.
execute
Query
(
sql
);报错
web编程
rs
=stmt.
execute
Query
(
sql
);报错 type Exception report message An exception occurred processing JSP page /
sql
.jsp at line 22 description The server encountered an internal error that prevented it from fulfilling this request. exception org.apache.jasp
Java SE
62,627
社区成员
307,258
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章