b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

sql debug存储过程,当参数为xml时如何调试?

电脑杂谈  发布时间:2020-03-27 14:06:04  来源:网络整理

sql调试存储过程_sql server存储过程语法_sql存储过程语法

oracle存储过程返回ibatis如何接受的复合数据类型(按表索引)

sql调试存储过程_sql存储过程语法_sql server存储过程语法

我最近遇到了问题,希望您能提供帮助. 首先粘贴代码: 1 2 4 <参数属性=“ PRM_OBJECTS” javaType =“ java.sql.ResultSet” 5jdbcType =“ ARRAY”模式=“ OUT” typeHandler =“ com.diy.object.entity.ObjectTypeHandler” /> 6 <参数属性=“ PRM_TAGS” javaType = “ java.sql.ResultSet” 7jdbcType =“ ARRAY” mode =“ OUT” typeHandler =“ com.diy.tag.entity.TagsTypeHandler” /> 8 10 <参数属性=“ PRM_ERRMSG” javaType =“ java.lang.String” 11jdbcType =“ VARCHAR” mode =“ OUT” /> 12 13 14 <过程ID =“ prc_user_index” parameterMap =“ UserIndexParam”> 15 {call16PKG_USER.PRC_USER_INDEXVIEW(?,?,?sql调试存储过程,?,?)} 17 此ibatis配置文件. 在Internet上检查了很长时间,说它使用typeHandler和jdbcType来解决oracle组合类型,1包com.diy.tag.entity; 2 3导入java.sql.CallableStatement; 4.导入java.sql.Pr eparedStatement; 5导入java.sql.ResultSet; 6导入java.sql.SQLException; 7导入java.util.ArrayList; 8导入java.util.List; 9 10导入oracle.sql.Datum; 11导入oracle.sql.STRUCT; 12 13导入com.ibatis.sqlmap.engine.type.TypeHandler; 14 15公共类TagsTypeHandler实现TypeHandler {16 17 / ** 18 * @Description: 此方法着重于19 * @param cs20 * @param arg121 * @throws SQLException22 * / 23public java.lang.Object getResult(CallableStatement cs,int arg1 )24throws SQLException(25List list = new ArrayList (); 26ResultSet rs = cs.getArray(arg1).getResultSet(); 27while(rs .next()){28Datum [] data =((STRUCT) rs.getObject(2)). getOracleAttributes(); 29Tag tag = new Tag(); 30if(data [0]!= null){31tag.setTagid(new Long(data [0] .getBytes(). toString() )); 32} 33list.add(标记); 34} 35返回列表; 36} 3738 @ Override39public布尔值等于(java.lang.Object arg0,String arg1){40 // TODO自动生成的方法stub41return false; 42} 43 44 @ Override45public java.lang.Object getResult(ResultSet a rg0,字符串arg1)46抛出SQLException {47 // TODO自动生成的方法stub48return null; 49} 50 51 @ Override52public java.lang.Object getResult(ResultSet arg0,int arg1)53引发SQLException {54 // TODO自动生成的方法stub55return null; 56} 57 5859 60 @ Override61public void setParameter(PreparedStatement arg0,int arg1,62java.lang.Object arg2,String arg3)抛出SQLException {63 // TODO自动生成的方法stub64 65} 66 67 @ Override68public java.lang. Object valueOf(String arg0){69 // TODO自动生成的方法stub70return null; 71} 72 73}这是Java代码,其中一个处理类1 –定义对象表对象2TYPE object_arr是TABLE OF OBJECT%ROWTYPE INDEX BY BINARY_INTEGER; 34-定义标签index_by表5 TYPE table_tag是BINARY_INTEGER的TAGS_INFO INDEX表;此定义的oracle组合类型1 PROCEDURE PRC_USER_INDEXVIEW(PRM_USERID IN VARCHAR2、2PRM_OB2,OUT_MRR_PRR,PRM_OBMECT,PRM,PRM,PRM,3P OUT VARCHA R2)是6N_FLAGNUMBER; 7VAR_FIRSTTAG VARCHAR2(100); 8VAR_DUSERID VARCHAR2(100); 9-用户兴趣标签10CURSOR CUR_USERTAG是11SELECT C.TAGID,C.NAME 12FROM USERSDETIAL A,TAGRELATION B,TAG C 13WHERE A.DUSERSID = B.DUSERSID 14AND B.TAGID = C.TAGID 15AND A.DUSERSID = VAR_DUSERID 16--公众兴趣标签17CURSOR CUR_USERPUB是18SELECT T. * 19FROM(SELECT ROWNUM AS RNUM,20COUNT(A.DUSERSID)AS CNUM,21B.TAGID,22B .NAME 23FROM TAGRELATION A,TAG B 24WHERE A.TAGID = B.TAGID 25组(A.TAGID)T 26 WHERE RNUM <= 8 27 ORDER BY T.CNUM DESC; 28--对象29CURSOR CUR_OBJ(VAR_TAGID VARCHAR2)IS 30SELECT ROWNUM AS RN,A. * 31FROM OBJECT A 32WHERE trim(A.TAGID)= VAR_TAGID 33AND ROWNUM <30; 3435REC_USERTAG CUR_USERTAG%行类型; 36REC_USERPUB CUR_USERPUB%ROWTYPE; 37REC_OBJOBJECT%ROWTYPE; 38开始39PRM_APPCODE: = P_OK;通讯. 4142IF PRM_USERID为NULL然后43PRM_APPCODE: = PKG_COMM.DEF_ERR; 44PRM_ERRMSG: ='未定义参数'; 45返回; 46END IF; 47-用户详细ID 48SELECT B.DUSERSID 49INTO VAR_DUSERID 50FROM用户A,USERSDETIAL B 51WHERE A.USERID = B.USERSID 52AND A.USERID = PRM_USERID; 53IF VAR_DUSERID为NULL然后54PRM_APPCODE: = PKG_COMM.DEF_ERR; 55PRM_ERRMSG; 56REM_ERRMSG; 56REM_ERRMS ;; 57END IF; 58--1. 确定它是否为有效用户. 59SELECT NVL(A.FLAG,1)60INTO N_FLAG 61FROM用户A,USERSDETIAL B 62其中A.Userid = B.USERSID 63AND B.DUSERSID = VAR_DUSERID; 6465IF N_FLAG = 1 THEN 66PRM_APPCODE: = PKG_COMM.DEF_ERR; 67PRM_ERRMSG: ='用户已被禁止登录'; 68返回; 69END IF; 7071--2. 确定用户是否感兴趣标签7273FOR REC_USERTAG IN CUR_USERTAG LOOP 7475IF CUR_USERTAG%ROWCOUNT = 0 THEN 76-获取公共兴趣游标77FOR REC_USERPUB IN CUR_USERPUB LOOP 78IF CUR_USERPUB%ROWCOUNT = 1 THEN 79VAR_FIRSTTAG: = REC_USERPUBTAG. 80END IF; 81PRM_TAGS(CUR_USERPUB%ROWCOUNT).TAGID: =REC_USERPUB. TAGIDB: USER_BROWN_COUNT_CORDER_NAME .NAME; 83END LOOP; 84ELSIF CUR_USERTAG%ROWCOUNT = 1然后85VAR_FIRSTTAG: = REC_US ERTAG.TAGID; 86END IF; 87PRM_TAGS(CUR_USERTAG%ROWCOUNT).TAGID: = REC_USERTAG.TAGID; 88PRM_TAGS(CUR_USERTAG%ROWCOUNT). TAGNAME: = REC_USERTAG.NAME; 89END LOOP; 9091IF PRM_TAGS.count <> 0然后92--3 92.检索对象93FOR REC_OBJ IN CUR_OBJ(VAR_FIRSTTAG)LOOP 94PRM_OBJECTS(CUR_OBJ%ROWCOUNT).OWNERID: = REC_OBJ.OWNERID; 95PRM_OBJECTS(CUR_OBJ%ROWCOUNT).OBJECTID: = REC_OBJ.OB_COUNT_OBJECTID; COUNT_BJECTID; .DBUSID; 97PRM_OBJECTS(CUR_OBJ%ROWCOUNT).DUSERSID: = REC_OBJ.DUSERSID; 98PRM_OBJECTS(CUR_OBJ%ROWCOUNT).TAGID: = REC_OBJ.TAGID; 99PRM_OBJECTS(CUR_OBJ%ROWCOUNT).LOVENUM =(LOVENUM =)).INRUDUCTION: = REC_OBJ.INRUDUCTION; 101PRM_OBJECTS(CUR_OBJ%ROWCOUNT).CATAGROY: = REC_OBJ.CATAGROY; 102PRM_OBJECTS(CUR_OBJ%ROWCOUNT).Imagepath: = REC_OBJ.Imagepath; 103C ENDAPP其他106 .DEF_ERR; 110PRM_ERRMSG: ='无法获取主界面数据'|| “错误原因: ” || PRM_ERRMSG || '-'|| SQLER RM || 111'错误行数: '|| DBMS_UTILITY.FORMAT_ERROR_BACKTRACE(); 112 END;这是存储过程的执行,过程中没有问题,plsql调试正常! !! !!现在,我可以确定问题是1.ibatis xml文件中的jdbcType和typeHandler的配置1 3 6 2. Java typeHandler类的返回值还有一个问题: 按表索引不能存储在中,而嵌套表可以存储在中. 这是否意味着按表索引就像在Java方法中声明的变量一样,并且当该方法结束时,其变量的生命周期也结束了? ? ?谢谢! !! !!

sql server存储过程语法_sql调试存储过程_sql存储过程语法

休眠级联数据表存储(多对一)

sql存储过程语法_sql调试存储过程_sql server存储过程语法

该问题来自第19章. 有关Struts 2.1的权威指南的示例19.4. 这是一个与Hibernate关联的数据表存储有关的问题. 整个示例的目标是构建一个WEB应用程序. 在input.jsp页面上输入父子信息,单击提交按钮,然后将这两个持久对象的信息写入中的两个数据表中. 这些表是人(代表父亲)和儿子(代表儿子). 他们的关系是1(人)到N(儿子). 我在调试此例程时遇到问题,即,将持久对象写入时​​的错误消息如下: [color = blue]原因: java.sql.SQLException: “字段”列表中的未知列“ person_id” '[/ color] [b] [color = red]检查后,特定的问题语句为sd.save(s,PersonServiceImpl.java代码中的son)(大约在第25行,将Son对象写入的语句). 此处说明SD是Son的DAO组件. 稍后将描述特定的PersonServiceImpl.java代码. 因为如果您注释掉这句话并运行程序,则该程序可以检查并发现可以写入人员表中的person_id列.

sql server存储过程语法_sql存储过程语法_sql调试存储过程

这时没有数据写入子表. [/ color] [/ b]因此,我检查了Person.hbm.xml和Son.hbm.xml文件,但没有发现任何可疑的东西. 我张贴了配置文件中可能有问题的以下关键部分: ------------------PersonServiceImpl.java代码------ [code =“ java”]公共类PersonServiceImpl实现PersonService {公共无效createPersonAndSon(字符串名称,字符串性别,字符串[] sonName,int [] sonAge))引发PersonException {try {//业务逻辑组件取决于DAO组件. 从组件工厂中获取两个DAO组件. PersonDao pd =(PersonDao)ComponentFactory.instance(). GetComponent(“ personDao”); SonDao sd =(SonDao)ComponentFactory.instance(). getComponent(“ sonDao”); //获取Hibernate SessionSession s = HibernateUtil.sf.getCurrentSession();交易tx = s.beginTransaction(); //采取面向对象的方法来启动持久性操作Person p = new Person(); p.setName(名称); p.setGender(性别); pd.save(s,p); //添加与Person实体关联的Son实体,用于(int i = 0; i <类名= “ Son”表=“ son”> <发电机类别=“ identity” /> <属性名称=“ sonName”类型=“字符串” /> <属性名称=“ sonAge”类型=“ int” /> <!-地图N: 1关联的实体-> <多对一名称=“父代”列=“ person_id”类=“人“级联=”全部“ not-null =” true“ /> [/code]---------------------Person.hbm.xml片段------------------- --------------- [code =“ xml”] <!-每个类元素都映射一个持久性class-> <属性名称=“名称”类型=“字符串” /> <属性名称=“性别”类型=“字符串” /> <!-映射1: N个相关实体-> <设置名称= “ sons” inverse =“ true”> <关键列=“ person _id” /> <一对多类=“ Son” /> [/代码] ------ ----------------用于创建和表的SQL语句---------------------- [code = “ sql”] DROP(如果存在)struts2hibernate;创建struts2hibernate;使用struts2hibernate;创建表人员(person_id INT AUTO_INCREMENT PRIMARY KEY,名称VARCHAR(50),性别VARCHAR(50));创建表son(son_id INT AUTO_INCREMENT PRIMARY KEYsql调试存储过程,sonName VARCHAR(50),sonAge INT); [/代码]其他文件在CD-ROM上提供,尚未修改. 目前,由于您可以登录并修改一些数据内容,所以连接的配置应该没有问题,但是我真的不知道问题出在哪里. 请赐教!非常感谢你!


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-154224-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...