??xml version="1.0" encoding="utf-8" standalone="yes"?>91精品国产九九九久久久亚洲,国产一区二区三区不卡视频网站 ,国产免费永久在线观看http://www.aygfsteel.com/davidjefiny/zh-cnTue, 17 Jun 2025 01:39:39 GMTTue, 17 Jun 2025 01:39:39 GMT60Apache DbUtils - JDBC轻量U封装的工具?/title><link>http://www.aygfsteel.com/davidjefiny/archive/2014/01/05/Apache_Common_DbUtils.html</link><dc:creator>U烧狮子?/dc:creator><author>U烧狮子?/author><pubDate>Sun, 05 Jan 2014 13:07:00 GMT</pubDate><guid>http://www.aygfsteel.com/davidjefiny/archive/2014/01/05/Apache_Common_DbUtils.html</guid><wfw:comment>http://www.aygfsteel.com/davidjefiny/comments/408533.html</wfw:comment><comments>http://www.aygfsteel.com/davidjefiny/archive/2014/01/05/Apache_Common_DbUtils.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/davidjefiny/comments/commentRss/408533.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/davidjefiny/services/trackbacks/408533.html</trackback:ping><description><![CDATA[     摘要: 前段旉使用了Apache Common DbUtilsq个工具Q在此留个印Q以备不时查看。大安知道现在市面上的数据库访问层的框架很多,当然很多都是包含了OR-Mapping工作步骤?例如大家常用的Hibernate与Mybatis。当然如果h们要一个纯_的装了JDBC的工LQ用Apache Common DbUtilsQ下面简UACDQ是个不错的选择Q这个工具在JDBC的基上稍?..  <a href='http://www.aygfsteel.com/davidjefiny/archive/2014/01/05/Apache_Common_DbUtils.html'>阅读全文</a><img src ="http://www.aygfsteel.com/davidjefiny/aggbug/408533.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/davidjefiny/" target="_blank">U烧狮子?/a> 2014-01-05 21:07 <a href="http://www.aygfsteel.com/davidjefiny/archive/2014/01/05/Apache_Common_DbUtils.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一步步学Mybatis-告别J琐的配|之Mybatis配置文g生成工具 Q?Q?/title><link>http://www.aygfsteel.com/davidjefiny/archive/2013/12/31/408289.html</link><dc:creator>U烧狮子?/dc:creator><author>U烧狮子?/author><pubDate>Tue, 31 Dec 2013 06:28:00 GMT</pubDate><guid>http://www.aygfsteel.com/davidjefiny/archive/2013/12/31/408289.html</guid><wfw:comment>http://www.aygfsteel.com/davidjefiny/comments/408289.html</wfw:comment><comments>http://www.aygfsteel.com/davidjefiny/archive/2013/12/31/408289.html#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://www.aygfsteel.com/davidjefiny/comments/commentRss/408289.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/davidjefiny/services/trackbacks/408289.html</trackback:ping><description><![CDATA[     摘要: 今年?013q的杀青之日,前几天由于比较忙Q没有及时更新本的最后一东西,前六中我们主要都是采用手动配置相关的Mybatis映射文g与相 应的接口cM实体cR当然如果在真正的用过E中Q由于业务的复杂度,表少点的话还好如果相关业务表很多Q难道我们都要一个个q样去配|嘛Q这昄不可 能,今天p讲述怎么通过官方提供的MyBatisGenerator生成相应的配|文件。还记得W一章中我们要求准备...  <a href='http://www.aygfsteel.com/davidjefiny/archive/2013/12/31/408289.html'>阅读全文</a><img src ="http://www.aygfsteel.com/davidjefiny/aggbug/408289.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/davidjefiny/" target="_blank">U烧狮子?/a> 2013-12-31 14:28 <a href="http://www.aygfsteel.com/davidjefiny/archive/2013/12/31/408289.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一步步学Mybatis-怎么样实现动态SQL查询Q?Q?/title><link>http://www.aygfsteel.com/davidjefiny/archive/2013/12/27/408137.html</link><dc:creator>U烧狮子?/dc:creator><author>U烧狮子?/author><pubDate>Fri, 27 Dec 2013 12:54:00 GMT</pubDate><guid>http://www.aygfsteel.com/davidjefiny/archive/2013/12/27/408137.html</guid><wfw:comment>http://www.aygfsteel.com/davidjefiny/comments/408137.html</wfw:comment><comments>http://www.aygfsteel.com/davidjefiny/archive/2013/12/27/408137.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.aygfsteel.com/davidjefiny/comments/commentRss/408137.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/davidjefiny/services/trackbacks/408137.html</trackback:ping><description><![CDATA[     摘要: 上一章我们已l讲完了关于Mybatis的分는法,其实MyBatis q具有的一个强大的Ҏ之一通常是它的动?SQL 能力?如果你有使用 JDBC 或其?怼框架的经?你就明白要动态的串联 SQL 字符串在一h十分U结的,保不能忘了I格或在列表的最后省略逗号。Mybatis中的动?SQL 可以d处理q种痛苦。对于动态SQLQ最通俗单的Ҏ是我们自己在硬~码的时候赋予各U动态行?..  <a href='http://www.aygfsteel.com/davidjefiny/archive/2013/12/27/408137.html'>阅读全文</a><img src ="http://www.aygfsteel.com/davidjefiny/aggbug/408137.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/davidjefiny/" target="_blank">U烧狮子?/a> 2013-12-27 20:54 <a href="http://www.aygfsteel.com/davidjefiny/archive/2013/12/27/408137.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一步步学Mybatis-实现单的分页效果逻辑 Q?Q?/title><link>http://www.aygfsteel.com/davidjefiny/archive/2013/12/25/408033.html</link><dc:creator>U烧狮子?/dc:creator><author>U烧狮子?/author><pubDate>Wed, 25 Dec 2013 09:50:00 GMT</pubDate><guid>http://www.aygfsteel.com/davidjefiny/archive/2013/12/25/408033.html</guid><wfw:comment>http://www.aygfsteel.com/davidjefiny/comments/408033.html</wfw:comment><comments>http://www.aygfsteel.com/davidjefiny/archive/2013/12/25/408033.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/davidjefiny/comments/commentRss/408033.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/davidjefiny/services/trackbacks/408033.html</trackback:ping><description><![CDATA[     摘要: 在前四章中我们已l基本完成了对单表的CRUD与多表联合查询方式的Mybatis操作与配|方式,今天q里要讲的是关于一个业务问题中我们?到的分问题。在开发web目的时候我们经怼使用到列表显C,一般我们都会用一些常用的列表控g例如QdatatablesQ个人感觉十分不 错)Qeasy ui下面的那些封装好的表格控件。  思\Q在q些控g里要辑ֈ分页的效果,一般都会传2个参敎ͼW一个是表示当前...  <a href='http://www.aygfsteel.com/davidjefiny/archive/2013/12/25/408033.html'>阅读全文</a><img src ="http://www.aygfsteel.com/davidjefiny/aggbug/408033.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/davidjefiny/" target="_blank">U烧狮子?/a> 2013-12-25 17:50 <a href="http://www.aygfsteel.com/davidjefiny/archive/2013/12/25/408033.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一步步学Mybatis-实现多表联合查询Q?Q?/title><link>http://www.aygfsteel.com/davidjefiny/archive/2013/12/24/407985.html</link><dc:creator>U烧狮子?/dc:creator><author>U烧狮子?/author><pubDate>Tue, 24 Dec 2013 09:06:00 GMT</pubDate><guid>http://www.aygfsteel.com/davidjefiny/archive/2013/12/24/407985.html</guid><wfw:comment>http://www.aygfsteel.com/davidjefiny/comments/407985.html</wfw:comment><comments>http://www.aygfsteel.com/davidjefiny/archive/2013/12/24/407985.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/davidjefiny/comments/commentRss/407985.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/davidjefiny/services/trackbacks/407985.html</trackback:ping><description><![CDATA[<div><p>  上一章节中我们已l完成了对单表的CRUD操作Q接下来今天q一讲讲q的是关于Mybatis在多表查询时候的应用Q毕竟实际业务中也是多表的联合查询比较多嘛~</p><p>q记得最一开始我们新一张Website表吗Q在那张表里有个VisitorId字段Q表C问者访问过哪些|站Q现在我们先按照上一张中的要求把关于Website的JavaBean实体先徏立出来?/p><p>q是在david.mybatis.model包下面新Z个Websitec,用来持久化数据之用,重写下相应toString()ҎQ方便测试程序之用?/p><div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><img id="Code_Closed_Image_165313" onclick="this.style.display='none'; Code_Closed_Text_165313.style.display='none'; Code_Open_Image_165313.style.display='inline'; Code_Open_Text_165313.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedBlock.gif" align="top" height="16" width="11"><img id="Code_Open_Image_165313" style="display: none" onclick="this.style.display='none'; Code_Open_Text_165313.style.display='none'; Code_Closed_Image_165313.style.display='inline'; Code_Closed_Text_165313.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" height="16" width="11"><span id="Code_Closed_Text_165313" style="border-right: #808080 1px solid; border-top: #808080 1px solid; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">Website实体c?/span><span id="Code_Open_Text_165313" style="display: none"><br /><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">package</span><span style="color: #000000; "> david.mybatis.model;<br /><br /></span><span style="color: #0000FF; ">import</span><span style="color: #000000; "> java.text.SimpleDateFormat;<br /></span><span style="color: #0000FF; ">import</span><span style="color: #000000; "> java.util.Date;<br /><br /></span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">class</span><span style="color: #000000; "> Website {<br />    </span><span style="color: #0000FF; ">private</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> id;<br />    </span><span style="color: #0000FF; ">private</span><span style="color: #000000; "> String name;<br />    </span><span style="color: #0000FF; ">private</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> visitorId;<br />    </span><span style="color: #0000FF; ">private</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> status;<br />    </span><span style="color: #0000FF; ">private</span><span style="color: #000000; "> Date createTime;<br />    </span><span style="color: #0000FF; ">private</span><span style="color: #000000; "> Visitor visitor;<br /><br />    </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> Website() {<br />        </span><span style="color: #008000; ">//</span><span style="color: #008000; "> TODO Auto-generated constructor stub</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">        createTime </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> Date();<br />        visitor </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> Visitor();<br />    }<br /><br />    </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> Website(String name, </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> visitorId) {<br />        </span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.name </span><span style="color: #000000; ">=</span><span style="color: #000000; "> name;<br />        </span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.visitorId </span><span style="color: #000000; ">=</span><span style="color: #000000; "> visitorId;<br />        visitor </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> Visitor();<br />        status </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">1</span><span style="color: #000000; ">;<br />        createTime </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> Date();<br />    }<br /><br />    </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> getId() {<br />        </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> id;<br />    }<br /><br />    </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> setId(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> id) {<br />        </span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.id </span><span style="color: #000000; ">=</span><span style="color: #000000; "> id;<br />    }<br /><br />    </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> Visitor getVisitor() {<br />        </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> visitor;<br />    }<br /><br />    </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> setVisitor(Visitor visitor) {<br />        </span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.visitor </span><span style="color: #000000; ">=</span><span style="color: #000000; "> visitor;<br />    }<br /><br />    </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> String getName() {<br />        </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> name;<br />    }<br /><br />    </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> setName(String name) {<br />        </span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.name </span><span style="color: #000000; ">=</span><span style="color: #000000; "> name;<br />    }<br /><br />    </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> getStatus() {<br />        </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> status;<br />    }<br /><br />    </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> setStatus(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> status) {<br />        </span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.status </span><span style="color: #000000; ">=</span><span style="color: #000000; "> status;<br />    }<br /><br />    </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> Date getCreateTime() {<br />        </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> createTime;<br />    }<br /><br />    </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> setCreateTime(Date createTime) {<br />        </span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.createTime </span><span style="color: #000000; ">=</span><span style="color: #000000; "> createTime;<br />    }<br /><br />    </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> getVisitorId() {<br />        </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> id </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #000000; ">0</span><span style="color: #000000; ">;<br />        </span><span style="color: #0000FF; ">if</span><span style="color: #000000; "> (visitor </span><span style="color: #000000; ">==</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">null</span><span style="color: #000000; ">)<br />            id </span><span style="color: #000000; ">=</span><span style="color: #000000; "> visitorId;<br />        </span><span style="color: #0000FF; ">else</span><span style="color: #000000; "><br />            id </span><span style="color: #000000; ">=</span><span style="color: #000000; "> visitor.getId();<br />        </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> id;<br />    }<br /><br />    </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> setVisitorId(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> visitorId) {<br />        </span><span style="color: #0000FF; ">this</span><span style="color: #000000; ">.visitorId </span><span style="color: #000000; ">=</span><span style="color: #000000; "> visitorId;<br />    }<br /><br />    @Override<br />    </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> String toString() {<br />        StringBuilder sb </span><span style="color: #000000; ">=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> StringBuilder(String.format(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">Website=> {IdQ?d, NameQ?s, CreateTimeQ?s}\r\n</span><span style="color: #000000; ">"</span><span style="color: #000000; ">, id, name,<br />                </span><span style="color: #0000FF; ">new</span><span style="color: #000000; "> SimpleDateFormat(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">yyyy-MM-dd HH:mm:ss</span><span style="color: #000000; ">"</span><span style="color: #000000; ">).format(createTime)));<br />        </span><span style="color: #0000FF; ">if</span><span style="color: #000000; "> (visitor </span><span style="color: #000000; ">!=</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">null</span><span style="color: #000000; ">)<br />            sb.append(String.format(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">Visitor=> %s</span><span style="color: #000000; ">"</span><span style="color: #000000; ">, visitor.toString()));<br />        </span><span style="color: #0000FF; ">return</span><span style="color: #000000; "> sb.toString();<br />    }<br />}<br /><br />Website实体c?/span></span></div></div><p>在david.mybatis.demo下面分别新徏相应的操作接口:<br /></p><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><img id="Code_Closed_Image_165513" onclick="this.style.display='none'; Code_Closed_Text_165513.style.display='none'; Code_Open_Image_165513.style.display='inline'; Code_Open_Text_165513.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedBlock.gif" align="top" height="16" width="11"><img id="Code_Open_Image_165513" style="display: none" onclick="this.style.display='none'; Code_Open_Text_165513.style.display='none'; Code_Closed_Image_165513.style.display='inline'; Code_Closed_Text_165513.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" height="16" width="11"><span id="Code_Closed_Text_165513" style="border-right: #808080 1px solid; border-top: #808080 1px solid; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">Website操作接口</span><span id="Code_Open_Text_165513" style="display: none"><br /><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">package</span><span style="color: #000000; "> david.mybatis.demo;<br /><br /></span><span style="color: #0000FF; ">import</span><span style="color: #000000; "> java.util.List;<br /></span><span style="color: #0000FF; ">import</span><span style="color: #000000; "> david.mybatis.model.Website;<br /><br /></span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">interface</span><span style="color: #000000; "> IWebsiteOperation {<br />    <br />    </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> add(Website website);<br />    <br />    </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> delete(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> id);<br />    <br />    </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> update(Website website);<br />    <br />    </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> Website query(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> id);<br />    <br />    </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> List</span><span style="color: #000000; "><</span><span style="color: #000000; ">Website</span><span style="color: #000000; ">></span><span style="color: #000000; "> getList();<br />    <br />}</span></span></div><p>在mapper文g夹下新徏WebsiteMapper.xml映射文gQ分别参照上一张所说的把增删改查的单表操作配置分别放进去,q样你可以徏造一Ҏ试数据。如?/p><div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><img id="Code_Closed_Image_165445" onclick="this.style.display='none'; Code_Closed_Text_165445.style.display='none'; Code_Open_Image_165445.style.display='inline'; Code_Open_Text_165445.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedBlock.gif" align="top" height="16" width="11"><img id="Code_Open_Image_165445" style="display: none" onclick="this.style.display='none'; Code_Open_Text_165445.style.display='none'; Code_Closed_Image_165445.style.display='inline'; Code_Closed_Text_165445.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" height="16" width="11"><span id="Code_Closed_Text_165445" style="border-right: #808080 1px solid; border-top: #808080 1px solid; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">WebsiteMapper配置</span><span id="Code_Open_Text_165445" style="display: none"><br /><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; "><?</span><span style="color: #FF00FF; ">xml version="1.0" encoding="UTF-8"</span><span style="color: #0000FF; ">?></span><span style="color: #000000; "><br /></span><span style="color: #0000FF; "><!</span><span style="color: #FF00FF; ">DOCTYPE mapper<br />  PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"<br />  "http://mybatis.org/dtd/mybatis-3-mapper.dtd"</span><span style="color: #0000FF; ">></span><span style="color: #000000; "><br /></span><span style="color: #0000FF; "><</span><span style="color: #800000; ">mapper </span><span style="color: #FF0000; ">namespace</span><span style="color: #0000FF; ">="david.mybatis.demo.IWebsiteOperation"</span><span style="color: #0000FF; ">></span><span style="color: #000000; "><br />    </span><span style="color: #0000FF; "><</span><span style="color: #800000; ">sql </span><span style="color: #FF0000; ">id</span><span style="color: #0000FF; ">="getListSql"</span><span style="color: #0000FF; ">></span><span style="color: #000000; "><br />        select id,<br />        name, VisitorId, status, createTime from Website<br />        where status>0<br />    </span><span style="color: #0000FF; "></</span><span style="color: #800000; ">sql</span><span style="color: #0000FF; ">></span><span style="color: #000000; "><br />    </span><span style="color: #0000FF; "><</span><span style="color: #800000; ">insert </span><span style="color: #FF0000; ">id</span><span style="color: #0000FF; ">="add"</span><span style="color: #FF0000; "> parameterType</span><span style="color: #0000FF; ">="Website"</span><span style="color: #FF0000; "> useGeneratedKeys</span><span style="color: #0000FF; ">="true"</span><span style="color: #FF0000; "><br />        keyProperty</span><span style="color: #0000FF; ">="Id"</span><span style="color: #0000FF; ">></span><span style="color: #000000; "><br />        insert into Website (Name, VisitorId, Status, CreateTime)<br />        values (#{name}, #{visitorId}, #{status}, #{createTime})<br />    </span><span style="color: #0000FF; "></</span><span style="color: #800000; ">insert</span><span style="color: #0000FF; ">></span><span style="color: #000000; "><br />    </span><span style="color: #0000FF; "><</span><span style="color: #800000; ">delete </span><span style="color: #FF0000; ">id</span><span style="color: #0000FF; ">="delete"</span><span style="color: #FF0000; "> parameterType</span><span style="color: #0000FF; ">="int"</span><span style="color: #0000FF; ">></span><span style="color: #000000; "><br />        delete from website where<br />        status>0 and id = #{id}<br />    </span><span style="color: #0000FF; "></</span><span style="color: #800000; ">delete</span><span style="color: #0000FF; ">></span><span style="color: #000000; "><br />    </span><span style="color: #0000FF; "><</span><span style="color: #800000; ">update </span><span style="color: #FF0000; ">id</span><span style="color: #0000FF; ">="update"</span><span style="color: #FF0000; "> parameterType</span><span style="color: #0000FF; ">="Website"</span><span style="color: #0000FF; ">></span><span style="color: #000000; "><br />        update website set<br />        name=#{name} where status>0 and id=#{id}<br />    </span><span style="color: #0000FF; "></</span><span style="color: #800000; ">update</span><span style="color: #0000FF; ">></span><span style="color: #000000; "><br />    </span><span style="color: #0000FF; "><</span><span style="color: #800000; ">select </span><span style="color: #FF0000; ">id</span><span style="color: #0000FF; ">="query"</span><span style="color: #FF0000; "> parameterType</span><span style="color: #0000FF; ">="int"</span><span style="color: #FF0000; "> resultMap</span><span style="color: #0000FF; ">="websiteRs"</span><span style="color: #0000FF; ">></span><span style="color: #000000; "><br />        select<br />        Website.id siteId, Website.name siteName, Visitor.Id visitorId,<br />        Visitor.name visitorName,<br />        Website.status siteStatus, Website.createtime<br />        siteCreateTime from Website<br />        inner join Visitor on Website.visitorid =<br />        Visitor.id where Website.status>0 and<br />        Website.id=#{id}<br />    </span><span style="color: #0000FF; "></</span><span style="color: #800000; ">select</span><span style="color: #0000FF; ">></span><span style="color: #000000; "><br />    </span><span style="color: #0000FF; "><</span><span style="color: #800000; ">resultMap </span><span style="color: #FF0000; ">type</span><span style="color: #0000FF; ">="Website"</span><span style="color: #FF0000; "> id</span><span style="color: #0000FF; ">="websiteRs"</span><span style="color: #0000FF; ">></span><span style="color: #000000; "><br />        </span><span style="color: #0000FF; "><</span><span style="color: #800000; ">id </span><span style="color: #FF0000; ">column</span><span style="color: #0000FF; ">="siteId"</span><span style="color: #FF0000; "> property</span><span style="color: #0000FF; ">="id"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><span style="color: #000000; "><br />        </span><span style="color: #0000FF; "><</span><span style="color: #800000; ">result </span><span style="color: #FF0000; ">column</span><span style="color: #0000FF; ">="siteName"</span><span style="color: #FF0000; "> property</span><span style="color: #0000FF; ">="name"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><span style="color: #000000; "><br />        </span><span style="color: #0000FF; "><</span><span style="color: #800000; ">result </span><span style="color: #FF0000; ">column</span><span style="color: #0000FF; ">="siteStatus"</span><span style="color: #FF0000; "> property</span><span style="color: #0000FF; ">="status"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><span style="color: #000000; "><br />        </span><span style="color: #0000FF; "><</span><span style="color: #800000; ">result </span><span style="color: #FF0000; ">column</span><span style="color: #0000FF; ">="siteCreateTime"</span><span style="color: #FF0000; "> property</span><span style="color: #0000FF; ">="createTime"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><span style="color: #000000; "><br />        </span><span style="color: #0000FF; "><</span><span style="color: #800000; ">association </span><span style="color: #FF0000; ">property</span><span style="color: #0000FF; ">="visitor"</span><span style="color: #FF0000; "> javaType</span><span style="color: #0000FF; ">="Visitor"</span><span style="color: #FF0000; "> resultMap</span><span style="color: #0000FF; ">="visitorRs"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><span style="color: #000000; "><br />    </span><span style="color: #0000FF; "></</span><span style="color: #800000; ">resultMap</span><span style="color: #0000FF; ">></span><span style="color: #000000; "><br />    </span><span style="color: #0000FF; "><</span><span style="color: #800000; ">resultMap </span><span style="color: #FF0000; ">type</span><span style="color: #0000FF; ">="Visitor"</span><span style="color: #FF0000; "> id</span><span style="color: #0000FF; ">="visitorRs"</span><span style="color: #0000FF; ">></span><span style="color: #000000; "><br />        </span><span style="color: #0000FF; "><</span><span style="color: #800000; ">id </span><span style="color: #FF0000; ">column</span><span style="color: #0000FF; ">="visitorId"</span><span style="color: #FF0000; "> property</span><span style="color: #0000FF; ">="id"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><span style="color: #000000; "><br />        </span><span style="color: #0000FF; "><</span><span style="color: #800000; ">result </span><span style="color: #FF0000; ">column</span><span style="color: #0000FF; ">="visitorName"</span><span style="color: #FF0000; "> property</span><span style="color: #0000FF; ">="name"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><span style="color: #000000; "><br />    </span><span style="color: #0000FF; "></</span><span style="color: #800000; ">resultMap</span><span style="color: #0000FF; ">></span><span style="color: #000000; "><br />    </span><span style="color: #0000FF; "><</span><span style="color: #800000; ">select </span><span style="color: #FF0000; ">id</span><span style="color: #0000FF; ">="getList"</span><span style="color: #FF0000; "> resultMap</span><span style="color: #0000FF; ">="websiteByVisitorIdRs"</span><span style="color: #0000FF; ">></span><span style="color: #000000; "><br />    </span><span style="color: #0000FF; "><</span><span style="color: #800000; ">include </span><span style="color: #FF0000; ">refid</span><span style="color: #0000FF; ">="getListSql"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><span style="color: #000000; "><br />    </span><span style="color: #0000FF; "></</span><span style="color: #800000; ">select</span><span style="color: #0000FF; ">></span><span style="color: #000000; ">    <br /></span><span style="color: #0000FF; "></</span><span style="color: #800000; ">mapper</span><span style="color: #0000FF; ">></span></span></div></div><p>q里今天主要说的是那个查,现在我们惌查询|站的同时分别把相应的访问者信息一h出来Q怎么做呢Q大家可以参照配|中的query,写下联表查询的SQLQ?/p><p><strong><span style="background-color: #ffff00;" data-mce-style="background-color: #ffff00;">q里主要要注意的是,Website实体与Visit的实体里面Id与Nameq?个属性都是一LQ所以ؓ了避免映出现出错现象,把相应的查询l果列v上不一L别名Q这L定的时候就可以避免</span></strong>?/p><p><span style="background-color: #ffff00;" data-mce-style="background-color: #ffff00;"><strong>假如我想下面一样配|会得到什么呢?</strong></span></p><div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><img id="Code_Closed_Image_170457" onclick="this.style.display='none'; Code_Closed_Text_170457.style.display='none'; Code_Open_Image_170457.style.display='inline'; Code_Open_Text_170457.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ContractedBlock.gif" align="top" height="16" width="11"><img id="Code_Open_Image_170457" style="display: none" onclick="this.style.display='none'; Code_Open_Text_170457.style.display='none'; Code_Closed_Image_170457.style.display='inline'; Code_Closed_Text_170457.style.display='inline';" src="http://www.aygfsteel.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top" height="16" width="11"><span id="Code_Closed_Text_170457" style="border-right: #808080 1px solid; border-top: #808080 1px solid; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff"> 可能引v错误的配|?/span><span id="Code_Open_Text_170457" style="display: none"><br /><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; "><</span><span style="color: #800000; ">select </span><span style="color: #FF0000; ">id</span><span style="color: #0000FF; ">="query"</span><span style="color: #FF0000; "> parameterType</span><span style="color: #0000FF; ">="int"</span><span style="color: #FF0000; "> resultMap</span><span style="color: #0000FF; ">="websiteRs"</span><span style="color: #0000FF; ">></span><span style="color: #000000; "><br />    select<br />    Website.id, Website.name siteName, Visitor.Id,<br />    Visitor.name visitorName,<br />    Website.status siteStatus, Website.createtime<br />    siteCreateTime from Website<br />    inner join Visitor on Website.visitorid =<br />    Visitor.id where Website.status>0 and<br />    Website.id=#{id}<br /></span><span style="color: #0000FF; "></</span><span style="color: #800000; ">select</span><span style="color: #0000FF; ">></span><span style="color: #000000; "><br /></span><span style="color: #0000FF; "><</span><span style="color: #800000; ">resultMap </span><span style="color: #FF0000; ">type</span><span style="color: #0000FF; ">="Website"</span><span style="color: #FF0000; "> id</span><span style="color: #0000FF; ">="websiteRs"</span><span style="color: #0000FF; ">></span><span style="color: #000000; "><br />    </span><span style="color: #0000FF; "><</span><span style="color: #800000; ">id </span><span style="color: #FF0000; ">column</span><span style="color: #0000FF; ">="id"</span><span style="color: #FF0000; "> property</span><span style="color: #0000FF; ">="id"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><span style="color: #000000; "><br />    </span><span style="color: #0000FF; "><</span><span style="color: #800000; ">result </span><span style="color: #FF0000; ">column</span><span style="color: #0000FF; ">="siteName"</span><span style="color: #FF0000; "> property</span><span style="color: #0000FF; ">="name"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><span style="color: #000000; "><br />    </span><span style="color: #0000FF; "><</span><span style="color: #800000; ">result </span><span style="color: #FF0000; ">column</span><span style="color: #0000FF; ">="siteStatus"</span><span style="color: #FF0000; "> property</span><span style="color: #0000FF; ">="status"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><span style="color: #000000; "><br />    </span><span style="color: #0000FF; "><</span><span style="color: #800000; ">result </span><span style="color: #FF0000; ">column</span><span style="color: #0000FF; ">="siteCreateTime"</span><span style="color: #FF0000; "> property</span><span style="color: #0000FF; ">="createTime"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><span style="color: #000000; "><br />    </span><span style="color: #0000FF; "><</span><span style="color: #800000; ">association </span><span style="color: #FF0000; ">property</span><span style="color: #0000FF; ">="visitor"</span><span style="color: #FF0000; "> javaType</span><span style="color: #0000FF; ">="Visitor"</span><span style="color: #FF0000; "><br />        resultMap</span><span style="color: #0000FF; ">="visitorRs"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><span style="color: #000000; "><br /></span><span style="color: #0000FF; "></</span><span style="color: #800000; ">resultMap</span><span style="color: #0000FF; ">></span><span style="color: #000000; "><br /></span><span style="color: #0000FF; "><</span><span style="color: #800000; ">resultMap </span><span style="color: #FF0000; ">type</span><span style="color: #0000FF; ">="Visitor"</span><span style="color: #FF0000; "> id</span><span style="color: #0000FF; ">="visitorRs"</span><span style="color: #0000FF; ">></span><span style="color: #000000; "><br />    </span><span style="color: #0000FF; "><</span><span style="color: #800000; ">id </span><span style="color: #FF0000; ">column</span><span style="color: #0000FF; ">="id"</span><span style="color: #FF0000; "> property</span><span style="color: #0000FF; ">="id"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><span style="color: #000000; "><br />    </span><span style="color: #0000FF; "><</span><span style="color: #800000; ">result </span><span style="color: #FF0000; ">column</span><span style="color: #0000FF; ">="visitorName"</span><span style="color: #FF0000; "> property</span><span style="color: #0000FF; ">="name"</span><span style="color: #FF0000; "> </span><span style="color: #0000FF; ">/></span><span style="color: #000000; "><br /></span><span style="color: #0000FF; "></</span><span style="color: #800000; ">resultMap</span><span style="color: #0000FF; ">></span></span></div></div><p><img src="http://images.cnitblog.com/blog/302948/201312/24161851-939516cddf5641cebff595426d350347.png" alt="" data-mce-src="http://images.cnitblog.com/blog/302948/201312/24161851-939516cddf5641cebff595426d350347.png" /></p><p><span style="background-color: #ffff00;" data-mce-style="background-color: #ffff00;"><strong>?木有发觉QVisitor的Id也变?了,q个其实它默认映了Website的IDQ因为SQL语句查询出来的结?个ID都是变成2了,有h会问?什么不?呢,因ؓ他默认匹配第一个如果你把Website.Id与Visit.Id的位|,怺换下׃发现l果又神奇的变了</strong></span></p><p><img src="http://images.cnitblog.com/blog/302948/201312/24162245-2b7abacabba343c0aa14173c614e9c46.png" alt="" data-mce-src="http://images.cnitblog.com/blog/302948/201312/24162245-2b7abacabba343c0aa14173c614e9c46.png" /></p><p>所以需要v个别名避免这U情况,q样你就会发现真相其实只有一个就是下面的Q?/p><p><img src="http://images.cnitblog.com/blog/302948/201312/24162524-d8a69b2d27174bb6809799f440d7b22e.png" alt="" data-mce-src="http://images.cnitblog.com/blog/302948/201312/24162524-d8a69b2d27174bb6809799f440d7b22e.png" /></p><p>?家可以看到其实多表处理resultMap的方式和单表是一致的Q也无非是吧列明与Javabean属性名成对应上去,可以看到在Website ?lt;resultMap>节点里面前台另外一个resultMapQ他是代表Visit实体所需要映的实体Q可以用以下方式进行关?/p><div><pre><span style="color: #0000ff;" data-mce-style="color: #0000ff;"><</span><span style="color: #800000;" data-mce-style="color: #800000;">association </span><span style="color: #ff0000;" data-mce-style="color: #ff0000;">property</span><span style="color: #0000ff;" data-mce-style="color: #0000ff;">="visitor"</span><span style="color: #ff0000;" data-mce-style="color: #ff0000;"> javaType</span><span style="color: #0000ff;" data-mce-style="color: #0000ff;">="Visitor"</span><span style="color: #ff0000;" data-mce-style="color: #ff0000;"> resultMap</span><span style="color: #0000ff;" data-mce-style="color: #0000ff;">="visitorRs"</span> <span style="color: #0000ff;" data-mce-style="color: #0000ff;">/></span></pre></div><p>其中的visitor是Website实体中的visit字段名,必须保证名称一_否则׃抛出<span style="background-color: #ffff00;" data-mce-style="background-color: #ffff00;"><strong>There is no getter for property named 'XXX' in 'class david.mybatis.model.Website'的异?/strong><span style="background-color: #ffffff;" data-mce-style="background-color: #ffffff;">Q这在上几章已经讲述了,</span></span><span style="background-color: #ffff00;" data-mce-style="background-color: #ffff00;"><span style="background-color: #ffffff;" data-mce-style="background-color: #ffffff;">?然如果你觉得不用嵌套resultMap也行Q嵌套也是出于其他地方可以还要用到这个配|那提炼出来的q程Q也是抽象出来的一U思想。具体 ?lt;resultMap>中的ID与Result可以从官|查扄应区别说明:http://mybatis.github.io /mybatis-3/sqlmap-xml.html#Result_Maps</span></span></p><p><span style="background-color: #ffff00;" data-mce-style="background-color: #ffff00;"><span style="background-color: #ffffff;" data-mce-style="background-color: #ffffff;">q样Q一个简单的多表联合查询出来啦~Q如果还有更加复杂的查询业务Ҏ在这个基上些许的变通修攏V?/span></span></p><p><span style="background-color: #ffff00;" data-mce-style="background-color: #ffff00;"><span style="background-color: #ffffff;" data-mce-style="background-color: #ffffff;">q章到此ؓ止啦Q下一章会l箋跟讲下,如果弄一个简单的Mybatis下的分页效果~^0^<br /></span></span></p></div><img src ="http://www.aygfsteel.com/davidjefiny/aggbug/407985.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/davidjefiny/" target="_blank">U烧狮子?/a> 2013-12-24 17:06 <a href="http://www.aygfsteel.com/davidjefiny/archive/2013/12/24/407985.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一步步学Mybatis-实现单表情况下的CRUD操作 Q?Q?/title><link>http://www.aygfsteel.com/davidjefiny/archive/2013/12/22/407895.html</link><dc:creator>U烧狮子?/dc:creator><author>U烧狮子?/author><pubDate>Sun, 22 Dec 2013 14:57:00 GMT</pubDate><guid>http://www.aygfsteel.com/davidjefiny/archive/2013/12/22/407895.html</guid><wfw:comment>http://www.aygfsteel.com/davidjefiny/comments/407895.html</wfw:comment><comments>http://www.aygfsteel.com/davidjefiny/archive/2013/12/22/407895.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.aygfsteel.com/davidjefiny/comments/commentRss/407895.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/davidjefiny/services/trackbacks/407895.html</trackback:ping><description><![CDATA[     摘要: 今天q一章要紧接上一讲中的东西,本章中创建基于单表操作的CRUD与GetList操作Q此CZ中以Visitor表ؓ范例Qؓ了创ZҎ试数据我们先弄个AddҎ吧l在上次的IVisitorOperation接口cMdaddQdeleteQupdateQquery与getList接口ҎQ如下所C:IVisitorOperation接口cCode highlighting produced by...  <a href='http://www.aygfsteel.com/davidjefiny/archive/2013/12/22/407895.html'>阅读全文</a><img src ="http://www.aygfsteel.com/davidjefiny/aggbug/407895.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/davidjefiny/" target="_blank">U烧狮子?/a> 2013-12-22 22:57 <a href="http://www.aygfsteel.com/davidjefiny/archive/2013/12/22/407895.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一步步学Mybatis-以接口操作的方式~程Q?Q?/title><link>http://www.aygfsteel.com/davidjefiny/archive/2013/12/22/407872.html</link><dc:creator>U烧狮子?/dc:creator><author>U烧狮子?/author><pubDate>Sun, 22 Dec 2013 06:37:00 GMT</pubDate><guid>http://www.aygfsteel.com/davidjefiny/archive/2013/12/22/407872.html</guid><wfw:comment>http://www.aygfsteel.com/davidjefiny/comments/407872.html</wfw:comment><comments>http://www.aygfsteel.com/davidjefiny/archive/2013/12/22/407872.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/davidjefiny/comments/commentRss/407872.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/davidjefiny/services/trackbacks/407872.html</trackback:ping><description><![CDATA[<div><p>  上一章节中,我们已经搭徏玩了最单的能够q行的HelloWorld环境Q这一章将把上章中的操作方式改Z接口的方式操?/p><p>我们可以发现在上一个章节中</p></div><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">    </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">static</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> testBasicQuery(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> id) {<br />        SqlSession session </span><span style="color: #000000; ">=</span><span style="color: #000000; "> MybatisUtils.getSqlSession();<br />        </span><span style="color: #0000FF; ">try</span><span style="color: #000000; "> {<br />            </span><span style="color: #008000; ">/*</span><span style="color: #008000; "><br />             * 此处的david.mybatis.demo.IVisitorOperation.basicQuery必须和下图中配置里面的namespace对应<br />             </span><span style="color: #008000; ">*/</span><span style="color: #000000; "><br />            Visitor visitor </span><span style="color: #000000; ">=</span><span style="color: #000000; "> (Visitor) session.selectOne(</span><span style="color: #000000; ">"</span><span style="color: #000000; ">david.mybatis.demo.IVisitorOperation.basicQuery</span><span style="color: #000000; ">"</span><span style="color: #000000; ">, id);<br />            MybatisUtils.closeSession(session);<br />            System.out.println(visitor);<br />        } </span><span style="color: #0000FF; ">catch</span><span style="color: #000000; "> (Exception e) {<br />            </span><span style="color: #008000; ">//</span><span style="color: #008000; "> TODO: handle exception</span><span style="color: #008000; "><br /></span><span style="color: #000000; ">        }<br />    }</span></div><br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008000; "><!--</span><span style="color: #008000; "> 此处namespace对应的就是你所传的String参数 </span><span style="color: #008000; ">--></span><span style="color: #000000; "><br /></span><span style="color: #0000FF; "><</span><span style="color: #800000; ">mapper </span><span style="color: #FF0000; ">namespace</span><span style="color: #0000FF; ">="david.mybatis.demo.IVisitorOperation"</span><span style="color: #0000FF; ">></span><span style="color: #000000; "><br /></span><span style="color: #008000; "><!--</span><span style="color: #008000; "> 此处的resultType是对应刚刚你在typeAlias节点里面规定的别?nbsp;</span><span style="color: #008000; ">--></span><span style="color: #000000; "><br />    </span><span style="color: #0000FF; "><</span><span style="color: #800000; ">select </span><span style="color: #FF0000; ">id</span><span style="color: #0000FF; ">="basicQuery"</span><span style="color: #FF0000; "> parameterType</span><span style="color: #0000FF; ">="int"</span><span style="color: #FF0000; "> resultType</span><span style="color: #0000FF; ">="Visitor"</span><span style="color: #0000FF; ">></span><span style="color: #000000; "><br />        select * from visitor where id=#{id} and<br />        Status>0 order by Id<br />    </span><span style="color: #0000FF; "></</span><span style="color: #800000; ">select</span><span style="color: #0000FF; ">></span><span style="color: #000000; "><br /></span><span style="color: #0000FF; "></</span><span style="color: #800000; ">mapper</span><span style="color: #0000ff;">></span></div><div><p>  q样其实在真正的开发过E中如果两边的名字一不小心没有对应上Q就会出现异常。ؓ了避免这L情况我们可以采取接口的方式来q行相应的操作,下面我们来修改这D东ѝ?/p><p>首先我们在包名ؓdavid.mybatis.demo的下面新Z个IVisitOperationc,表示今后要操作数据库所有方法的接口Q如下所C:</p><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #0000FF; ">package</span><span style="color: #000000; "> david.mybatis.demo;<br /><br /></span><span style="color: #0000FF; ">import</span><span style="color: #000000; "> java.util.List;<br /><br /></span><span style="color: #0000FF; ">import</span><span style="color: #000000; "> david.mybatis.model.PagenateArgs;<br /></span><span style="color: #0000FF; ">import</span><span style="color: #000000; "> david.mybatis.model.Visitor;<br /><br /></span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">interface</span><span style="color: #000000; "> IVisitorOperation {    <br />    </span><span style="color: #008000; ">/*</span><span style="color: #008000; "><br />     * 基础查询<br />     </span><span style="color: #008000; ">*/</span><span style="color: #000000; "><br />    </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> Visitor basicQuery(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> id);<br />}</span></div>修改操作方式<br /><div style="background-color: #eeeeee; font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #000000; ">    </span><span style="color: #0000FF; ">public</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">static</span><span style="color: #000000; "> </span><span style="color: #0000FF; ">void</span><span style="color: #000000; "> testBasicQueryByInterfaceWay(</span><span style="color: #0000FF; ">int</span><span style="color: #000000; "> id) {<br />        SqlSession session </span><span style="color: #000000; ">=</span><span style="color: #000000; "> MybatisUtils.getSqlSession();<br />        </span><span style="color: #0000FF; ">try</span><span style="color: #000000; "> {<br />            IVisitorOperation vOperation </span><span style="color: #000000; ">=</span><span style="color: #000000; "> session.getMapper(IVisitorOperation.</span><span style="color: #0000FF; ">class</span><span style="color: #000000; ">);<br />            Visitor visitor </span><span style="color: #000000; ">=</span><span style="color: #000000; "> vOperation.basicQuery(id);<br />            MybatisUtils.closeSession(session);<br />            System.out.println(visitor);<br />        } </span><span style="color: #0000FF; ">catch</span><span style="color: #000000; "> (Exception e) {<br /></span><div>            e.printStackTrace();</div><span style="color: #008000;"></span><span style="color: #000000; ">        }<br />    }</span></div></div><div><p>q样大功告成了Q这h们就不必为手动书写方法名可能D的不匚w而烦g?/p><p>下一章将l箋讲述Z单表情况下的CRUD操作Q我会尽快整理更新~^0^</p></div><img src ="http://www.aygfsteel.com/davidjefiny/aggbug/407872.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/davidjefiny/" target="_blank">U烧狮子?/a> 2013-12-22 14:37 <a href="http://www.aygfsteel.com/davidjefiny/archive/2013/12/22/407872.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>一步步学Mybatis-搭徏最单的开发环?开(1Q?http://www.aygfsteel.com/davidjefiny/archive/2013/12/22/Mybatis.htmlU烧狮子?/dc:creator>U烧狮子?/author>Sun, 22 Dec 2013 04:23:00 GMThttp://www.aygfsteel.com/davidjefiny/archive/2013/12/22/Mybatis.htmlhttp://www.aygfsteel.com/davidjefiny/comments/407863.htmlhttp://www.aygfsteel.com/davidjefiny/archive/2013/12/22/Mybatis.html#Feedback5http://www.aygfsteel.com/davidjefiny/comments/commentRss/407863.htmlhttp://www.aygfsteel.com/davidjefiny/services/trackbacks/407863.html

  最q抽I学习了Mybatisq个框架Q在学习的过E中也找了很多的文章Q个人感觉官|上的东西太多太杂,不适合许多希望一步步快速上手的朋友们,当然觉得查阅问题的时候可以直接通过官网找还比较快或者是StackOverflowQ鉴于此原因把自己想把自己学习过E中的经验留作笔C供分享参考之用,量绕弯\。因为想直接了解Mybatis的用方式,而网上有许多学习文章是Mybatis与Spring的结合范例,或者说直接在Web Project目下创立的范例Q感觉对于只是纯_Ҏ了解那个东西怎么使用的朋友应该不需要那么多附加的条Ӟ所以本pd中直接用最单的Java Project作范例演C?/p>

  什么是MybatisQ前wiBatisQ个人没用过Q所以没什么发a权)Q引q官|的原意来说QMybatis是支持普通SQL查询Q可以更单直接的操作SQLQ存储过E和高映射的一U优U的持久层框架Q用它基本可以消除所有的JDBC大麦和参数的手工讄以及l果集的索,其实个h使用下来感觉Q其实主要工作都是在配置XML或者注解上Q然后将接口和Java的POJOQ普通Java对象映射成数据库的记录)Q个人没用过Java的HbQ所以对于两者之间的差异性也没权限发表意见,我相信各个事物的产生L它自q目的?/p>

  q段旉学习下来Q其实对Mybatis来说主要的过E无法是以下几步

  1. 从XML配置文g中获取SessionFactoryQ然后由SessionFactory产生相应的Session?/p>

  2. 是用Session对象对业务数据完成相应的CRUD操作Q增删改查)和相应的事务控制?/p>

  3. 使用完毕后关闭相应的SessionQ以免过度占用资?/p>

  4. 使用配置相应的Mapper xml文gq行业务实体的JavaBean与数据库表之间做相应的Map操作

     

      战前准备Q?/p>

  1. 开发环境Eclipse JavaEE IDEQJDK 1.6Q数据库mysql 5.5

  2. 下蝲相应Jar包,以备后用

    mybatis-3.2.3.zip 解压后拿?mybatis-3.2.3.jarQ?> 下蝲地址Q?http://code.google.com/p/mybatis/ QMybatis核心包)

    mybatis-generator-core-1.3.1.jar => 下蝲地址Q?http://code.google.com/p/mybatis/wiki/Generator QMybatis自动生成配置文g包)

    mysql-connector-java-5.1.26-bin.jar => 下蝲地址Q?a data-mce->http://dev.mysql.com/downloads/connector/j/ QMysql 的jdbc驱动包)

  

  接下来大家可以再Eclipse下面Z个名为MybatisDemo的Java Project目Q按照如下图中所C新建相应的包结构和文g夹结构,其中config与mapper分别为文件夹Q?/p>

  包david.mybatis.demo与包david.mybatis.model下分别存攄应的demoq行E序与Javabean对象Qlib文g夹下存放刚刚下蝲的那几个W三方jar包?/p>

            

  

  建完下面的目录,我们可以d相应的Jar包,如下?/p>

  

   完成后,执行下面SQLQ徏立DEMO所需的表l构Q分别有3张表QVisitorQ访问者表Q,WebsiteQ网站表Q,ChannelQ频道表Q 

SQL

 

       所有这些都完成后,我们p开始动手啦~

 

       像开头说的,Mybatis的所有配|都源于一份XML配置文gQ我们需要在config文g夹下Q新建名为mybatis_demo_config.xml的配|文Ӟq一份东西就是我们后面所需要操作的核心之一?/p>

       在配|这个文?span style="background-color: #ffff00;" data-mce-style="background-color: #ffff00;">千万要注?/strong><configuration>节点内的元素都是有层U顺?/strong>的要求的Q不能够随意更换ơ序Q否则在加蝲xml配置文g的时候会出现异常而导致后l操作不成功?/span>

具体的节点说明大家可以查?a data-mce->http://mybatis.github.io/mybatis-3/zh/configuration.html#Q这里只说比较常用的节点QtypeAliasesQenvironmentsQmappers?/span>

       1. typeAliases => 别名节点Q可以通过讄q个节点的属性,q样配置文g中其他需要实体名字的地方都可以用此别名而不是完全限定名Q例?<typeAlias type="david.mybatis.model.Visitor" alias="Visitor" />

       2. environments => 环境节点Q配|数据连接相关的信息

       3. mappers => 配置SQL映射语句?/p>

       最单的配置如下Q?br />

XML配置

在包david.mybatis.demo下面新徏一个名为MyBatisUtilsc,里面存放获取SqlSession与关闭SqlSession的方法,提炼出来方便多次复用?/p>

MybatisUtilsc?/span>

在包david.mybatis.model下面新徏一个名为Visitor的类Q用来作相应的OR Mapping?/p>

Visitc?/span>

在包david.mybatis.demo下面新徏一个VisitorMapper.xmlQ用来映相应SQL语句?/p>

q里要注意namespace=>david.mybatis.demo.IVisitorOperation一定要与对应这个包下面的实际文件名QIVisitorOperation否则无法成功加蝲相应的映文?/strong>

VisitorMapper配置

接下来运行下面的E序

基本查询

 

一个最单的执行l果出来啦

 

q算是Mybatispd的HelloWordQ下回会讲述关于使用接口的方式进行相应操作?/p>

]]>
վ֩ģ壺 ͤ| | | | ƽ| | | | | ƽ| | | Ϫ| лͨ| | | «| °Ͷ| ߷| ¡| ԣ| ֦| | | | | Ͻ| | | | Ԫ| | | пѷ| ʯ| ɽ| | | | Զ| |