⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ibatis开发人员指南(翻译自ibatis_db_guide-1-2-8)2.htm

📁 ibatis学习资料
💻 HTM
📖 第 1 页 / 共 3 页
字号:
      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>&nbsp;&nbsp;&nbsp;&nbsp;现在SQL 
Map实例已经完成初始化,并且很容易访问,我们可以使用它了。首先我们用它从数据库中取得一个Person对象。(举例,我们假设数据库中有10条记录,PER_ID分别从是1到10)</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;为了从数据库中取得一个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>&nbsp;&nbsp;&nbsp;&nbsp;现在我们已经从数据库取得一个对象,让我们修改一些值,我们将修改身高和体重。&nbsp;&nbsp;&nbsp;</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>&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<A 
href="http://champion.ewuxi.com/old/opensource/ibatis/guide3.htm">下一页</A></P><!-- InstanceEndEditable -->
<P align=left>&nbsp;</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 + -