You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user-java@ibatis.apache.org by "Elangovan, Kumaravel" <ku...@fmr.com> on 2008/04/01 11:36:54 UTC

RE: How to insert byte[] using iBatis into DB

Hi Andrey,
 
Yes, we have passed secKey object as parameter, but got the following
error.
 
com.ibm.db2.jcc.a.SqlException: No authorized routine named "PROCEDURE
NAME" of type "PROCEDURE" having compatible arguments was found.
 
The ibatis entry is as follows. The class SecKey is having the
secKeyPswd attribute as byte[]. In DB2 the datatype for pwd is
CHARACTER(64) NOT NULL  FOR BIT DATA.
 
<parameterMap id="createSecKeyParamMap" class="secKey">
 .........
        <parameter property="secKeyPswd" jdbcType="BINARY" mode="IN"/>
</parameterMap>
 
  <procedure id="createSecKey" parameterMap="createSecKeyParamMap">
          {call SCHEMA_NAME.PROCEDURE_NAME(?,?,?,?,?,?,?,?,?)}
 </procedure>
 
Thanks & Regards,
Kumar

Important: This e-mail, including any attachment(s) hereto, is intended
only for the individual or entity to whom it is addressed. It may
contain proprietary, confidential or privileged information or attorney
work product belonging to Fidelity Business Services India Pvt. Ltd.
(FBS India) or its affiliates. If you are not the intended recipient of
this e-mail, or if you have otherwise received this e-mail in error,
please immediately notify the sender via return e-mail and permanently
delete the original mail, any print outs and any copies, including any
attachments. Any dissemination, distribution, alteration or copying of
this e-mail is strictly prohibited. The originator of this e-mail does
not guarantee the security of this message and will not be responsible
for any damages arising from any dissemination, distribution, alteration
or copying of this message and/or any attachments to this message by a
third party or as a result of any virus being passed on. Any comments or
statements made in this are not necessarily those of FBS India or any
other Fidelity entity. All e-mails sent from or to FBS India may be
subject to our monitoring and recording procedures. FBS India is an
Appointed Representative of Fidelity Investments International, which is
authorized and regulated by the United Kingdom Financial Services
Authority . Fidelity Investments International only gives information on
its products and services and does not give investment advice to private
clients based on individual circumstances

 


  _____  

	From: Andrey Rogov [mailto:andrey.rogov@gmail.com] 
	Sent: Monday, March 31, 2008 6:50 PM
	To: user-java@ibatis.apache.org
	Subject: Re: How to insert byte[] using iBatis into DB
	
	
	Kumar,
	   Did you try to pass your secKey object as a parameter ?
	
	  //  insert data 
	  <insert id="insertPassword" parameterClass="secKey">
	         insert into table (  secKeyfield, secPwdfield ) 
	             values ( #secKey# , #secPwd# )                   
	  </insert>
	
	
	
	
	2008/3/31, Elangovan, Kumaravel <ku...@fmr.com>: 

		Hi,
		
		There is no Byte constructor which takes byte[] as an
argument. So I am
		not sure how to convert this byte[] to Object. I don't
want to convert
		it to String as this gives issue. Is there any other
method available?
		
		
		Thanks & Regards,
		Kumar
		
		
		Important: This e-mail, including any attachment(s)
hereto, is intended
		only for the individual or entity to whom it is
addressed. It may
		contain proprietary, confidential or privileged
information or attorney
		work product belonging to Fidelity Business Services
India Pvt. Ltd.
		(FBS India) or its affiliates. If you are not the
intended recipient of
		this e-mail, or if you have otherwise received this
e-mail in error,
		please immediately notify the sender via return e-mail
and permanently
		delete the original mail, any print outs and any copies,
including any
		attachments. Any dissemination, distribution, alteration
or copying of
		this e-mail is strictly prohibited. The originator of
this e-mail does
		not guarantee the security of this message and will not
be responsible
		for any damages arising from any dissemination,
distribution, alteration
		or copying of this message and/or any attachments to
this message by a
		third party or as a result of any virus being passed on.
Any comments or
		statements made in this are not necessarily those of FBS
India or any
		other Fidelity entity. All e-mails sent from or to FBS
India may be
		subject to our monitoring and recording procedures. FBS
India is an
		Appointed Representative of Fidelity Investments
International, which is
		authorized and regulated by the United Kingdom Financial
Services
		Authority . Fidelity Investments International only
gives information on
		its products and services and does not give investment
advice to private
		clients based on individual circumstances
		
		
		
		-----Original Message-----
		From: Tony Lenzi [mailto:lenz1105@gmail.com]
		Sent: Friday, March 28, 2008 6:24 PM
		To: user-java@ibatis.apache.org
		Subject: Re: How to insert byte[] using iBatis into DB
		
		java.lang.Byte
		
		On Fri, Mar 28, 2008 at 8:03 AM, Elangovan, Kumaravel
		<ku...@fmr.com> wrote:
		>
		>
		>
		> Hi Andrey,
		>
		> Thanks for the eg code. I am still not clear about the
javaType for
		the
		> byte[]. Since all parameters and results must be an
Object at their
		highest
		> level in iBatis, what would be the corresponding
javaType for byte[].
		>
		> We are using stored procedure to insert values into
DB. As we dont
		want to
		> convert the byte[] to String, what would be the
appropriate javaType?
		>
		>
		>  <parameterMap id="createSecKeyParamMap"
class="secKey">
		>
		>
		>       <parameter property="secKey"
jdbcType="CHARACTER"
		> javaType="java.lang.String" mode="IN" />
		>
		>        <parameter property="secPwd" jdbcType="BLOB"
javaType= ""
		mode="IN"
		> />
		>
		>    </parameterMap>
		>
		> Thanks & Regards,
		> Kumar
		>
		>
		>
		> Important: This e-mail, including any attachment(s)
hereto, is
		intended only
		> for the individual or entity to whom it is addressed.
It may contain
		> proprietary, confidential or privileged information or
attorney work
		product
		> belonging to Fidelity Business Services India Pvt.
Ltd. (FBS India) or
		its
		> affiliates. If you are not the intended recipient of
this e-mail, or
		if you
		> have otherwise received this e-mail in error, please
immediately
		notify the
		> sender via return e-mail and permanently delete the
original mail, any
		print
		> outs and any copies, including any attachments. Any
dissemination,
		> distribution, alteration or copying of this e-mail is
strictly
		prohibited.
		> The originator of this e-mail does not guarantee the
security of this
		> message and will not be responsible for any damages
arising from any
		> dissemination, distribution, alteration or copying of
this message
		and/or
		> any attachments to this message by a third party or as
a result of any
		virus
		> being passed on. Any comments or statements made in
this are not
		necessarily
		> those of FBS India or any other Fidelity entity. All
e-mails sent from
		or to
		> FBS India may be subject to our monitoring and
recording procedures.
		FBS
		> India is an Appointed Representative of Fidelity
Investments
		International,
		> which is authorized and regulated by the United
Kingdom Financial
		Services
		> Authority . Fidelity Investments International only
gives information
		on its
		> products and services and does not give investment
advice to private
		clients
		> based on individual circumstances
		>
		>
		>
		>  ________________________________
		>  From: Andrey Rogov [mailto:andrey.rogov@gmail.com]
		> Sent: Thursday, March 27, 2008 11:59 PM
		> To: user-java@ibatis.apache.org
		> Subject: Re: How to insert byte[] using iBatis into DB
		>
		>
		>
		> > The issue is the constructed String does not have
the same bytes in
		> > different OS, thus results in junk value while
decrypting. So we
		wanted to
		> > store it as byte[] in to DB.
		> >
		> > Can any one let me know how to accomplish this.
		>
		> Kumar,
		>      this example for Oracle. I think, that it will
work for DB2 too.
		>
		> public class password {
		>     private byte[] passwordData ;
		> }
		>
		> //  insert data
		> <insert id="insertPassword" parameterClass="password">
		>        insert into table (  password  )   ( type BLOB
)
		>         values ( #passwordData# )
		> </insert>
		>
		> //  get data
		> <resultMap id="pwdblob" class="password">
		>          <result column="password"
property="passwordData"
		jdbcType="BLOB"/>
		> </resultMap>
		>
		> <statement id="getPassword" resultMap="pwdblob"
parameterClass="user">
		>       select password from db2.table where user=#id#
		> </statement>
		>
		> Andrey.
		>
		>
		> ///  IBM DB2 sample for CLOB & BLOB .
		>
	
http://publib.boulder.ibm.com/infocenter/db2luw/v8/index.jsp?topic=/com.
		ibm.db2.udb.doc/ad/samples/sqlj/s-BlobClobDemo-sqlj.htm
		>
		>
		> 2008/3/27, Tony Lenzi <le...@gmail.com>:
		> > Kumar,
		> >
		> > You could base 64 encode your byte array, that would
preserve it as
		> > you move from OS to OS, then let Java decode the
base 64 string and
		> > then decrypt it.
		> >
		> > If you need to store the byte array, we just use a
blob JDBC type in
		> > our mappings of byte arrays from iBatis to MySQL.
Not sure how that
		> > would map to a byte[] in DB2.
		> >
		> > --
		> >
		> > Tony
		> >
		> >
		> > On Thu, Mar 27, 2008 at 9:32 AM, Elangovan,
Kumaravel
		> > <ku...@fmr.com> wrote:
		> > >
		> > >
		> > >
		> > >
		> > > Hi,
		> > >
		> > > We have a encrypted byte array for the password.
We will construct
		a
		> String
		> > > (String pwd = new String(byte[] password) insert
in to DB2 (The
		column
		> > > definition is CHARACTER(64) NOT NULL  FOR BIT
DATA).
		> > >
		> > > The sqlmap for this is as follows.
		> > >
		> > > <parameter property="Pwd"
jdbcType="CHARACTER"
		> > > javaType="java.lang.String" mode="IN"/>
		> > >
		> > > The issue is the constructed String does not have
the same bytes
		in
		> > > different OS, thus results in junk value while
decrypting. So we
		wanted
		> to
		> > > store it as byte[] in to DB.
		> > >
		> > > Can any one let me know how to accomplish this.
		> > >
		> > > Thanks & Regards,
		> > > Kumar
		> > >
		> > > Important: This e-mail, including any
attachment(s) hereto, is
		intended
		> only
		> > > for the individual or entity to whom it is
addressed. It may
		contain
		> > > proprietary, confidential or privileged
information or attorney
		work
		> product
		> > > belonging to Fidelity Business Services India Pvt.
Ltd. (FBS
		India) or
		> its
		> > > affiliates. If you are not the intended recipient
of this e-mail,
		or if
		> you
		> > > have otherwise received this e-mail in error,
please immediately
		notify
		> the
		> > > sender via return e-mail and permanently delete
the original mail,
		any
		> print
		> > > outs and any copies, including any attachments.
Any dissemination,
		> > > distribution, alteration or copying of this e-mail
is strictly
		> prohibited.
		> > > The originator of this e-mail does not guarantee
the security of
		this
		> > > message and will not be responsible for any
damages arising from
		any
		> > > dissemination, distribution, alteration or copying
of this message
		> and/or
		> > > any attachments to this message by a third party
or as a result of
		any
		> virus
		> > > being passed on. Any comments or statements made
in this are not
		> necessarily
		> > > those of FBS India or any other Fidelity entity.
All e-mails sent
		from
		> or to
		> > > FBS India may be subject to our monitoring and
recording
		procedures. FBS
		> > > India is an Appointed Representative of Fidelity
Investments
		> International,
		> > > which is authorized and regulated by the United
Kingdom Financial
		> Services
		> > > Authority . Fidelity Investments International
only gives
		information on
		> its
		> > > products and services and does not give investment
advice to
		private
		> clients
		> > > based on individual circumstances
		> > >
		> >
		>
		>