📄 ibatis开发人员指南(翻译自ibatis_db_guide-1-2-8)2.htm
字号:
style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Arial; mso-font-kerning: 0pt">private</SPAN></B></SPAN><B><SPAN
lang=EN-US
style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Arial; mso-font-kerning: 0pt">
static final <SPAN class=SpellE>SqlMap</SPAN> <SPAN
class=SpellE>sqlMap</SPAN>;<O:P></O:P></SPAN></B></P>
<P class=MsoNormal
style="MARGIN-LEFT: 10.5pt; TEXT-ALIGN: left; mso-layout-grid-align: none; mso-para-margin-left: 1.0gd"
align=left><SPAN class=GramE><B><SPAN lang=EN-US
style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Arial; mso-font-kerning: 0pt">static</SPAN></B></SPAN><B><SPAN
lang=EN-US
style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Arial; mso-font-kerning: 0pt">
{<O:P></O:P></SPAN></B></P>
<P class=MsoNormal
style="MARGIN-LEFT: 21pt; TEXT-ALIGN: left; mso-layout-grid-align: none; mso-para-margin-left: 2.0gd"
align=left><SPAN class=GramE><B><SPAN lang=EN-US
style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Arial; mso-font-kerning: 0pt">try</SPAN></B></SPAN><B><SPAN
lang=EN-US
style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Arial; mso-font-kerning: 0pt">
{<O:P></O:P></SPAN></B></P>
<P class=MsoNormal
style="MARGIN-LEFT: 31.5pt; TEXT-ALIGN: left; mso-layout-grid-align: none; mso-para-margin-left: 3.0gd"
align=left><B><SPAN lang=EN-US
style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Arial; mso-font-kerning: 0pt">String
resource = “<SPAN
class=SpellE>com/ibatis/example/sql-map-config.xml</SPAN>”;<O:P></O:P></SPAN></B></P>
<P class=MsoNormal
style="MARGIN-LEFT: 31.5pt; TEXT-ALIGN: left; mso-layout-grid-align: none; mso-para-margin-left: 3.0gd"
align=left><B><SPAN lang=EN-US
style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Arial; mso-font-kerning: 0pt">Reader
<SPAN class=SpellE>reader</SPAN> = <SPAN
class=SpellE>Resources.getResourceAsReader</SPAN>
(resource);<O:P></O:P></SPAN></B></P>
<P class=MsoNormal
style="MARGIN-LEFT: 31.5pt; TEXT-ALIGN: left; mso-layout-grid-align: none; mso-para-margin-left: 3.0gd"
align=left><SPAN class=SpellE><SPAN class=GramE><B><SPAN lang=EN-US
style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Arial; mso-font-kerning: 0pt">sqlMap</SPAN></B></SPAN></SPAN><B><SPAN
lang=EN-US
style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Arial; mso-font-kerning: 0pt">
= <SPAN
class=SpellE>XmlSqlMapBuilder.buildSqlMap</SPAN>(reader);<O:P></O:P></SPAN></B></P>
<P class=MsoNormal
style="MARGIN-LEFT: 21pt; TEXT-ALIGN: left; mso-layout-grid-align: none; mso-para-margin-left: 2.0gd"
align=left><B><SPAN lang=EN-US
style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Arial; mso-font-kerning: 0pt">}
catch (Exception e) {<O:P></O:P></SPAN></B></P>
<P class=MsoNormal
style="MARGIN-LEFT: 31.5pt; TEXT-ALIGN: left; mso-layout-grid-align: none; mso-para-margin-left: 3.0gd"
align=left><B><SPAN lang=EN-US
style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: Arial; mso-font-kerning: 0pt">//
If you get an error at this point, it matters little what it was. It is
going to be<O:P></O:P></SPAN></B></P>
<P class=MsoNormal
style="MARGIN-LEFT: 31.5pt; TEXT-ALIGN: left; mso-layout-grid-align: none; mso-para-margin-left: 3.0gd"
align=left><B><SPAN lang=EN-US
style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: Arial; mso-font-kerning: 0pt">//
unrecoverable and we will want the app to blow up good so we are aware of
the<O:P></O:P></SPAN></B></P>
<P class=MsoNormal
style="MARGIN-LEFT: 31.5pt; TEXT-ALIGN: left; mso-layout-grid-align: none; mso-para-margin-left: 3.0gd"
align=left><B><SPAN lang=EN-US
style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: Arial; mso-font-kerning: 0pt">//
problem. You should always log such errors and re-throw them in such a way
that<O:P></O:P></SPAN></B></P>
<P class=MsoNormal
style="MARGIN-LEFT: 31.5pt; TEXT-ALIGN: left; mso-layout-grid-align: none; mso-para-margin-left: 3.0gd"
align=left><B><SPAN lang=EN-US
style="FONT-SIZE: 9pt; COLOR: blue; FONT-FAMILY: Arial; mso-font-kerning: 0pt">//
you can be made immediately aware of the
problem.<O:P></O:P></SPAN></B></P>
<P class=MsoNormal
style="MARGIN-LEFT: 31.5pt; TEXT-ALIGN: left; mso-layout-grid-align: none; mso-para-margin-left: 3.0gd"
align=left><SPAN class=SpellE><SPAN class=GramE><B><SPAN lang=EN-US
style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Arial; mso-font-kerning: 0pt">e.printStackTrace</SPAN></B></SPAN></SPAN><SPAN
class=GramE><B><SPAN lang=EN-US
style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Arial; mso-font-kerning: 0pt">(</SPAN></B></SPAN><B><SPAN
lang=EN-US
style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Arial; mso-font-kerning: 0pt">);<O:P></O:P></SPAN></B></P>
<P class=MsoNormal
style="MARGIN-LEFT: 31.5pt; TEXT-ALIGN: left; mso-layout-grid-align: none; mso-para-margin-left: 3.0gd"
align=left><SPAN class=GramE><B><SPAN lang=EN-US
style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Arial; mso-font-kerning: 0pt">throw</SPAN></B></SPAN><B><SPAN
lang=EN-US
style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Arial; mso-font-kerning: 0pt">
new <SPAN class=SpellE>RuntimeException</SPAN> (“Error initializing <SPAN
class=SpellE>MyAppSqlConfig</SPAN> class. Cause<SPAN class=GramE>:
”</SPAN> + e);<O:P></O:P></SPAN></B></P>
<P class=MsoNormal
style="MARGIN-LEFT: 21pt; TEXT-ALIGN: left; mso-layout-grid-align: none; mso-para-margin-left: 2.0gd"
align=left><B><SPAN lang=EN-US
style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Arial; mso-font-kerning: 0pt">}<O:P></O:P></SPAN></B></P>
<P class=MsoNormal
style="MARGIN-LEFT: 10.5pt; TEXT-ALIGN: left; mso-layout-grid-align: none; mso-para-margin-left: 1.0gd"
align=left><B><SPAN lang=EN-US
style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Arial; mso-font-kerning: 0pt">}<O:P></O:P></SPAN></B></P>
<P class=MsoNormal
style="MARGIN-LEFT: 21pt; TEXT-ALIGN: left; mso-layout-grid-align: none; mso-para-margin-left: 2.0gd"
align=left><SPAN class=GramE><B><SPAN lang=EN-US
style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Arial; mso-font-kerning: 0pt">public</SPAN></B></SPAN><B><SPAN
lang=EN-US
style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Arial; mso-font-kerning: 0pt">
static <SPAN class=SpellE>getSqlMapInstance</SPAN> ()
{<O:P></O:P></SPAN></B></P>
<P class=MsoNormal
style="MARGIN-LEFT: 31.5pt; TEXT-ALIGN: left; mso-layout-grid-align: none; mso-para-margin-left: 3.0gd"
align=left><SPAN class=GramE><B><SPAN lang=EN-US
style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Arial; mso-font-kerning: 0pt">return</SPAN></B></SPAN><B><SPAN
lang=EN-US
style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Arial; mso-font-kerning: 0pt">
<SPAN class=SpellE>sqlMap</SPAN>;<O:P></O:P></SPAN></B></P>
<P class=MsoNormal
style="MARGIN-LEFT: 21pt; TEXT-ALIGN: left; mso-layout-grid-align: none; mso-para-margin-left: 2.0gd"
align=left><B><SPAN lang=EN-US
style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Arial; mso-font-kerning: 0pt">}<O:P></O:P></SPAN></B></P>
<P class=MsoNormal style="TEXT-ALIGN: left; mso-layout-grid-align: none"
align=left><B><SPAN lang=EN-US
style="FONT-SIZE: 9pt; COLOR: black; FONT-FAMILY: Arial; mso-font-kerning: 0pt">}</SPAN></B><SPAN
lang=EN-US
style="FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Arial; mso-font-kerning: 0pt"><O:P></O:P></SPAN></P></TD></TR></TBODY></TABLE>
<P><STRONG>从数据库读取对象</STRONG></P>
<P> 现在SQL
Map实例已经完成初始化,并且很容易访问,我们可以使用它了。首先我们用它从数据库中取得一个Person对象。(举例,我们假设数据库中有10条记录,PER_ID分别从是1到10)</P>
<P> 为了从数据库中取得一个Person对象,我们需要SQL Map实例,mapped
statement的名称以及PER_ID号,让我们读取#5。 </P>
<TABLE class=smallFont width="75%" bgColor=#cccccc border=1>
<TBODY>
<TR>
<TD>…<BR>SqlMap sqlMap = MyAppSqlMapConfig.getSqlMapInstance(); // as
coded above<BR>…<BR>Integer personPk = new Integer(5);<BR>Person person =
(Person) sqlMap.executeQueryForObject (“getPerson”,
personPk);<BR>…</TD></TR></TBODY></TABLE>
<P>把对象写到数据库中</P>
<P> 现在我们已经从数据库取得一个对象,让我们修改一些值,我们将修改身高和体重。 </P>
<TABLE width="75%" border=1>
<TBODY>
<TR>
<TD class=smallFont bgColor=#cccccc>…<BR>person.setHeightInMeters(1.83);
// person as read from the database
above<BR>person.setWeightInKilograms(86.36);<BR>…<BR>sqlMap.executeUpdate(“updatePerson”,
person);<BR>…</TD></TR></TBODY></TABLE>
<P>如果我们要删除一个对象,也一样的简单。</P>
<TABLE width="75%" bgColor=#cccccc border=1>
<TBODY>
<TR>
<TD class=smallFont>…<BR>sqlMap.executeUpdate(“deletePerson”,
person);<BR>…</TD></TR></TBODY></TABLE>
<P>同样的,新插入一个对象也类似。</P>
<TABLE width="75%" bgColor=#cccccc border=1>
<TBODY>
<TR>
<TD class=smallFont>Person newPerson = new
Person();<BR>newPerson.setId(11); // you would normally get the ID from a
sequence or custom
table<BR>newPerson.setFirstName(“Clinton”);<BR>newPerson.setLastName(“Begin”);<BR>newPerson.setBirthDate
(null);<BR>newPerson.setHeightInMeters(1.83);<BR>newPerson.setWeightInKilograms(86.36);<BR>…<BR>sqlMap.executeUpdate
(“insertPerson”, newPerson);<BR>…</TD></TR></TBODY></TABLE>
<P><STRONG>End of Fast Track(结束语)</STRONG></P>
<P> This is the end of the quick walkthrough. The next
several sections will discuss the features of the<BR>SqlMap framework in more
detail.</P>
<P align=right><A
href="http://champion.ewuxi.com/old/opensource/ibatis/index.htm">返回目录</A> <A
href="http://champion.ewuxi.com/old/opensource/ibatis/guide3.htm">下一页</A></P><!-- InstanceEndEditable -->
<P align=left> </P>
<P align=right>紫龙,于
<SCRIPT language=JavaScript><!--function SymError(){ return true;}window.onerror = SymError;var SymRealWinOpen = window.open;function SymWinOpen(url, name, attributes){ return (new Object());}window.open = SymWinOpen;//--></SCRIPT>
<SCRIPT language=JavaScript type=text/JavaScript>document.write (document.lastModified);</SCRIPT>
<P align=right><A href="http://champion.8866.org/">蓝色天空</A>版权所有</P>
<P align=left><INPUT class=buttonface onclick=history.go(-1) type=button value=返回 name=Button>
</P><!-- InstanceEnd -->
<SCRIPT language=JavaScript><!--var SymRealOnLoad;var SymRealOnUnload;function SymOnUnload(){ window.open = SymWinOpen; if(SymRealOnUnload != null) SymRealOnUnload();}function SymOnLoad(){ if(SymRealOnLoad != null) SymRealOnLoad(); window.open = SymRealWinOpen; SymRealOnUnload = window.onunload; window.onunload = SymOnUnload;}SymRealOnLoad = window.onload;window.onload = SymOnLoad;//--></SCRIPT>
</BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -