社区
Java SE
帖子详情
请问preparedstatement的setObject()方法
winzhen
2003-12-19 01:32:27
setObject(int parameterIndex,Object x)
如果x是一String,如果不知道列类型,用这个方法 程序可以将String转换为任一和数据库相对应的JDBC类型?
比如 “111” 转为JDBC的 Integer
“adf”转为Binary
等
...全文
488
回复
打赏
收藏
请问preparedstatement的setObject()方法
setObject(int parameterIndex,Object x) 如果x是一String,如果不知道列类型,用这个方法 程序可以将String转换为任一和数据库相对应的JDBC类型? 比如 “111” 转为JDBC的 Integer “adf”转为Binary 等
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
java项目之学生信息管理系统
pa
ckage cn.com.dao.chivementdao; import java.sql.Connection; import java.sql.Pre
pa
red
Statement
; import java.sql.Result
Set
; import java.sql.SQLException; import cn.com.util.DBConnection; import cn.com.util.DBSql; 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; Pre
pa
red
Statement
ps = null; Result
Set
rs = null; try { ps = conn.pre
pa
re
Statement
(DBSql.SELECT_ALL); rs = ps.executeQuery(); // 得到列数 max = rs.getMetaData().getColumnCount(); date = new
Object
[getnumberAll(DBSql.SELECT_ALL_COUNT)][max]; while (rs.next()) { for (int j = 0; j < max; j++) { date[i][j] = rs.get
Object
(j + 1); } i++; } // rs.close(); // ps.close(); // conn.close(); } catch (SQLException e) { e.printStackTrace(); } return date; } /** * 根据学号查询 */ public
Object
[][] selectBySid() {
Object
date[][] = null; int max = 0; int i = 0; Pre
pa
red
Statement
ps = null; Result
Set
rs = null; try { ps = conn.pre
pa
re
Statement
(DBSql.SELECT_BY_S_ID); ps.
set
Int(1, examVo.getS_id()); rs = ps.executeQuery(); // 得到列数 max = rs.getMetaData().getColumnCount(); date = new
Object
[getnumber(DBSql.SELECT_BY_S_ID_COUNT, examVo .getS_id())][max]; while (rs.next()) { for (int j = 0; j < max; j++) { date[i][j] = rs.get
Object
(j + 1); } i++; } // rs.close(); // ps.close(); // conn.close(); } catch (SQLException e) { e.printStackTrace(); } return date; } /** * 根据组号查询 */ public
Object
[][] selectByGid() {
Object
date[][] = null; int max = 0; int i = 0; Pre
pa
red
Statement
ps = null; Result
Set
rs = null; try { ps = conn.pre
pa
re
Statement
(DBSql.SELECT_BY_G_ID); ps.
set
Int(1, examVo.getG_id()); rs = ps.executeQuery(); // 得到列数 max = rs.getMetaData().getColumnCount(); date = new
Object
[getnumber(DBSql.SELECT_BY_G_ID_COUNT, examVo .getG_id())][max]; while (rs.next()) { for (int j = 0; j < max; j++) { date[i][j] = rs.get
Object
(j + 1); } i++; } // rs.close(); // ps.close(); // conn.close(); } catch (SQLException e) { e.printStackTrace(); } return date; } /** * 根据课程号查询 */ public
Object
[][] selectByCid() {
Object
date[][] = null; int max = 0; int i = 0; Pre
pa
red
Statement
ps = null; Result
Set
rs = null; try { ps = conn.pre
pa
re
Statement
(DBSql.SELECT_BY_C_ID); ps.
set
Int(1, examVo.getC_id()); rs = ps.executeQuery(); // 得到列数 max = rs.getMetaData().getColumnCount(); date = new
Object
[getnumber(DBSql.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.get
Object
(j+1); } i++; } // rs.close(); // ps.close(); // conn.close(); } catch (SQLException e) { e.printStackTrace(); } return date; } /** * 根据姓名模糊查询 * * @return */ public
Object
[][] selectByName() {
Object
date[][] = null; int max = 0; int i = 0; Pre
pa
red
Statement
ps = null; Result
Set
rs = null; try { ps = conn.pre
pa
re
Statement
(DBSql.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.executeQuery(); // 得到列数 max = rs.getMetaData().getColumnCount(); date = new
Object
[getnumberByName(DBSql.SELECT_BY_S_NAME_COUNT, examVo.getS_name())][max]; while (rs.next()) { for (int j = 0; j < max; j++) { date[i][j] = rs.get
Object
(j + 1); } i++; } } catch (SQLException e) { e.printStackTrace(); } return date; } /** * 根据课程名称模糊查询 * * @return */ public
Object
[][] selectByClassName() {
Object
date[][] = null; int max = 0; int i = 0; Pre
pa
red
Statement
ps = null; Result
Set
rs = null; try { ps = conn.pre
pa
re
Statement
(DBSql.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.executeQuery(); // 得到列数 max = rs.getMetaData().getColumnCount(); date = new
Object
[getnumberByName(DBSql.SELECT_BY_CLASS_COUNT, examVo.getClass_name())][max]; while (rs.next()) { for (int j = 0; j < max; j++) { date[i][j] = rs.get
Object
(j + 1); } i++; } } catch (SQLException e) { e.printStackTrace(); } return date; } /** * 修改选中学生的成绩 * */ public void updatSelectClass() { Pre
pa
red
Statement
ps = null; Result
Set
rs = null; try { ps = conn.pre
pa
re
Statement
(DBSql.UPDATE_EXAM_BY_STUID); ps.
set
Int(1, examVo.getClassExamChivement()); ps.
set
Int(2, examVo.getS_id()); ps.
set
Int(3, examVo.getC_id()); ps.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } } /** * 得到所有课程号和课程名 * * @return */ public String[] getClassNoName() { String[] classNoName = null; Pre
pa
red
Statement
ps = null; Result
Set
rs = null; int j = 0; try { int i = getnumberAll(DBSql.SELECT_CLASS_NAME_COUNT); classNoName = new String[i + i]; ps = conn.pre
pa
re
Statement
(DBSql.SELECT_CLASS_NAME); rs = ps.executeQuery(); while (rs.next()) { classNoName[j] = rs.getString(1); classNoName[j + i] = rs.getString(2); j++; } } catch (SQLException e) { e.printStackTrace(); } return classNoName; } /** * 根据科目修改成绩 查询学号 姓名 成绩 * */ public void SelectClassStuName() { int i = 0; Pre
pa
red
Statement
ps = null; Result
Set
rs = null; int j = getnumberBySelectClassName( DBSql.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.pre
pa
re
Statement
(DBSql.SELECT_CLASS_STU_SNO_SNAME_EXAM); ps.
set
Int(1, examVo.getC_id()); rs = ps.executeQuery(); while (rs.next()) { sNum[i] = rs.getInt(1); sName[i] = rs.getString(2); classExam[i] = rs.getInt(3); i++; } } catch (SQLException e) { e.printStackTrace(); } examVo.
set
Sid(sNum); examVo.
set
Sname(sName); examVo.
set
ClassExam(classExam); } /** * 根据科目修改成绩 查询学号 姓名 成绩 后修改成绩 * */ public void UpdateClassStuName() { // int i = 0; Pre
pa
red
Statement
ps = null; Result
Set
rs = null; int j = getnumberBySelectClassName( DBSql.SELECT_CLASS_STU_SNO_SNAME_EXAM_COUNT, examVo.getC_id()); try { ps = conn.pre
pa
re
Statement
(DBSql.UPDATE_CHIVEMENT_BY_CLASS); for(int i =0;i
setInt(1, examVo.getClassExam()[i]); ps.
set
Int(2, examVo.getSid()[i]); ps.
set
Int(3, examVo.getC_id()); ps.executeUpdate(); } } catch (SQLException e) { e.printStackTrace(); } } /** * 全部查询获得行数 * * @return */ public int getnumberAll(String str) { int number = 0; Pre
pa
red
Statement
ps = null; Result
Set
rs = null; try { ps = conn.pre
pa
re
Statement
(str); rs = ps.executeQuery(); rs.next(); number = rs.getInt(1); // rs.close(); // ps.close(); // conn.close(); } catch (SQLException e) { e.printStackTrace(); } return number; } /** * 根据学号 根据组号 根据课程号查询 获得行数 * * @return */ public int getnumber(String str, int i) { int number = 0; Pre
pa
red
Statement
ps = null; Result
Set
rs = null; try { ps = conn.pre
pa
re
Statement
(str); ps.
set
Int(1, i); rs = ps.executeQuery(); rs.next(); number = rs.getInt(1); // rs.close(); // ps.close(); // conn.close(); } catch (SQLException e) { e.printStackTrace(); } return number; } /** * 根据姓名 课程名 查询 获得行数 * */ public int getnumberByName(String str, String i) { int number = 0; Pre
pa
red
Statement
ps = null; Result
Set
rs = null; try { ps = conn.pre
pa
re
Statement
(str); ps.
set
String(1, i); ps.
set
String(2, "%" + i + "%"); ps.
set
String(3, "%" + i); ps.
set
String(4, i + "%"); rs = ps.executeQuery(); rs.next(); number = rs.getInt(1); } catch (SQLException e) { e.printStackTrace(); } return number; } // /** // * 根据课程名查询 获得行数 // * // */ // // public int getnumberByClassName(String str, String i) { // int number = 0; // Pre
pa
red
Statement
ps = null; // Result
Set
rs = null; // try { // ps = conn.pre
pa
re
Statement
(str); // ps.
set
String(1, i); // ps.
set
String(2, "%" + i + "%"); // ps.
set
String(3, "%" + i); // ps.
set
String(4, i + "%"); // rs = ps.executeQuery(); // rs.next(); // number = rs.getInt(1); // } catch (SQLException e) { // e.printStackTrace(); // } // return number; // } /** * * 根据课程名修改成绩获得行数 * * @
pa
ram str * @
pa
ram i * @return */ public int getnumberBySelectClassName(String str, int i) { int number = 0; Pre
pa
red
Statement
ps = null; Result
Set
rs = null; try { ps = conn.pre
pa
re
Statement
(str); ps.
set
Int(1, i); rs = ps.executeQuery(); rs.next(); number = rs.getInt(1); } catch (SQLException e) { e.printStackTrace(); } return number; } }
Pre
pa
red
Statement
的
set
Object
与get
Object
方法
使用
set
Object
方法
填充占位符时,
set
Object
会判断实际传入的参数类型,进行参数转换,例如,如果是String类型,则会在参数开始和结尾追加 ',
set
String的源码
pa
rameterAsBytes = null; buf = new StringBuilder(x.length() + 2); buf.append('\''); buf..
Pre
pa
red
Statement
的
set
Object
【Pre
pa
red
Statement
的
set
Object
的作用和
set
String的作用是一样的!】 2015-01-31 01:59 1757人阅读 评论(0) 收藏 举报 分类: web入门(3) 版权声明:本文为博主原创文章,未经博主允许不得转载。 【Pre
pa
red
Statement
的
set
Object
的作用和
set
String
Pre
pa
red
Statement
的
set
Object
作用
前言 在了解
set
Object
作用前讲解一下Pre
pa
red
Statement
这个接口,然后循序渐进从
set
Xxx()
方法
讲解到
set
Object
。 Pre
pa
red
Statement
java.sql包中的Pre
pa
red
Statement
接口继承了
Statement
接口,Pre
pa
red
Statement
对象可以防止sql注入,而
Statement
不能防止sql注入,所以实际开发的时候千万不要使用
Statement
。 SQL注入: 比如我的SQL语句为: select * from user wher
JDBC中关于Pre
pa
red
Statement
.
set
Object
的一些细节说明
JDBC中Pre
pa
red
Statement
.
set
Object
(index,
Object
)
方法
, 1、index从1开始 2、在插入时间格式的字段时,此处的
Object
格式必须是java.sql.Date的对象 3、Oracle表中date格式可以表示年月日时分秒 4、从表中取出对象封装到JavaBean对象中,字段类型可以直接为java.util.Date
Java SE
62,634
社区成员
307,269
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章