Vi. loading the mapping file via the Mapper interface

Source: Internet
Author: User
<span id="Label3"></p><p><p>The mapping file is loaded via the mapper interface, which is important for the integration of the following SSM three Frameworks. So what is loading the mapping file via the mapper interface?</p></p><p><p>We first look at the previous practice, in the global configuration file Mybatis-configuration.xml through the <mappers> tag to load the mapping file, then if our project is large enough, there are many mapping files, do we each map file load it like this, This is certainly not possible, then we need to use the Mapper interface to load the mapping file</p></p><p><p>Previous Practice:</p></p><p><p>  </p></p><p><p>Improved practice: use the Mapper interface to load a mapping file</p></p>Back to top 1, define Usermapper interface <table border="0" cellspacing="0" cellpadding="0"> <tbody> <tr> <td class="gutter">12345678910111213141516171819202122</td> <td class="code"><code class="java keyword"><code class="java keyword">package</code></code><code class="java plain"><code class="java plain">com.ys.mapper;</code></code><code class="java keyword"><code class="java keyword">import</code></code><code class="java plain"><code class="java plain">org.apache.ibatis.annotations.Delete;</code></code><code class="java keyword"><code class="java keyword">import</code></code><code class="java plain"><code class="java plain">org.apache.ibatis.annotations.Insert;</code></code><code class="java keyword"><code class="java keyword">import</code></code><code class="java plain"><code class="java plain">org.apache.ibatis.annotations.Select;</code></code><code class="java keyword"><code class="java keyword">import</code></code><code class="java plain"><code class="java plain">org.apache.ibatis.annotations.Update;</code></code><code class="java keyword"><code class="java keyword">import</code></code><code class="java plain"><code class="java plain">com.ys.po.User;</code></code><code class="java keyword"><code class="java keyword">public</code></code><code class="java keyword"><code class="java keyword">interface</code></code><code class="java plain"><code class="java plain">UserMapper {</code></code><code class="java spaces"><code class="java spaces">    </code></code><code class="java comments"><code class="java comments">//根据 id 查询 user 表数据</code></code><code class="java spaces"><code class="java spaces">    </code></code><code class="java keyword"><code class="java keyword">public</code></code><code class="java plain"><code class="java plain">User selectUserById(</code></code><code class="java keyword"><code class="java keyword">int</code></code><code class="java plain"><code class="java plain">id) </code></code><code class="java keyword"><code class="java keyword">throws</code></code><code class="java plain"><code class="java plain">Exception;</code></code><code class="java spaces"><code class="java spaces">    </code></code><code class="java comments"><code class="java comments">//向 user 表插入一条数据</code></code><code class="java spaces"><code class="java spaces">    </code></code><code class="java keyword"><code class="java keyword">public</code></code><code class="java keyword"><code class="java keyword">void</code></code><code class="java plain"><code class="java plain">insertUser(User user) </code></code><code class="java keyword"><code class="java keyword">throws</code></code> <code class="java plain"><code class="java plain">Exception;</code></code><code class="java spaces"><code class="java spaces">    </code></code><code class="java spaces"><code class="java spaces">    </code></code><code class="java comments"><code class="java comments">//根据 id 修改 user 表数据</code></code><code class="java spaces"><code class="java spaces">    </code></code><code class="java keyword"><code class="java keyword">public</code></code><code class="java keyword"><code class="java keyword">void</code></code><code class="java plain"><code class="java plain">updateUserById(User user) </code></code><code class="java keyword"><code class="java keyword">throws</code></code><code class="java plain"><code class="java plain">Exception;</code></code><code class="java spaces"><code class="java spaces">    </code></code><code class="java spaces"><code class="java spaces">    </code></code><code class="java comments"><code class="java comments">//根据 id 删除 user 表数据</code></code><code class="java spaces"><code class="java spaces">    </code></code><code class="java keyword"><code class="java keyword">public</code></code><code class="java keyword"><code class="java keyword">void</code></code><code class="java plain"><code class="java plain">deleteUserById(</code></code><code class="java keyword"><code class="java keyword">int</code></code><code class="java plain"><code class="java plain">id) </code></code><code class="java keyword"><code class="java keyword">throws</code></code><code class="java plain"><code class="java plain">Exception;</code></code><code class="java plain"><code class="java plain">}</code></code></td> </tr> </tbody> </table><p><p></p></p>Back to top 2, load the Usermapper interface in the global profile Mybatis-configuration.xml file (single load map File)<p><p></p></p><p><p></p></p>Back to top 3, write Usermapper.xml file <table border="0" cellspacing="0" cellpadding="0"> <tbody> <tr> <td class="gutter">1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 6667</td> <td class="code"><code class="java plain"><code class="java plain"><?xml version=</code></code><code class="java string"><code class="java string">"1.0"</code></code> <code class="java plain"><code class="java plain">encoding=</code></code><code class="java string"><code class="java string">"UTF-8"</code></code><code class="java plain"><code class="java plain">?></code></code><code class="java plain"><code class="java plain"><!DOCTYPE mapper</code></code><code class="java spaces"><code class="java spaces">  </code></code><code class="java plain"><code class="java plain">PUBLIC </code></code><code class="java string"><code class="java string">"-//mybatis.org//DTD Mapper 3.0//EN"</code></code><code class="java spaces"><code class="java spaces">  </code></code><code class="java string"><code class="java string">"http://mybatis.org/dtd/mybatis-3-mapper.dtd"</code></code><code class="java plain"><code class="java plain">></code></code><code class="java plain"><code class="java plain"><mapper namespace=</code></code><code class="java string"><code class="java string">"com.ys.mapper.UserMapper"</code></code><code class="java plain"><code class="java plain">></code></code><code class="java spaces"><code class="java spaces">    </code></code> <code class="java spaces"><code class="java spaces">    </code></code><code class="java plain"><code class="java plain"><!-- 根据 id 查询 user 表中的数据</code></code><code class="java spaces"><code class="java spaces">       </code></code><code class="java plain"><code class="java plain">id:唯一标识符,此文件中的id值不能重复</code></code><code class="java spaces"><code class="java spaces">       </code></code><code class="java plain"><code class="java plain">resultType:返回值类型,一条数据库记录也就对应实体类的一个对象</code></code><code class="java spaces"><code class="java spaces">       </code></code><code class="java plain"><code class="java plain">parameterType:参数类型,也就是查询条件的类型</code></code><code class="java spaces"><code class="java spaces">    </code></code><code class="java plain"><code class="java plain">--></code></code><code class="java spaces"><code class="java spaces">    </code></code><code class="java plain"><code class="java plain"><select id=</code></code><code class="java string"><code class="java string">"selectUserById"</code></code><code class="java spaces"><code class="java spaces">            </code></code><code class="java plain"><code class="java plain">resultType=</code></code><code class="java string"><code class="java string">"com.ys.po.User"</code></code><code class="java plain"><code class="java plain">parameterType=</code></code><code class="java string"><code class="java string">"int"</code></code><code class="java plain"><code class="java plain">></code></code><code class="java spaces"><code class="java spaces">        </code></code><code class="java plain"><code class="java plain"><!-- 这里和普通的sql 查询语句差不多,后面的 #{id}表示占位符,里面不一定要写id,写啥都可以,但是不要空着 --></code></code><code class="java spaces"><code class="java spaces">        </code></code><code class="java plain"><code class="java plain">select * from user where id = #{id1}</code></code><code class="java spaces"><code class="java spaces">    </code></code><code class="java plain"><code class="java plain"></select></code></code><code class="java spaces"><code class="java spaces">    </code></code> <code class="java spaces"><code class="java spaces">    </code></code><code class="java spaces"><code class="java spaces">    </code></code><code class="java spaces"><code class="java spaces">    </code></code><code class="java plain"><code class="java plain"><!-- 根据 id 更新 user 表的数据 --></code></code><code class="java spaces"><code class="java spaces">    </code></code><code class="java plain"><code class="java plain"><update id=</code></code><code class="java string"><code class="java string">"updateUserById"</code></code><code class="java plain"><code class="java plain">parameterType=</code></code><code class="java string"><code class="java string">"com.ys.po.User"</code></code><code class="java plain"><code class="java plain">></code></code><code class="java spaces"><code class="java spaces">        </code></code><code class="java plain"><code class="java plain">update user u</code></code><code class="java spaces"><code class="java spaces">            </code></code><code class="java plain"><code class="java plain"><!-- <set></code></code><code class="java spaces"><code class="java spaces">                </code></code><code class="java plain"><code class="java plain"><</code></code><code class="java keyword"><code class="java keyword">if</code></code><code class="java plain"><code class="java plain">test=</code></code><code class="java string"><code class="java string">"username != null and username != ‘‘"</code></code><code class="java plain"><code class="java plain">></code></code><code class="java spaces"><code class="java spaces">                    </code></code><code class="java plain"><code class="java plain">u.username = #{username},</code></code><code class="java spaces"><code class="java spaces">                </code></code><code class="java plain"><code class="java plain"></</code></code><code class="java keyword"><code class="java keyword">if</code></code><code class="java plain"><code class="java plain">></code></code><code class="java spaces"><code class="java spaces">                </code></code><code class="java plain"><code class="java plain"><</code></code><code class="java keyword"><code class="java keyword">if</code></code><code class="java plain"><code class="java plain">test=</code></code><code class="java string"><code class="java string">"sex != null and sex != ‘‘"</code></code><code class="java plain"><code class="java plain">></code></code><code class="java spaces"><code class="java spaces">                    </code></code><code class="java plain"><code class="java plain">u.sex = #{sex}</code></code><code class="java spaces"><code class="java spaces">                </code></code><code class="java plain"><code class="java plain"></</code></code><code class="java keyword"><code class="java keyword">if</code></code><code class="java plain"><code class="java plain">></code></code><code class="java spaces"><code class="java spaces">            </code></code><code class="java plain"><code class="java plain"></set> --></code></code><code class="java spaces"><code class="java spaces">            </code></code><code class="java plain"><code class="java plain"><trim prefix=</code></code><code class="java string"><code class="java string">"set"</code></code><code class="java plain"><code class="java plain">suffixOverrides=</code></code><code class="java string"><code class="java string">","</code></code><code class="java plain"><code class="java plain">></code></code><code class="java spaces"><code class="java spaces">                </code></code><code class="java plain"><code class="java plain"><</code></code><code class="java keyword"><code class="java keyword">if</code></code><code class="java plain"><code class="java plain">test=</code></code><code class="java string"><code class="java string">"username != null and username != ‘‘"</code></code><code class="java plain"><code class="java plain">></code></code><code class="java spaces"><code class="java spaces">                    </code></code><code class="java plain"><code class="java plain">u.username = #{username},</code></code><code class="java spaces"><code class="java spaces">                </code></code><code class="java plain"><code class="java plain"></</code></code><code class="java keyword"><code class="java keyword">if</code></code><code class="java plain"><code class="java plain">></code></code><code class="java spaces"><code class="java spaces">                </code></code><code class="java plain"><code class="java plain"><</code></code><code class="java keyword"><code class="java keyword">if</code></code><code class="java plain"><code class="java plain">test=</code></code><code class="java string"><code class="java string">"sex != null and sex != ‘‘"</code></code><code class="java plain"><code class="java plain">></code></code><code class="java spaces"><code class="java spaces">                    </code></code><code class="java plain"><code class="java plain">u.sex = #{sex},</code></code><code class="java spaces"><code class="java spaces">                </code></code><code class="java plain"><code class="java plain"></</code></code><code class="java keyword"><code class="java keyword">if</code></code><code class="java plain"><code class="java plain">></code></code><code class="java spaces"><code class="java spaces">            </code></code><code class="java plain"><code class="java plain"></trim></code></code><code class="java spaces"><code class="java spaces">        </code></code><code class="java spaces"><code class="java spaces">         </code></code><code class="java plain"><code class="java plain">where id=#{id}</code></code><code class="java spaces"><code class="java spaces">    </code></code><code class="java plain"><code class="java plain"></update></code></code><code class="java spaces"><code class="java spaces">    </code></code><code class="java spaces"><code class="java spaces">    </code></code><code class="java spaces"><code class="java spaces">    </code></code><code class="java plain"><code class="java plain"><!-- 向 user 表插入一条数据 --></code></code><code class="java spaces"><code class="java spaces">    </code></code><code class="java plain"><code class="java plain"><insert id=</code></code><code class="java string"><code class="java string">"insertUser"</code></code><code class="java plain"><code class="java plain">parameterType=</code></code><code class="java string"><code class="java string">"com.ys.po.User"</code></code><code class="java plain"><code class="java plain">></code></code><code class="java spaces"><code class="java spaces">        </code></code><code class="java plain"><code class="java plain"><!-- 将插入的数据主键返回到 user 对象中</code></code><code class="java spaces"><code class="java spaces">             </code></code><code class="java plain"><code class="java plain">keyProperty:将查询到的主键设置到parameterType 指定到对象的那个属性</code></code><code class="java spaces"><code class="java spaces">             </code></code><code class="java plain"><code class="java plain">select LAST_INSERT_ID():查询上一次执行insert 操作返回的主键id值,只适用于自增主键</code></code><code class="java spaces"><code class="java spaces">             </code></code><code class="java plain"><code class="java plain">resultType:指定 select LAST_INSERT_ID() 的结果类型</code></code><code class="java spaces"><code class="java spaces">             </code></code><code class="java plain"><code class="java plain">order:AFTER,相对于 select LAST_INSERT_ID()操作的顺序</code></code><code class="java spaces"><code class="java spaces">         </code></code><code class="java plain"><code class="java plain">--></code></code><code class="java spaces"><code class="java spaces">        </code></code><code class="java plain"><code class="java plain"><selectKey keyProperty=</code></code><code class="java string"><code class="java string">"id"</code></code><code class="java plain"><code class="java plain">resultType=</code></code><code class="java string"><code class="java string">"int"</code></code><code class="java plain"><code class="java plain">order=</code></code><code class="java string"><code class="java string">"AFTER"</code></code><code class="java plain"><code class="java plain">></code></code><code class="java spaces"><code class="java spaces">            </code></code><code class="java plain"><code class="java plain">select LAST_INSERT_ID()</code></code><code class="java spaces"><code class="java spaces">        </code></code><code class="java plain"><code class="java plain"></selectKey></code></code><code class="java spaces"><code class="java spaces">        </code></code><code class="java plain"><code class="java plain">insert into user(username,sex,birthday,address)</code></code><code class="java spaces"><code class="java spaces">            </code></code><code class="java plain"><code class="java plain">value(#{username},#{sex},#{birthday},#{address})</code></code><code class="java spaces"><code class="java spaces">    </code></code><code class="java plain"><code class="java plain"></insert></code></code><code class="java spaces"><code class="java spaces">    </code></code><code class="java spaces"><code class="java spaces">    </code></code><code class="java spaces"><code class="java spaces">    </code></code><code class="java spaces"><code class="java spaces">    </code></code><code class="java plain"><code class="java plain"><!-- 根据 id 删除 user 表的数据 --></code></code><code class="java spaces"><code class="java spaces">    </code></code><code class="java plain"><code class="java plain"><delete id=</code></code><code class="java string"><code class="java string">"deleteUserById"</code></code><code class="java plain"><code class="java plain">parameterType=</code></code><code class="java string"><code class="java string">"int"</code></code><code class="java plain"><code class="java plain">></code></code><code class="java spaces"><code class="java spaces">        </code></code><code class="java plain"><code class="java plain">delete from user where id=#{id}</code></code><code class="java spaces"><code class="java spaces">    </code></code><code class="java plain"><code class="java plain"></delete></code></code><code class="java spaces"><code class="java spaces">    </code></code><code class="java plain"><code class="java plain"></mapper></code></code></td> </tr> </tbody> </table><p><p>  </p></p>Back to top 4, test <table border="0" cellspacing="0" cellpadding="0"> <tbody> <tr> <td class="gutter">123456789</td> <td class="code"><code class="java comments"><code class="java comments">//根据id查询user表数据</code></code><code class="java spaces"><code class="java spaces">    </code></code><code class="java color1"><code class="java color1">@Test</code></code><code class="java spaces"><code class="java spaces">    </code></code><code class="java keyword"><code class="java keyword">public</code></code><code class="java keyword"><code class="java keyword">void</code></code><code class="java plain"><code class="java plain">testSelectUserById() </code></code><code class="java keyword"><code class="java keyword">throws</code></code><code class="java plain"><code class="java plain">Exception{</code></code><code class="java spaces"><code class="java spaces">        </code></code><code class="java comments"><code class="java comments">//获取mapper接口</code></code><code class="java spaces"><code class="java spaces">        </code></code><code class="java plain"><code class="java plain">UserMapper userMapper = session.getMapper(UserMapper.</code></code><code class="java keyword"><code class="java keyword">class</code></code><code class="java plain"><code class="java plain">);</code></code><code class="java spaces"><code class="java spaces">        </code></code><code class="java plain"><code class="java plain">User user = userMapper.selectUserById(</code></code><code class="java value"><code class="java value">1</code></code><code class="java plain"><code class="java plain">);</code></code><code class="java spaces"><code class="java spaces">        </code></code><code class="java plain"><code class="java plain">System.out.println(user);</code></code><code class="java spaces"><code class="java spaces">        </code></code><code class="java plain"><code class="java plain">session.close();</code></code><code class="java spaces"><code class="java spaces">    </code></code><code class="java plain"><code class="java plain">}</code></code></td> </tr> </tbody> </table><p><p>  </p></p><p><p></p></p><p><p></p></p>Back to top 5, bulk load Map file <table border="0" cellspacing="0" cellpadding="0"> <tbody> <tr> <td class="gutter">123456</td> <td class="code"><code class="java plain"><mappers></code><code class="java spaces">       </code><code class="java plain"><!--批量加载mapper</code><code class="java spaces">          </code><code class="java plain">指定 mapper 接口的包名,mybatis自动扫描包下的mapper接口进行加载</code><code class="java spaces">         </code><code class="java plain">--></code><code class="java spaces">       </code><code class="java plain"><</code><code class="java keyword">package</code><code class="java plain">name=</code><code class="java string">"com.ys.mapper"</code><code class="java plain">/></code><code class="java plain"></mappers></code></td> </tr> </tbody> </table><p><p>  </p></p><p><p> </p></p>Back to top 6, note<p><p>1. The Usermapper interface must have the same name as the Usermapper.xml file and under the same package, that is, the namespace in the Usermapper.xml file is the full class name of the Usermapper interface.</p></p><p><p>  </p></p><p><p></p></p><p><p>2. The method name in the Usermapper interface is consistent with the ID defined in the Usermapper.xml file</p></p><p><p></p></p><p><p>3, Usermapper Interface input parameter type to be consistent with the parametertype defined in the Usermapper.xml</p></p><p><p></p></p><p><p>4. Usermapper Interface returns data type consistent with Resulttype defined in Usermapper.xml</p></p><p><p>Vi. loading the mapping file via the Mapper interface</p></p></span>

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.