超详细的Mybatis注解开发整理(二)

使用注解实现一对一复杂关系映射及立即加载

需求:加载账户信息时并且加载该账户的用户信息,根据情况可实现立即加载。(注解方式实现)

添加 User 实体类及 Account 实体类

User:

<span style="color:#000000"><code class="language-java"><span style="color:#c678dd">package</span> com<span style="color:#999999">.</span>keafmd<span style="color:#999999">.</span>domain<span style="color:#999999">;</span>

<span style="color:#c678dd">import</span> java<span style="color:#999999">.</span>io<span style="color:#999999">.</span>Serializable<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> java<span style="color:#999999">.</span>util<span style="color:#999999">.</span>Date<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> java<span style="color:#999999">.</span>util<span style="color:#999999">.</span>List<span style="color:#999999">;</span>

<span style="color:#5c6370">/**
 * Keafmd
 *
 * @ClassName: User
 * @Description: User实体类
 * @author: 牛哄哄的柯南
 * @date: 2021-02-16 20:28
 */</span>
<span style="color:#c678dd">public</span> <span style="color:#c678dd">class</span> User <span style="color:#c678dd">implements</span> Serializable <span style="color:#999999">{</span>
    <span style="color:#c678dd">private</span> Integer userId<span style="color:#999999">;</span>
    <span style="color:#c678dd">private</span> String userName<span style="color:#999999">;</span>
    <span style="color:#c678dd">private</span> String userAddress<span style="color:#999999">;</span>
    <span style="color:#c678dd">private</span> String userSex<span style="color:#999999">;</span>
    <span style="color:#c678dd">private</span> Date userBirthday<span style="color:#999999">;</span>

    <span style="color:#c678dd">public</span> Integer <span style="color:#61aeee">getUserId</span><span style="color:#999999">(</span><span style="color:#999999">)</span> <span style="color:#999999">{</span>
        <span style="color:#c678dd">return</span> userId<span style="color:#999999">;</span>
    <span style="color:#999999">}</span>

    <span style="color:#c678dd">public</span> <span style="color:#c678dd">void</span> <span style="color:#61aeee">setUserId</span><span style="color:#999999">(</span>Integer userId<span style="color:#999999">)</span> <span style="color:#999999">{</span>
        <span style="color:#c678dd">this</span><span style="color:#999999">.</span>userId <span style="color:#669900">=</span> userId<span style="color:#999999">;</span>
    <span style="color:#999999">}</span>

    <span style="color:#c678dd">public</span> String <span style="color:#61aeee">getUserName</span><span style="color:#999999">(</span><span style="color:#999999">)</span> <span style="color:#999999">{</span>
        <span style="color:#c678dd">return</span> userName<span style="color:#999999">;</span>
    <span style="color:#999999">}</span>

    <span style="color:#c678dd">public</span> <span style="color:#c678dd">void</span> <span style="color:#61aeee">setUserName</span><span style="color:#999999">(</span>String userName<span style="color:#999999">)</span> <span style="color:#999999">{</span>
        <span style="color:#c678dd">this</span><span style="color:#999999">.</span>userName <span style="color:#669900">=</span> userName<span style="color:#999999">;</span>
    <span style="color:#999999">}</span>

    <span style="color:#c678dd">public</span> String <span style="color:#61aeee">getUserAddress</span><span style="color:#999999">(</span><span style="color:#999999">)</span> <span style="color:#999999">{</span>
        <span style="color:#c678dd">return</span> userAddress<span style="color:#999999">;</span>
    <span style="color:#999999">}</span>

    <span style="color:#c678dd">public</span> <span style="color:#c678dd">void</span> <span style="color:#61aeee">setUserAddress</span><span style="color:#999999">(</span>String userAddress<span style="color:#999999">)</span> <span style="color:#999999">{</span>
        <span style="color:#c678dd">this</span><span style="color:#999999">.</span>userAddress <span style="color:#669900">=</span> userAddress<span style="color:#999999">;</span>
    <span style="color:#999999">}</span>

    <span style="color:#c678dd">public</span> String <span style="color:#61aeee">getUserSex</span><span style="color:#999999">(</span><span style="color:#999999">)</span> <span style="color:#999999">{</span>
        <span style="color:#c678dd">return</span> userSex<span style="color:#999999">;</span>
    <span style="color:#999999">}</span>

    <span style="color:#c678dd">public</span> <span style="color:#c678dd">void</span> <span style="color:#61aeee">setUserSex</span><span style="color:#999999">(</span>String userSex<span style="color:#999999">)</span> <span style="color:#999999">{</span>
        <span style="color:#c678dd">this</span><span style="color:#999999">.</span>userSex <span style="color:#669900">=</span> userSex<span style="color:#999999">;</span>
    <span style="color:#999999">}</span>

    <span style="color:#c678dd">public</span> Date <span style="color:#61aeee">getUserBirthday</span><span style="color:#999999">(</span><span style="color:#999999">)</span> <span style="color:#999999">{</span>
        <span style="color:#c678dd">return</span> userBirthday<span style="color:#999999">;</span>
    <span style="color:#999999">}</span>

    <span style="color:#c678dd">public</span> <span style="color:#c678dd">void</span> <span style="color:#61aeee">setUserBirthday</span><span style="color:#999999">(</span>Date userBirthday<span style="color:#999999">)</span> <span style="color:#999999">{</span>
        <span style="color:#c678dd">this</span><span style="color:#999999">.</span>userBirthday <span style="color:#669900">=</span> userBirthday<span style="color:#999999">;</span>
    <span style="color:#999999">}</span>

    <span style="color:#999999">@Override</span>
    <span style="color:#c678dd">public</span> String <span style="color:#61aeee">toString</span><span style="color:#999999">(</span><span style="color:#999999">)</span> <span style="color:#999999">{</span>
        <span style="color:#c678dd">return</span> <span style="color:#669900">"User{"</span> <span style="color:#669900">+</span>
                <span style="color:#669900">"userId="</span> <span style="color:#669900">+</span> userId <span style="color:#669900">+</span>
                <span style="color:#669900">", userName='"</span> <span style="color:#669900">+</span> userName <span style="color:#669900">+</span> <span style="color:#669900">'\''</span> <span style="color:#669900">+</span>
                <span style="color:#669900">", userAddress='"</span> <span style="color:#669900">+</span> userAddress <span style="color:#669900">+</span> <span style="color:#669900">'\''</span> <span style="color:#669900">+</span>
                <span style="color:#669900">", userSex='"</span> <span style="color:#669900">+</span> userSex <span style="color:#669900">+</span> <span style="color:#669900">'\''</span> <span style="color:#669900">+</span>
                <span style="color:#669900">", userBirthday="</span> <span style="color:#669900">+</span> userBirthday <span style="color:#669900">+</span>
                <span style="color:#669900">'}'</span><span style="color:#999999">;</span>
    <span style="color:#999999">}</span>
<span style="color:#999999">}</span>
</code></span>

Account:

<span style="color:#000000"><code class="language-java"><span style="color:#c678dd">package</span> com<span style="color:#999999">.</span>keafmd<span style="color:#999999">.</span>domain<span style="color:#999999">;</span>

<span style="color:#c678dd">import</span> java<span style="color:#999999">.</span>io<span style="color:#999999">.</span>Serializable<span style="color:#999999">;</span>

<span style="color:#5c6370">/**
 * Keafmd
 *
 * @ClassName: Account
 * @Description: 账户实体类
 * @author: 牛哄哄的柯南
 * @date: 2021-02-16 22:51
 */</span>
<span style="color:#c678dd">public</span> <span style="color:#c678dd">class</span> Account <span style="color:#c678dd">implements</span> Serializable <span style="color:#999999">{</span>

    <span style="color:#c678dd">private</span> Integer id<span style="color:#999999">;</span>
    <span style="color:#c678dd">private</span> Integer uid<span style="color:#999999">;</span>
    <span style="color:#c678dd">private</span> Double money<span style="color:#999999">;</span>

    <span style="color:#5c6370">//多对一(mybatis中称之为一对一)的映射,一个账户只能属于一个用户 *</span>
    <span style="color:#c678dd">private</span> User user<span style="color:#999999">;</span>

    <span style="color:#c678dd">public</span> User <span style="color:#61aeee">getUser</span><span style="color:#999999">(</span><span style="color:#999999">)</span> <span style="color:#999999">{</span>
        <span style="color:#c678dd">return</span> user<span style="color:#999999">;</span>
    <span style="color:#999999">}</span>

    <span style="color:#c678dd">public</span> <span style="color:#c678dd">void</span> <span style="color:#61aeee">setUser</span><span style="color:#999999">(</span>User user<span style="color:#999999">)</span> <span style="color:#999999">{</span>
        <span style="color:#c678dd">this</span><span style="color:#999999">.</span>user <span style="color:#669900">=</span> user<span style="color:#999999">;</span>
    <span style="color:#999999">}</span>

    <span style="color:#c678dd">public</span> Integer <span style="color:#61aeee">getId</span><span style="color:#999999">(</span><span style="color:#999999">)</span> <span style="color:#999999">{</span>
        <span style="color:#c678dd">return</span> id<span style="color:#999999">;</span>
    <span style="color:#999999">}</span>

    <span style="color:#c678dd">public</span> <span style="color:#c678dd">void</span> <span style="color:#61aeee">setId</span><span style="color:#999999">(</span>Integer id<span style="color:#999999">)</span> <span style="color:#999999">{</span>
        <span style="color:#c678dd">this</span><span style="color:#999999">.</span>id <span style="color:#669900">=</span> id<span style="color:#999999">;</span>
    <span style="color:#999999">}</span>

    <span style="color:#c678dd">public</span> Integer <span style="color:#61aeee">getUid</span><span style="color:#999999">(</span><span style="color:#999999">)</span> <span style="color:#999999">{</span>
        <span style="color:#c678dd">return</span> uid<span style="color:#999999">;</span>
    <span style="color:#999999">}</span>

    <span style="color:#c678dd">public</span> <span style="color:#c678dd">void</span> <span style="color:#61aeee">setUid</span><span style="color:#999999">(</span>Integer uid<span style="color:#999999">)</span> <span style="color:#999999">{</span>
        <span style="color:#c678dd">this</span><span style="color:#999999">.</span>uid <span style="color:#669900">=</span> uid<span style="color:#999999">;</span>
    <span style="color:#999999">}</span>

    <span style="color:#c678dd">public</span> Double <span style="color:#61aeee">getMoney</span><span style="color:#999999">(</span><span style="color:#999999">)</span> <span style="color:#999999">{</span>
        <span style="color:#c678dd">return</span> money<span style="color:#999999">;</span>
    <span style="color:#999999">}</span>

    <span style="color:#c678dd">public</span> <span style="color:#c678dd">void</span> <span style="color:#61aeee">setMoney</span><span style="color:#999999">(</span>Double money<span style="color:#999999">)</span> <span style="color:#999999">{</span>
        <span style="color:#c678dd">this</span><span style="color:#999999">.</span>money <span style="color:#669900">=</span> money<span style="color:#999999">;</span>
    <span style="color:#999999">}</span>

    <span style="color:#999999">@Override</span>
    <span style="color:#c678dd">public</span> String <span style="color:#61aeee">toString</span><span style="color:#999999">(</span><span style="color:#999999">)</span> <span style="color:#999999">{</span>
        <span style="color:#c678dd">return</span> <span style="color:#669900">"Account{"</span> <span style="color:#669900">+</span>
                <span style="color:#669900">"id="</span> <span style="color:#669900">+</span> id <span style="color:#669900">+</span>
                <span style="color:#669900">", uid="</span> <span style="color:#669900">+</span> uid <span style="color:#669900">+</span>
                <span style="color:#669900">", money="</span> <span style="color:#669900">+</span> money <span style="color:#669900">+</span>
                <span style="color:#669900">'}'</span><span style="color:#999999">;</span>
    <span style="color:#999999">}</span>
<span style="color:#999999">}</span>
</code></span>

添加账户的持久层接口并使用注解配置

IAccountDao:

<span style="color:#000000"><code class="language-java"><span style="color:#c678dd">package</span> com<span style="color:#999999">.</span>keafmd<span style="color:#999999">.</span>dao<span style="color:#999999">;</span>

<span style="color:#c678dd">import</span> com<span style="color:#999999">.</span>keafmd<span style="color:#999999">.</span>domain<span style="color:#999999">.</span>Account<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> org<span style="color:#999999">.</span>apache<span style="color:#999999">.</span>ibatis<span style="color:#999999">.</span>annotations<span style="color:#999999">.</span>One<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> org<span style="color:#999999">.</span>apache<span style="color:#999999">.</span>ibatis<span style="color:#999999">.</span>annotations<span style="color:#999999">.</span>Result<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> org<span style="color:#999999">.</span>apache<span style="color:#999999">.</span>ibatis<span style="color:#999999">.</span>annotations<span style="color:#999999">.</span>Results<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> org<span style="color:#999999">.</span>apache<span style="color:#999999">.</span>ibatis<span style="color:#999999">.</span>annotations<span style="color:#999999">.</span>Select<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> org<span style="color:#999999">.</span>apache<span style="color:#999999">.</span>ibatis<span style="color:#999999">.</span>mapping<span style="color:#999999">.</span>FetchType<span style="color:#999999">;</span>

<span style="color:#c678dd">import</span> java<span style="color:#999999">.</span>util<span style="color:#999999">.</span>List<span style="color:#999999">;</span>

<span style="color:#5c6370">/**
 * Keafmd
 *
 * @ClassName: IAccountDao
 * @Description:
 * @author: 牛哄哄的柯南
 * @date: 2021-02-16 22:54
 */</span>

<span style="color:#c678dd">public</span> <span style="color:#c678dd">interface</span> IAccountDao <span style="color:#999999">{</span>

    <span style="color:#5c6370">/**
     * 查询所有账户,并且获取每个账户下的用户信息,一对一
     * @return
     */</span>
    <span style="color:#999999">@Select</span><span style="color:#999999">(</span><span style="color:#669900">"select * from account"</span><span style="color:#999999">)</span>
    <span style="color:#999999">@Results</span><span style="color:#999999">(</span>id<span style="color:#669900">=</span><span style="color:#669900">"accountMap"</span><span style="color:#999999">,</span>value <span style="color:#669900">=</span> <span style="color:#999999">{</span>
            <span style="color:#999999">@Result</span><span style="color:#999999">(</span>id <span style="color:#669900">=</span> <span style="color:#56b6c2">true</span><span style="color:#999999">,</span>column <span style="color:#669900">=</span> <span style="color:#669900">"id"</span><span style="color:#999999">,</span>property <span style="color:#669900">=</span> <span style="color:#669900">"id"</span><span style="color:#999999">)</span><span style="color:#999999">,</span>
            <span style="color:#999999">@Result</span><span style="color:#999999">(</span>column <span style="color:#669900">=</span> <span style="color:#669900">"uid"</span><span style="color:#999999">,</span>property <span style="color:#669900">=</span> <span style="color:#669900">"uid"</span><span style="color:#999999">)</span><span style="color:#999999">,</span>
            <span style="color:#999999">@Result</span><span style="color:#999999">(</span>column <span style="color:#669900">=</span> <span style="color:#669900">"money"</span><span style="color:#999999">,</span>property <span style="color:#669900">=</span> <span style="color:#669900">"money"</span><span style="color:#999999">)</span><span style="color:#999999">,</span>
            <span style="color:#999999">@Result</span><span style="color:#999999">(</span>property <span style="color:#669900">=</span> <span style="color:#669900">"user"</span><span style="color:#999999">,</span>column <span style="color:#669900">=</span> <span style="color:#669900">"uid"</span><span style="color:#999999">,</span>one<span style="color:#669900">=</span><span style="color:#999999">@One</span><span style="color:#999999">(</span>select<span style="color:#669900">=</span><span style="color:#669900">"com.keafmd.dao.IUserDao.findById"</span><span style="color:#999999">,</span>fetchType<span style="color:#669900">=</span> FetchType<span style="color:#999999">.</span>EAGER<span style="color:#999999">)</span><span style="color:#999999">)</span>
    <span style="color:#999999">}</span><span style="color:#999999">)</span>
    List<span style="color:#61aeee"><span style="color:#999999"><</span>Account<span style="color:#999999">></span></span> <span style="color:#61aeee">findAll</span><span style="color:#999999">(</span><span style="color:#999999">)</span><span style="color:#999999">;</span>

<span style="color:#999999">}</span>
</code></span>

添加用户的持久层接口并使用注解配置

<span style="color:#000000"><code class="language-java"><span style="color:#c678dd">package</span> com<span style="color:#999999">.</span>keafmd<span style="color:#999999">.</span>dao<span style="color:#999999">;</span>

<span style="color:#c678dd">import</span> com<span style="color:#999999">.</span>keafmd<span style="color:#999999">.</span>domain<span style="color:#999999">.</span>User<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> org<span style="color:#999999">.</span>apache<span style="color:#999999">.</span>ibatis<span style="color:#999999">.</span>annotations<span style="color:#999999">.</span>*<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> org<span style="color:#999999">.</span>apache<span style="color:#999999">.</span>ibatis<span style="color:#999999">.</span>mapping<span style="color:#999999">.</span>FetchType<span style="color:#999999">;</span>

<span style="color:#c678dd">import</span> java<span style="color:#999999">.</span>util<span style="color:#999999">.</span>List<span style="color:#999999">;</span>

<span style="color:#5c6370">/**
 * Keafmd
 *
 * @ClassName: IUserDao
 * @Description:
 * @author: 牛哄哄的柯南
 * @date: 2021-02-16 20:30
 */</span>

<span style="color:#5c6370">/**
 * 在mybatis中针对CRUD一共有四个注解
 * @Select @Insert @Update @Delete
 */</span>
<span style="color:#c678dd">public</span> <span style="color:#c678dd">interface</span> IUserDao <span style="color:#999999">{</span>

    <span style="color:#5c6370">/**
     * 查询所有用户
     * @return
     */</span>
    <span style="color:#999999">@Select</span><span style="color:#999999">(</span><span style="color:#669900">"select * from user"</span><span style="color:#999999">)</span>
    <span style="color:#999999">@Results</span><span style="color:#999999">(</span>id<span style="color:#669900">=</span><span style="color:#669900">"userMap"</span><span style="color:#999999">,</span>value<span style="color:#669900">=</span><span style="color:#999999">{</span>
            <span style="color:#999999">@Result</span><span style="color:#999999">(</span>id <span style="color:#669900">=</span> <span style="color:#56b6c2">true</span><span style="color:#999999">,</span>column <span style="color:#669900">=</span> <span style="color:#669900">"id"</span><span style="color:#999999">,</span>property <span style="color:#669900">=</span> <span style="color:#669900">"userId"</span><span style="color:#999999">)</span><span style="color:#999999">,</span>
            <span style="color:#999999">@Result</span><span style="color:#999999">(</span>column <span style="color:#669900">=</span> <span style="color:#669900">"id"</span><span style="color:#999999">,</span>property <span style="color:#669900">=</span> <span style="color:#669900">"userId"</span><span style="color:#999999">)</span><span style="color:#999999">,</span>
            <span style="color:#999999">@Result</span><span style="color:#999999">(</span>column <span style="color:#669900">=</span> <span style="color:#669900">"username"</span><span style="color:#999999">,</span>property <span style="color:#669900">=</span> <span style="color:#669900">"userName"</span><span style="color:#999999">)</span><span style="color:#999999">,</span>
            <span style="color:#999999">@Result</span><span style="color:#999999">(</span>column <span style="color:#669900">=</span> <span style="color:#669900">"sex"</span><span style="color:#999999">,</span>property <span style="color:#669900">=</span> <span style="color:#669900">"userSex"</span><span style="color:#999999">)</span><span style="color:#999999">,</span>
            <span style="color:#999999">@Result</span><span style="color:#999999">(</span>column <span style="color:#669900">=</span> <span style="color:#669900">"birthday"</span><span style="color:#999999">,</span>property <span style="color:#669900">=</span> <span style="color:#669900">"userBirthday"</span><span style="color:#999999">)</span>

    <span style="color:#999999">}</span><span style="color:#999999">)</span>
    List<span style="color:#61aeee"><span style="color:#999999"><</span>User<span style="color:#999999">></span></span> <span style="color:#61aeee">findAll</span><span style="color:#999999">(</span><span style="color:#999999">)</span><span style="color:#999999">;</span>


    <span style="color:#5c6370">/**
     * 根据id查询用户
     * @param userId
     * @return
     */</span>
    <span style="color:#999999">@Select</span><span style="color:#999999">(</span><span style="color:#669900">"select * from user where id=#{id}"</span><span style="color:#999999">)</span>
    <span style="color:#5c6370">//@ResultMap(value={"userMap"})</span>
    <span style="color:#999999">@ResultMap</span><span style="color:#999999">(</span><span style="color:#669900">"userMap"</span><span style="color:#999999">)</span>
    User <span style="color:#61aeee">findById</span><span style="color:#999999">(</span>Integer userId<span style="color:#999999">)</span><span style="color:#999999">;</span>

    <span style="color:#5c6370">/**
     * 根据用户名称模糊查询
     * @param username
     * @return
     */</span>
    <span style="color:#999999">@Select</span><span style="color:#999999">(</span><span style="color:#669900">"select * from user where username like #{username}"</span><span style="color:#999999">)</span> <span style="color:#5c6370">//占位符</span>
    <span style="color:#999999">@ResultMap</span><span style="color:#999999">(</span><span style="color:#669900">"userMap"</span><span style="color:#999999">)</span>
    List<span style="color:#61aeee"><span style="color:#999999"><</span>User<span style="color:#999999">></span></span> <span style="color:#61aeee">findByName</span><span style="color:#999999">(</span>String username<span style="color:#999999">)</span><span style="color:#999999">;</span>

<span style="color:#999999">}</span>
</code></span>

测试一对一关联及立即加载

<span style="color:#000000"><code class="language-java"><span style="color:#c678dd">package</span> com<span style="color:#999999">.</span>keafmd<span style="color:#999999">.</span>test<span style="color:#999999">;</span>

<span style="color:#c678dd">import</span> com<span style="color:#999999">.</span>keafmd<span style="color:#999999">.</span>dao<span style="color:#999999">.</span>IAccountDao<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> com<span style="color:#999999">.</span>keafmd<span style="color:#999999">.</span>dao<span style="color:#999999">.</span>IUserDao<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> com<span style="color:#999999">.</span>keafmd<span style="color:#999999">.</span>domain<span style="color:#999999">.</span>Account<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> com<span style="color:#999999">.</span>keafmd<span style="color:#999999">.</span>domain<span style="color:#999999">.</span>User<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> org<span style="color:#999999">.</span>apache<span style="color:#999999">.</span>ibatis<span style="color:#999999">.</span>io<span style="color:#999999">.</span>Resources<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> org<span style="color:#999999">.</span>apache<span style="color:#999999">.</span>ibatis<span style="color:#999999">.</span>session<span style="color:#999999">.</span>SqlSession<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> org<span style="color:#999999">.</span>apache<span style="color:#999999">.</span>ibatis<span style="color:#999999">.</span>session<span style="color:#999999">.</span>SqlSessionFactory<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> org<span style="color:#999999">.</span>apache<span style="color:#999999">.</span>ibatis<span style="color:#999999">.</span>session<span style="color:#999999">.</span>SqlSessionFactoryBuilder<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> org<span style="color:#999999">.</span>junit<span style="color:#999999">.</span>After<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> org<span style="color:#999999">.</span>junit<span style="color:#999999">.</span>Before<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> org<span style="color:#999999">.</span>junit<span style="color:#999999">.</span>Test<span style="color:#999999">;</span>

<span style="color:#c678dd">import</span> java<span style="color:#999999">.</span>io<span style="color:#999999">.</span>InputStream<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> java<span style="color:#999999">.</span>util<span style="color:#999999">.</span>List<span style="color:#999999">;</span>

<span style="color:#5c6370">/**
 * Keafmd
 *
 * @ClassName: AnnotationCRUDTest
 * @Description: 注解开发CRUD测试
 * @author: 牛哄哄的柯南
 * @date: 2021-02-16 21:05
 */</span>
<span style="color:#c678dd">public</span> <span style="color:#c678dd">class</span> AccountTest <span style="color:#999999">{</span>
    <span style="color:#c678dd">private</span> InputStream in<span style="color:#999999">;</span>
    <span style="color:#c678dd">private</span> SqlSessionFactory factory<span style="color:#999999">;</span>
    <span style="color:#c678dd">private</span> SqlSession session<span style="color:#999999">;</span>
    <span style="color:#c678dd">private</span> IAccountDao accountDao<span style="color:#999999">;</span>

    <span style="color:#999999">@Before</span>
    <span style="color:#c678dd">public</span> <span style="color:#c678dd">void</span> <span style="color:#61aeee">init</span><span style="color:#999999">(</span><span style="color:#999999">)</span> <span style="color:#c678dd">throws</span> Exception<span style="color:#999999">{</span>
        in <span style="color:#669900">=</span> Resources<span style="color:#999999">.</span><span style="color:#61aeee">getResourceAsStream</span><span style="color:#999999">(</span><span style="color:#669900">"SqlMapConfig.xml"</span><span style="color:#999999">)</span><span style="color:#999999">;</span>
        factory <span style="color:#669900">=</span> <span style="color:#c678dd">new</span> SqlSessionFactoryBuilder<span style="color:#999999">(</span><span style="color:#999999">)</span><span style="color:#999999">.</span><span style="color:#61aeee">build</span><span style="color:#999999">(</span>in<span style="color:#999999">)</span><span style="color:#999999">;</span>
        session <span style="color:#669900">=</span> factory<span style="color:#999999">.</span><span style="color:#61aeee">openSession</span><span style="color:#999999">(</span><span style="color:#999999">)</span><span style="color:#999999">;</span>
        accountDao <span style="color:#669900">=</span> session<span style="color:#999999">.</span><span style="color:#61aeee">getMapper</span><span style="color:#999999">(</span>IAccountDao<span style="color:#999999">.</span><span style="color:#c678dd">class</span><span style="color:#999999">)</span><span style="color:#999999">;</span>
    <span style="color:#999999">}</span>

    <span style="color:#999999">@After</span>
    <span style="color:#c678dd">public</span> <span style="color:#c678dd">void</span> <span style="color:#61aeee">destory</span><span style="color:#999999">(</span><span style="color:#999999">)</span> <span style="color:#c678dd">throws</span> Exception<span style="color:#999999">{</span>
        session<span style="color:#999999">.</span><span style="color:#61aeee">commit</span><span style="color:#999999">(</span><span style="color:#999999">)</span><span style="color:#999999">;</span>
        session<span style="color:#999999">.</span><span style="color:#61aeee">close</span><span style="color:#999999">(</span><span style="color:#999999">)</span><span style="color:#999999">;</span>
        in<span style="color:#999999">.</span><span style="color:#61aeee">close</span><span style="color:#999999">(</span><span style="color:#999999">)</span><span style="color:#999999">;</span>
    <span style="color:#999999">}</span>

    <span style="color:#999999">@Test</span>
    <span style="color:#c678dd">public</span> <span style="color:#c678dd">void</span> <span style="color:#61aeee">testFindAll</span><span style="color:#999999">(</span><span style="color:#999999">)</span><span style="color:#999999">{</span>
        List<span style="color:#61aeee"><span style="color:#999999"><</span>Account<span style="color:#999999">></span></span> accounts <span style="color:#669900">=</span> accountDao<span style="color:#999999">.</span><span style="color:#61aeee">findAll</span><span style="color:#999999">(</span><span style="color:#999999">)</span><span style="color:#999999">;</span>
        <span style="color:#c678dd">for</span> <span style="color:#999999">(</span>Account account <span style="color:#669900">:</span> accounts<span style="color:#999999">)</span> <span style="color:#999999">{</span>
            System<span style="color:#999999">.</span>out<span style="color:#999999">.</span><span style="color:#61aeee">println</span><span style="color:#999999">(</span><span style="color:#669900">"-----每个账户信息-----"</span><span style="color:#999999">)</span><span style="color:#999999">;</span>
            System<span style="color:#999999">.</span>out<span style="color:#999999">.</span><span style="color:#61aeee">println</span><span style="color:#999999">(</span>account<span style="color:#999999">)</span><span style="color:#999999">;</span>
            System<span style="color:#999999">.</span>out<span style="color:#999999">.</span><span style="color:#61aeee">println</span><span style="color:#999999">(</span>account<span style="color:#999999">.</span><span style="color:#61aeee">getUser</span><span style="color:#999999">(</span><span style="color:#999999">)</span><span style="color:#999999">)</span><span style="color:#999999">;</span>
        <span style="color:#999999">}</span>
    <span style="color:#999999">}</span>

<span style="color:#999999">}</span>
</code></span>

运行结果:

<span style="color:#000000"><code class="language-java"><span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">04</span><span style="color:#669900">:</span><span style="color:#98c379">39</span><span style="color:#999999">,</span><span style="color:#98c379">939</span> <span style="color:#98c379">163</span>    <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG ansaction<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>JdbcTransaction  <span style="color:#669900">-</span> Opening JDBC Connection
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">04</span><span style="color:#669900">:</span><span style="color:#98c379">40</span><span style="color:#999999">,</span><span style="color:#98c379">190</span> <span style="color:#98c379">414</span>    <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG source<span style="color:#999999">.</span>pooled<span style="color:#999999">.</span>PooledDataSource  <span style="color:#669900">-</span> Created connection <span style="color:#98c379">1176735295.</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">04</span><span style="color:#669900">:</span><span style="color:#98c379">40</span><span style="color:#999999">,</span><span style="color:#98c379">190</span> <span style="color:#98c379">414</span>    <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG ansaction<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>JdbcTransaction  <span style="color:#669900">-</span> Setting autocommit to <span style="color:#56b6c2">false</span> on JDBC Connection <span style="color:#999999">[</span>com<span style="color:#999999">.</span>mysql<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>JDBC4Connection<span style="color:#999999">@46238e3f</span><span style="color:#999999">]</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">04</span><span style="color:#669900">:</span><span style="color:#98c379">40</span><span style="color:#999999">,</span><span style="color:#98c379">195</span> <span style="color:#98c379">419</span>    <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG keafmd<span style="color:#999999">.</span>dao<span style="color:#999999">.</span>IAccountDao<span style="color:#999999">.</span>findAll  <span style="color:#669900">-</span> <span style="color:#669900">==</span><span style="color:#669900">></span>  Preparing<span style="color:#669900">:</span> select <span style="color:#669900">*</span> from account
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">04</span><span style="color:#669900">:</span><span style="color:#98c379">40</span><span style="color:#999999">,</span><span style="color:#98c379">226</span> <span style="color:#98c379">450</span>    <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG keafmd<span style="color:#999999">.</span>dao<span style="color:#999999">.</span>IAccountDao<span style="color:#999999">.</span>findAll  <span style="color:#669900">-</span> <span style="color:#669900">==</span><span style="color:#669900">></span> Parameters<span style="color:#669900">:</span> 
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">04</span><span style="color:#669900">:</span><span style="color:#98c379">40</span><span style="color:#999999">,</span><span style="color:#98c379">267</span> <span style="color:#98c379">491</span>    <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG m<span style="color:#999999">.</span>keafmd<span style="color:#999999">.</span>dao<span style="color:#999999">.</span>IUserDao<span style="color:#999999">.</span>findById  <span style="color:#669900">-</span> <span style="color:#669900">==</span><span style="color:#669900">==</span><span style="color:#669900">></span>  Preparing<span style="color:#669900">:</span> select <span style="color:#669900">*</span> from user where id<span style="color:#669900">=</span><span style="color:#669900">?</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">04</span><span style="color:#669900">:</span><span style="color:#98c379">40</span><span style="color:#999999">,</span><span style="color:#98c379">268</span> <span style="color:#98c379">492</span>    <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG m<span style="color:#999999">.</span>keafmd<span style="color:#999999">.</span>dao<span style="color:#999999">.</span>IUserDao<span style="color:#999999">.</span>findById  <span style="color:#669900">-</span> <span style="color:#669900">==</span><span style="color:#669900">==</span><span style="color:#669900">></span> Parameters<span style="color:#669900">:</span> <span style="color:#61aeee">41</span><span style="color:#999999">(</span>Integer<span style="color:#999999">)</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">04</span><span style="color:#669900">:</span><span style="color:#98c379">40</span><span style="color:#999999">,</span><span style="color:#98c379">270</span> <span style="color:#98c379">494</span>    <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG m<span style="color:#999999">.</span>keafmd<span style="color:#999999">.</span>dao<span style="color:#999999">.</span>IUserDao<span style="color:#999999">.</span>findById  <span style="color:#669900">-</span> <span style="color:#669900"><=</span><span style="color:#669900">==</span><span style="color:#669900">=</span>      Total<span style="color:#669900">:</span> <span style="color:#98c379">1</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">04</span><span style="color:#669900">:</span><span style="color:#98c379">40</span><span style="color:#999999">,</span><span style="color:#98c379">271</span> <span style="color:#98c379">495</span>    <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG m<span style="color:#999999">.</span>keafmd<span style="color:#999999">.</span>dao<span style="color:#999999">.</span>IUserDao<span style="color:#999999">.</span>findById  <span style="color:#669900">-</span> <span style="color:#669900">==</span><span style="color:#669900">==</span><span style="color:#669900">></span>  Preparing<span style="color:#669900">:</span> select <span style="color:#669900">*</span> from user where id<span style="color:#669900">=</span><span style="color:#669900">?</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">04</span><span style="color:#669900">:</span><span style="color:#98c379">40</span><span style="color:#999999">,</span><span style="color:#98c379">271</span> <span style="color:#98c379">495</span>    <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG m<span style="color:#999999">.</span>keafmd<span style="color:#999999">.</span>dao<span style="color:#999999">.</span>IUserDao<span style="color:#999999">.</span>findById  <span style="color:#669900">-</span> <span style="color:#669900">==</span><span style="color:#669900">==</span><span style="color:#669900">></span> Parameters<span style="color:#669900">:</span> <span style="color:#61aeee">45</span><span style="color:#999999">(</span>Integer<span style="color:#999999">)</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">04</span><span style="color:#669900">:</span><span style="color:#98c379">40</span><span style="color:#999999">,</span><span style="color:#98c379">272</span> <span style="color:#98c379">496</span>    <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG m<span style="color:#999999">.</span>keafmd<span style="color:#999999">.</span>dao<span style="color:#999999">.</span>IUserDao<span style="color:#999999">.</span>findById  <span style="color:#669900">-</span> <span style="color:#669900"><=</span><span style="color:#669900">==</span><span style="color:#669900">=</span>      Total<span style="color:#669900">:</span> <span style="color:#98c379">1</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">04</span><span style="color:#669900">:</span><span style="color:#98c379">40</span><span style="color:#999999">,</span><span style="color:#98c379">273</span> <span style="color:#98c379">497</span>    <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG keafmd<span style="color:#999999">.</span>dao<span style="color:#999999">.</span>IAccountDao<span style="color:#999999">.</span>findAll  <span style="color:#669900">-</span> <span style="color:#669900"><=</span><span style="color:#669900">=</span>      Total<span style="color:#669900">:</span> <span style="color:#98c379">3</span>
<span style="color:#669900">--</span><span style="color:#669900">--</span><span style="color:#669900">-</span>每个账户信息<span style="color:#669900">--</span><span style="color:#669900">--</span><span style="color:#669900">-</span>
Account<span style="color:#999999">{</span>id<span style="color:#669900">=</span><span style="color:#98c379">1</span><span style="color:#999999">,</span> uid<span style="color:#669900">=</span><span style="color:#98c379">41</span><span style="color:#999999">,</span> money<span style="color:#669900">=</span><span style="color:#98c379">1000.0</span><span style="color:#999999">}</span>
User<span style="color:#999999">{</span>userId<span style="color:#669900">=</span><span style="color:#98c379">41</span><span style="color:#999999">,</span> userName<span style="color:#669900">=</span><span style="color:#669900">'update user clear cache'</span><span style="color:#999999">,</span> userAddress<span style="color:#669900">=</span><span style="color:#669900">'null'</span><span style="color:#999999">,</span> userSex<span style="color:#669900">=</span><span style="color:#669900">'男'</span><span style="color:#999999">,</span> userBirthday<span style="color:#669900">=</span>Tue Feb <span style="color:#98c379">27</span> <span style="color:#98c379">17</span><span style="color:#669900">:</span><span style="color:#98c379">47</span><span style="color:#669900">:</span><span style="color:#98c379">08</span> CST <span style="color:#98c379">2018</span><span style="color:#999999">}</span>
<span style="color:#669900">--</span><span style="color:#669900">--</span><span style="color:#669900">-</span>每个账户信息<span style="color:#669900">--</span><span style="color:#669900">--</span><span style="color:#669900">-</span>
Account<span style="color:#999999">{</span>id<span style="color:#669900">=</span><span style="color:#98c379">2</span><span style="color:#999999">,</span> uid<span style="color:#669900">=</span><span style="color:#98c379">45</span><span style="color:#999999">,</span> money<span style="color:#669900">=</span><span style="color:#98c379">1000.0</span><span style="color:#999999">}</span>
User<span style="color:#999999">{</span>userId<span style="color:#669900">=</span><span style="color:#98c379">45</span><span style="color:#999999">,</span> userName<span style="color:#669900">=</span><span style="color:#669900">'新一'</span><span style="color:#999999">,</span> userAddress<span style="color:#669900">=</span><span style="color:#669900">'null'</span><span style="color:#999999">,</span> userSex<span style="color:#669900">=</span><span style="color:#669900">'男'</span><span style="color:#999999">,</span> userBirthday<span style="color:#669900">=</span>Sun Mar <span style="color:#98c379">04</span> <span style="color:#98c379">12</span><span style="color:#669900">:</span><span style="color:#98c379">04</span><span style="color:#669900">:</span><span style="color:#98c379">06</span> CST <span style="color:#98c379">2018</span><span style="color:#999999">}</span>
<span style="color:#669900">--</span><span style="color:#669900">--</span><span style="color:#669900">-</span>每个账户信息<span style="color:#669900">--</span><span style="color:#669900">--</span><span style="color:#669900">-</span>
Account<span style="color:#999999">{</span>id<span style="color:#669900">=</span><span style="color:#98c379">3</span><span style="color:#999999">,</span> uid<span style="color:#669900">=</span><span style="color:#98c379">41</span><span style="color:#999999">,</span> money<span style="color:#669900">=</span><span style="color:#98c379">2000.0</span><span style="color:#999999">}</span>
User<span style="color:#999999">{</span>userId<span style="color:#669900">=</span><span style="color:#98c379">41</span><span style="color:#999999">,</span> userName<span style="color:#669900">=</span><span style="color:#669900">'update user clear cache'</span><span style="color:#999999">,</span> userAddress<span style="color:#669900">=</span><span style="color:#669900">'null'</span><span style="color:#999999">,</span> userSex<span style="color:#669900">=</span><span style="color:#669900">'男'</span><span style="color:#999999">,</span> userBirthday<span style="color:#669900">=</span>Tue Feb <span style="color:#98c379">27</span> <span style="color:#98c379">17</span><span style="color:#669900">:</span><span style="color:#98c379">47</span><span style="color:#669900">:</span><span style="color:#98c379">08</span> CST <span style="color:#98c379">2018</span><span style="color:#999999">}</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">04</span><span style="color:#669900">:</span><span style="color:#98c379">40</span><span style="color:#999999">,</span><span style="color:#98c379">274</span> <span style="color:#98c379">498</span>    <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG ansaction<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>JdbcTransaction  <span style="color:#669900">-</span> Resetting autocommit to <span style="color:#56b6c2">true</span> on JDBC Connection <span style="color:#999999">[</span>com<span style="color:#999999">.</span>mysql<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>JDBC4Connection<span style="color:#999999">@46238e3f</span><span style="color:#999999">]</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">04</span><span style="color:#669900">:</span><span style="color:#98c379">40</span><span style="color:#999999">,</span><span style="color:#98c379">274</span> <span style="color:#98c379">498</span>    <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG ansaction<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>JdbcTransaction  <span style="color:#669900">-</span> Closing JDBC Connection <span style="color:#999999">[</span>com<span style="color:#999999">.</span>mysql<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>JDBC4Connection<span style="color:#999999">@46238e3f</span><span style="color:#999999">]</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">04</span><span style="color:#669900">:</span><span style="color:#98c379">40</span><span style="color:#999999">,</span><span style="color:#98c379">274</span> <span style="color:#98c379">498</span>    <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG source<span style="color:#999999">.</span>pooled<span style="color:#999999">.</span>PooledDataSource  <span style="color:#669900">-</span> Returned connection <span style="color:#98c379">1176735295</span> to pool<span style="color:#999999">.</span>

Process finished with exit code <span style="color:#98c379">0</span>
</code></span>

使用注解实现一对多复杂关系映射及延迟加载

需求:查询用户信息时,也要查询他的账户列表。使用注解方式实现。
分析:一个用户具有多个账户信息,所以形成了用户(User)与账户(Account)之间的一对多关系。

User 实体类加入 List<Account>

User:

<span style="color:#000000"><code class="language-java"><span style="color:#c678dd">package</span> com<span style="color:#999999">.</span>keafmd<span style="color:#999999">.</span>domain<span style="color:#999999">;</span>

<span style="color:#c678dd">import</span> java<span style="color:#999999">.</span>io<span style="color:#999999">.</span>Serializable<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> java<span style="color:#999999">.</span>util<span style="color:#999999">.</span>Date<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> java<span style="color:#999999">.</span>util<span style="color:#999999">.</span>List<span style="color:#999999">;</span>

<span style="color:#5c6370">/**
 * Keafmd
 *
 * @ClassName: User
 * @Description: User实体类
 * @author: 牛哄哄的柯南
 * @date: 2021-02-16 20:28
 */</span>
<span style="color:#c678dd">public</span> <span style="color:#c678dd">class</span> User <span style="color:#c678dd">implements</span> Serializable <span style="color:#999999">{</span>
    <span style="color:#c678dd">private</span> Integer userId<span style="color:#999999">;</span>
    <span style="color:#c678dd">private</span> String userName<span style="color:#999999">;</span>
    <span style="color:#c678dd">private</span> String userAddress<span style="color:#999999">;</span>
    <span style="color:#c678dd">private</span> String userSex<span style="color:#999999">;</span>
    <span style="color:#c678dd">private</span> Date userBirthday<span style="color:#999999">;</span>

    <span style="color:#5c6370">//一对多关系映射:一个用户对应多个账户</span>
    <span style="color:#c678dd">private</span> List<span style="color:#61aeee"><span style="color:#999999"><</span>Account<span style="color:#999999">></span></span> accounts<span style="color:#999999">;</span>

    <span style="color:#c678dd">public</span> List<span style="color:#61aeee"><span style="color:#999999"><</span>Account<span style="color:#999999">></span></span> <span style="color:#61aeee">getAccounts</span><span style="color:#999999">(</span><span style="color:#999999">)</span> <span style="color:#999999">{</span>
        <span style="color:#c678dd">return</span> accounts<span style="color:#999999">;</span>
    <span style="color:#999999">}</span>

    <span style="color:#c678dd">public</span> <span style="color:#c678dd">void</span> <span style="color:#61aeee">setAccounts</span><span style="color:#999999">(</span>List<span style="color:#61aeee"><span style="color:#999999"><</span>Account<span style="color:#999999">></span></span> accounts<span style="color:#999999">)</span> <span style="color:#999999">{</span>
        <span style="color:#c678dd">this</span><span style="color:#999999">.</span>accounts <span style="color:#669900">=</span> accounts<span style="color:#999999">;</span>
    <span style="color:#999999">}</span>

    <span style="color:#c678dd">public</span> Integer <span style="color:#61aeee">getUserId</span><span style="color:#999999">(</span><span style="color:#999999">)</span> <span style="color:#999999">{</span>
        <span style="color:#c678dd">return</span> userId<span style="color:#999999">;</span>
    <span style="color:#999999">}</span>

    <span style="color:#c678dd">public</span> <span style="color:#c678dd">void</span> <span style="color:#61aeee">setUserId</span><span style="color:#999999">(</span>Integer userId<span style="color:#999999">)</span> <span style="color:#999999">{</span>
        <span style="color:#c678dd">this</span><span style="color:#999999">.</span>userId <span style="color:#669900">=</span> userId<span style="color:#999999">;</span>
    <span style="color:#999999">}</span>

    <span style="color:#c678dd">public</span> String <span style="color:#61aeee">getUserName</span><span style="color:#999999">(</span><span style="color:#999999">)</span> <span style="color:#999999">{</span>
        <span style="color:#c678dd">return</span> userName<span style="color:#999999">;</span>
    <span style="color:#999999">}</span>

    <span style="color:#c678dd">public</span> <span style="color:#c678dd">void</span> <span style="color:#61aeee">setUserName</span><span style="color:#999999">(</span>String userName<span style="color:#999999">)</span> <span style="color:#999999">{</span>
        <span style="color:#c678dd">this</span><span style="color:#999999">.</span>userName <span style="color:#669900">=</span> userName<span style="color:#999999">;</span>
    <span style="color:#999999">}</span>

    <span style="color:#c678dd">public</span> String <span style="color:#61aeee">getUserAddress</span><span style="color:#999999">(</span><span style="color:#999999">)</span> <span style="color:#999999">{</span>
        <span style="color:#c678dd">return</span> userAddress<span style="color:#999999">;</span>
    <span style="color:#999999">}</span>

    <span style="color:#c678dd">public</span> <span style="color:#c678dd">void</span> <span style="color:#61aeee">setUserAddress</span><span style="color:#999999">(</span>String userAddress<span style="color:#999999">)</span> <span style="color:#999999">{</span>
        <span style="color:#c678dd">this</span><span style="color:#999999">.</span>userAddress <span style="color:#669900">=</span> userAddress<span style="color:#999999">;</span>
    <span style="color:#999999">}</span>

    <span style="color:#c678dd">public</span> String <span style="color:#61aeee">getUserSex</span><span style="color:#999999">(</span><span style="color:#999999">)</span> <span style="color:#999999">{</span>
        <span style="color:#c678dd">return</span> userSex<span style="color:#999999">;</span>
    <span style="color:#999999">}</span>

    <span style="color:#c678dd">public</span> <span style="color:#c678dd">void</span> <span style="color:#61aeee">setUserSex</span><span style="color:#999999">(</span>String userSex<span style="color:#999999">)</span> <span style="color:#999999">{</span>
        <span style="color:#c678dd">this</span><span style="color:#999999">.</span>userSex <span style="color:#669900">=</span> userSex<span style="color:#999999">;</span>
    <span style="color:#999999">}</span>

    <span style="color:#c678dd">public</span> Date <span style="color:#61aeee">getUserBirthday</span><span style="color:#999999">(</span><span style="color:#999999">)</span> <span style="color:#999999">{</span>
        <span style="color:#c678dd">return</span> userBirthday<span style="color:#999999">;</span>
    <span style="color:#999999">}</span>

    <span style="color:#c678dd">public</span> <span style="color:#c678dd">void</span> <span style="color:#61aeee">setUserBirthday</span><span style="color:#999999">(</span>Date userBirthday<span style="color:#999999">)</span> <span style="color:#999999">{</span>
        <span style="color:#c678dd">this</span><span style="color:#999999">.</span>userBirthday <span style="color:#669900">=</span> userBirthday<span style="color:#999999">;</span>
    <span style="color:#999999">}</span>

    <span style="color:#999999">@Override</span>
    <span style="color:#c678dd">public</span> String <span style="color:#61aeee">toString</span><span style="color:#999999">(</span><span style="color:#999999">)</span> <span style="color:#999999">{</span>
        <span style="color:#c678dd">return</span> <span style="color:#669900">"User{"</span> <span style="color:#669900">+</span>
                <span style="color:#669900">"userId="</span> <span style="color:#669900">+</span> userId <span style="color:#669900">+</span>
                <span style="color:#669900">", userName='"</span> <span style="color:#669900">+</span> userName <span style="color:#669900">+</span> <span style="color:#669900">'\''</span> <span style="color:#669900">+</span>
                <span style="color:#669900">", userAddress='"</span> <span style="color:#669900">+</span> userAddress <span style="color:#669900">+</span> <span style="color:#669900">'\''</span> <span style="color:#669900">+</span>
                <span style="color:#669900">", userSex='"</span> <span style="color:#669900">+</span> userSex <span style="color:#669900">+</span> <span style="color:#669900">'\''</span> <span style="color:#669900">+</span>
                <span style="color:#669900">", userBirthday="</span> <span style="color:#669900">+</span> userBirthday <span style="color:#669900">+</span>
                <span style="color:#669900">'}'</span><span style="color:#999999">;</span>
    <span style="color:#999999">}</span>
<span style="color:#999999">}</span>
</code></span>

编写用户的持久层接口并使用注解配置

<span style="color:#000000"><code class="language-java"><span style="color:#c678dd">package</span> com<span style="color:#999999">.</span>keafmd<span style="color:#999999">.</span>dao<span style="color:#999999">;</span>

<span style="color:#c678dd">import</span> com<span style="color:#999999">.</span>keafmd<span style="color:#999999">.</span>domain<span style="color:#999999">.</span>User<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> org<span style="color:#999999">.</span>apache<span style="color:#999999">.</span>ibatis<span style="color:#999999">.</span>annotations<span style="color:#999999">.</span>*<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> org<span style="color:#999999">.</span>apache<span style="color:#999999">.</span>ibatis<span style="color:#999999">.</span>mapping<span style="color:#999999">.</span>FetchType<span style="color:#999999">;</span>

<span style="color:#c678dd">import</span> java<span style="color:#999999">.</span>util<span style="color:#999999">.</span>List<span style="color:#999999">;</span>

<span style="color:#5c6370">/**
 * Keafmd
 *
 * @ClassName: IUserDao
 * @Description:
 * @author: 牛哄哄的柯南
 * @date: 2021-02-16 20:30
 */</span>

<span style="color:#5c6370">/**
 * 在mybatis中针对CRUD一共有四个注解
 * @Select @Insert @Update @Delete
 */</span>
<span style="color:#c678dd">public</span> <span style="color:#c678dd">interface</span> IUserDao <span style="color:#999999">{</span>

    <span style="color:#5c6370">/**
     * 查询所有用户
     * @return
     */</span>
    <span style="color:#999999">@Select</span><span style="color:#999999">(</span><span style="color:#669900">"select * from user"</span><span style="color:#999999">)</span>
    <span style="color:#999999">@Results</span><span style="color:#999999">(</span>id<span style="color:#669900">=</span><span style="color:#669900">"userMap"</span><span style="color:#999999">,</span>value<span style="color:#669900">=</span><span style="color:#999999">{</span>
            <span style="color:#999999">@Result</span><span style="color:#999999">(</span>id <span style="color:#669900">=</span> <span style="color:#56b6c2">true</span><span style="color:#999999">,</span>column <span style="color:#669900">=</span> <span style="color:#669900">"id"</span><span style="color:#999999">,</span>property <span style="color:#669900">=</span> <span style="color:#669900">"userId"</span><span style="color:#999999">)</span><span style="color:#999999">,</span>
            <span style="color:#999999">@Result</span><span style="color:#999999">(</span>column <span style="color:#669900">=</span> <span style="color:#669900">"id"</span><span style="color:#999999">,</span>property <span style="color:#669900">=</span> <span style="color:#669900">"userId"</span><span style="color:#999999">)</span><span style="color:#999999">,</span>
            <span style="color:#999999">@Result</span><span style="color:#999999">(</span>column <span style="color:#669900">=</span> <span style="color:#669900">"username"</span><span style="color:#999999">,</span>property <span style="color:#669900">=</span> <span style="color:#669900">"userName"</span><span style="color:#999999">)</span><span style="color:#999999">,</span>
            <span style="color:#999999">@Result</span><span style="color:#999999">(</span>column <span style="color:#669900">=</span> <span style="color:#669900">"sex"</span><span style="color:#999999">,</span>property <span style="color:#669900">=</span> <span style="color:#669900">"userSex"</span><span style="color:#999999">)</span><span style="color:#999999">,</span>
            <span style="color:#999999">@Result</span><span style="color:#999999">(</span>column <span style="color:#669900">=</span> <span style="color:#669900">"birthday"</span><span style="color:#999999">,</span>property <span style="color:#669900">=</span> <span style="color:#669900">"userBirthday"</span><span style="color:#999999">)</span><span style="color:#999999">,</span>
            <span style="color:#999999">@Result</span><span style="color:#999999">(</span>property <span style="color:#669900">=</span> <span style="color:#669900">"accounts"</span> <span style="color:#999999">,</span>column <span style="color:#669900">=</span> <span style="color:#669900">"id"</span><span style="color:#999999">,</span>
                    many <span style="color:#669900">=</span> <span style="color:#999999">@Many</span><span style="color:#999999">(</span>select <span style="color:#669900">=</span> <span style="color:#669900">"com.keafmd.dao.IAccountDao.findAccountByUid"</span><span style="color:#999999">,</span>
                            fetchType <span style="color:#669900">=</span> FetchType<span style="color:#999999">.</span>LAZY<span style="color:#999999">)</span><span style="color:#999999">)</span>

    <span style="color:#999999">}</span><span style="color:#999999">)</span>
    List<span style="color:#61aeee"><span style="color:#999999"><</span>User<span style="color:#999999">></span></span> <span style="color:#61aeee">findAll</span><span style="color:#999999">(</span><span style="color:#999999">)</span><span style="color:#999999">;</span>


    <span style="color:#5c6370">/**
     * 根据id查询用户
     * @param userId
     * @return
     */</span>
    <span style="color:#999999">@Select</span><span style="color:#999999">(</span><span style="color:#669900">"select * from user where id=#{id}"</span><span style="color:#999999">)</span>
    <span style="color:#5c6370">//@ResultMap(value={"userMap"})</span>
    <span style="color:#999999">@ResultMap</span><span style="color:#999999">(</span><span style="color:#669900">"userMap"</span><span style="color:#999999">)</span>
    User <span style="color:#61aeee">findById</span><span style="color:#999999">(</span>Integer userId<span style="color:#999999">)</span><span style="color:#999999">;</span>

    <span style="color:#5c6370">/**
     * 根据用户名称模糊查询
     * @param username
     * @return
     */</span>
    <span style="color:#999999">@Select</span><span style="color:#999999">(</span><span style="color:#669900">"select * from user where username like #{username}"</span><span style="color:#999999">)</span> <span style="color:#5c6370">//占位符</span>
    <span style="color:#999999">@ResultMap</span><span style="color:#999999">(</span><span style="color:#669900">"userMap"</span><span style="color:#999999">)</span>
    List<span style="color:#61aeee"><span style="color:#999999"><</span>User<span style="color:#999999">></span></span> <span style="color:#61aeee">findByName</span><span style="color:#999999">(</span>String username<span style="color:#999999">)</span><span style="color:#999999">;</span>


<span style="color:#999999">}</span>
</code></span>

编写账户的持久层接口并使用注解配置

<span style="color:#000000"><code class="language-java"><span style="color:#c678dd">package</span> com<span style="color:#999999">.</span>keafmd<span style="color:#999999">.</span>dao<span style="color:#999999">;</span>

<span style="color:#c678dd">import</span> com<span style="color:#999999">.</span>keafmd<span style="color:#999999">.</span>domain<span style="color:#999999">.</span>Account<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> org<span style="color:#999999">.</span>apache<span style="color:#999999">.</span>ibatis<span style="color:#999999">.</span>annotations<span style="color:#999999">.</span>One<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> org<span style="color:#999999">.</span>apache<span style="color:#999999">.</span>ibatis<span style="color:#999999">.</span>annotations<span style="color:#999999">.</span>Result<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> org<span style="color:#999999">.</span>apache<span style="color:#999999">.</span>ibatis<span style="color:#999999">.</span>annotations<span style="color:#999999">.</span>Results<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> org<span style="color:#999999">.</span>apache<span style="color:#999999">.</span>ibatis<span style="color:#999999">.</span>annotations<span style="color:#999999">.</span>Select<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> org<span style="color:#999999">.</span>apache<span style="color:#999999">.</span>ibatis<span style="color:#999999">.</span>mapping<span style="color:#999999">.</span>FetchType<span style="color:#999999">;</span>

<span style="color:#c678dd">import</span> java<span style="color:#999999">.</span>util<span style="color:#999999">.</span>List<span style="color:#999999">;</span>

<span style="color:#5c6370">/**
 * Keafmd
 *
 * @ClassName: IAccountDao
 * @Description:
 * @author: 牛哄哄的柯南
 * @date: 2021-02-16 22:54
 */</span>

<span style="color:#c678dd">public</span> <span style="color:#c678dd">interface</span> IAccountDao <span style="color:#999999">{</span>

    <span style="color:#5c6370">/**
     * 查询所有账户,并且获取每个账户下的用户信息,一对一 ,* 这里用不到这个findAll()
     * @return
     */</span>
    <span style="color:#999999">@Select</span><span style="color:#999999">(</span><span style="color:#669900">"select * from account"</span><span style="color:#999999">)</span>
    <span style="color:#999999">@Results</span><span style="color:#999999">(</span>id<span style="color:#669900">=</span><span style="color:#669900">"accountMap"</span><span style="color:#999999">,</span>value <span style="color:#669900">=</span> <span style="color:#999999">{</span>
            <span style="color:#999999">@Result</span><span style="color:#999999">(</span>id <span style="color:#669900">=</span> <span style="color:#56b6c2">true</span><span style="color:#999999">,</span>column <span style="color:#669900">=</span> <span style="color:#669900">"id"</span><span style="color:#999999">,</span>property <span style="color:#669900">=</span> <span style="color:#669900">"id"</span><span style="color:#999999">)</span><span style="color:#999999">,</span>
            <span style="color:#999999">@Result</span><span style="color:#999999">(</span>column <span style="color:#669900">=</span> <span style="color:#669900">"uid"</span><span style="color:#999999">,</span>property <span style="color:#669900">=</span> <span style="color:#669900">"uid"</span><span style="color:#999999">)</span><span style="color:#999999">,</span>
            <span style="color:#999999">@Result</span><span style="color:#999999">(</span>column <span style="color:#669900">=</span> <span style="color:#669900">"money"</span><span style="color:#999999">,</span>property <span style="color:#669900">=</span> <span style="color:#669900">"money"</span><span style="color:#999999">)</span><span style="color:#999999">,</span>
            <span style="color:#999999">@Result</span><span style="color:#999999">(</span>property <span style="color:#669900">=</span> <span style="color:#669900">"user"</span><span style="color:#999999">,</span>column <span style="color:#669900">=</span> <span style="color:#669900">"uid"</span><span style="color:#999999">,</span>one<span style="color:#669900">=</span><span style="color:#999999">@One</span><span style="color:#999999">(</span>select<span style="color:#669900">=</span><span style="color:#669900">"com.keafmd.dao.IUserDao.findById"</span><span style="color:#999999">,</span>fetchType<span style="color:#669900">=</span> FetchType<span style="color:#999999">.</span>EAGER<span style="color:#999999">)</span><span style="color:#999999">)</span>
    <span style="color:#999999">}</span><span style="color:#999999">)</span>
    List<span style="color:#61aeee"><span style="color:#999999"><</span>Account<span style="color:#999999">></span></span> <span style="color:#61aeee">findAll</span><span style="color:#999999">(</span><span style="color:#999999">)</span><span style="color:#999999">;</span>


    <span style="color:#5c6370">/**
     * 根据用户id查询账户信息
     * @param userId
     * @return
     */</span>
    <span style="color:#999999">@Select</span><span style="color:#999999">(</span><span style="color:#669900">"select * from account where uid = #{userId}"</span><span style="color:#999999">)</span>
    List<span style="color:#61aeee"><span style="color:#999999"><</span>Account<span style="color:#999999">></span></span> <span style="color:#61aeee">findAccountByUid</span><span style="color:#999999">(</span>Integer userId<span style="color:#999999">)</span><span style="color:#999999">;</span>

<span style="color:#999999">}</span>
</code></span>

编写测试代码

<span style="color:#000000"><code class="language-java"><span style="color:#c678dd">package</span> com<span style="color:#999999">.</span>keafmd<span style="color:#999999">.</span>test<span style="color:#999999">;</span>

<span style="color:#c678dd">import</span> com<span style="color:#999999">.</span>keafmd<span style="color:#999999">.</span>dao<span style="color:#999999">.</span>IUserDao<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> com<span style="color:#999999">.</span>keafmd<span style="color:#999999">.</span>domain<span style="color:#999999">.</span>User<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> org<span style="color:#999999">.</span>apache<span style="color:#999999">.</span>ibatis<span style="color:#999999">.</span>io<span style="color:#999999">.</span>Resources<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> org<span style="color:#999999">.</span>apache<span style="color:#999999">.</span>ibatis<span style="color:#999999">.</span>session<span style="color:#999999">.</span>SqlSession<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> org<span style="color:#999999">.</span>apache<span style="color:#999999">.</span>ibatis<span style="color:#999999">.</span>session<span style="color:#999999">.</span>SqlSessionFactory<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> org<span style="color:#999999">.</span>apache<span style="color:#999999">.</span>ibatis<span style="color:#999999">.</span>session<span style="color:#999999">.</span>SqlSessionFactoryBuilder<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> org<span style="color:#999999">.</span>junit<span style="color:#999999">.</span>After<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> org<span style="color:#999999">.</span>junit<span style="color:#999999">.</span>Before<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> org<span style="color:#999999">.</span>junit<span style="color:#999999">.</span>Test<span style="color:#999999">;</span>

<span style="color:#c678dd">import</span> java<span style="color:#999999">.</span>io<span style="color:#999999">.</span>InputStream<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> java<span style="color:#999999">.</span>util<span style="color:#999999">.</span>Date<span style="color:#999999">;</span>
<span style="color:#c678dd">import</span> java<span style="color:#999999">.</span>util<span style="color:#999999">.</span>List<span style="color:#999999">;</span>

<span style="color:#5c6370">/**
 * Keafmd
 *
 * @ClassName: AnnotationCRUDTest
 * @Description: 注解开发CRUD测试
 * @author: 牛哄哄的柯南
 * @date: 2021-02-16 21:05
 */</span>
<span style="color:#c678dd">public</span> <span style="color:#c678dd">class</span> UserTest <span style="color:#999999">{</span>
    <span style="color:#c678dd">private</span> InputStream in<span style="color:#999999">;</span>
    <span style="color:#c678dd">private</span> SqlSessionFactory factory<span style="color:#999999">;</span>
    <span style="color:#c678dd">private</span> SqlSession session<span style="color:#999999">;</span>
    <span style="color:#c678dd">private</span> IUserDao userDao<span style="color:#999999">;</span>

    <span style="color:#999999">@Before</span>
    <span style="color:#c678dd">public</span> <span style="color:#c678dd">void</span> <span style="color:#61aeee">init</span><span style="color:#999999">(</span><span style="color:#999999">)</span> <span style="color:#c678dd">throws</span> Exception<span style="color:#999999">{</span>
        in <span style="color:#669900">=</span> Resources<span style="color:#999999">.</span><span style="color:#61aeee">getResourceAsStream</span><span style="color:#999999">(</span><span style="color:#669900">"SqlMapConfig.xml"</span><span style="color:#999999">)</span><span style="color:#999999">;</span>
        factory <span style="color:#669900">=</span> <span style="color:#c678dd">new</span> SqlSessionFactoryBuilder<span style="color:#999999">(</span><span style="color:#999999">)</span><span style="color:#999999">.</span><span style="color:#61aeee">build</span><span style="color:#999999">(</span>in<span style="color:#999999">)</span><span style="color:#999999">;</span>
        session <span style="color:#669900">=</span> factory<span style="color:#999999">.</span><span style="color:#61aeee">openSession</span><span style="color:#999999">(</span><span style="color:#999999">)</span><span style="color:#999999">;</span>
        userDao <span style="color:#669900">=</span> session<span style="color:#999999">.</span><span style="color:#61aeee">getMapper</span><span style="color:#999999">(</span>IUserDao<span style="color:#999999">.</span><span style="color:#c678dd">class</span><span style="color:#999999">)</span><span style="color:#999999">;</span>
    <span style="color:#999999">}</span>

    <span style="color:#999999">@After</span>
    <span style="color:#c678dd">public</span> <span style="color:#c678dd">void</span> <span style="color:#61aeee">destory</span><span style="color:#999999">(</span><span style="color:#999999">)</span> <span style="color:#c678dd">throws</span> Exception<span style="color:#999999">{</span>
        session<span style="color:#999999">.</span><span style="color:#61aeee">commit</span><span style="color:#999999">(</span><span style="color:#999999">)</span><span style="color:#999999">;</span>
        session<span style="color:#999999">.</span><span style="color:#61aeee">close</span><span style="color:#999999">(</span><span style="color:#999999">)</span><span style="color:#999999">;</span>
        in<span style="color:#999999">.</span><span style="color:#61aeee">close</span><span style="color:#999999">(</span><span style="color:#999999">)</span><span style="color:#999999">;</span>
    <span style="color:#999999">}</span>

    <span style="color:#999999">@Test</span>
    <span style="color:#c678dd">public</span> <span style="color:#c678dd">void</span> <span style="color:#61aeee">testFindAll</span><span style="color:#999999">(</span><span style="color:#999999">)</span><span style="color:#999999">{</span>
        List<span style="color:#61aeee"><span style="color:#999999"><</span>User<span style="color:#999999">></span></span> users <span style="color:#669900">=</span> userDao<span style="color:#999999">.</span><span style="color:#61aeee">findAll</span><span style="color:#999999">(</span><span style="color:#999999">)</span><span style="color:#999999">;</span>
        <span style="color:#c678dd">for</span> <span style="color:#999999">(</span>User user <span style="color:#669900">:</span> users<span style="color:#999999">)</span> <span style="color:#999999">{</span>
            System<span style="color:#999999">.</span>out<span style="color:#999999">.</span><span style="color:#61aeee">println</span><span style="color:#999999">(</span><span style="color:#669900">"-----每个用户的信息"</span><span style="color:#999999">)</span><span style="color:#999999">;</span>
            System<span style="color:#999999">.</span>out<span style="color:#999999">.</span><span style="color:#61aeee">println</span><span style="color:#999999">(</span>user<span style="color:#999999">)</span><span style="color:#999999">;</span>
            System<span style="color:#999999">.</span>out<span style="color:#999999">.</span><span style="color:#61aeee">println</span><span style="color:#999999">(</span>user<span style="color:#999999">.</span><span style="color:#61aeee">getAccounts</span><span style="color:#999999">(</span><span style="color:#999999">)</span><span style="color:#999999">)</span><span style="color:#999999">;</span>
        <span style="color:#999999">}</span>
    <span style="color:#999999">}</span>

  
<span style="color:#999999">}</span>
</code></span>

运行testFindAll()的结果:

<span style="color:#000000"><code class="language-java"><span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">14</span><span style="color:#669900">:</span><span style="color:#98c379">19</span><span style="color:#999999">,</span><span style="color:#98c379">655</span> <span style="color:#98c379">378</span>    <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG ansaction<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>JdbcTransaction  <span style="color:#669900">-</span> Opening JDBC Connection
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">14</span><span style="color:#669900">:</span><span style="color:#98c379">20</span><span style="color:#999999">,</span><span style="color:#98c379">124</span> <span style="color:#98c379">847</span>    <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG source<span style="color:#999999">.</span>pooled<span style="color:#999999">.</span>PooledDataSource  <span style="color:#669900">-</span> Created connection <span style="color:#98c379">1176735295.</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">14</span><span style="color:#669900">:</span><span style="color:#98c379">20</span><span style="color:#999999">,</span><span style="color:#98c379">124</span> <span style="color:#98c379">847</span>    <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG ansaction<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>JdbcTransaction  <span style="color:#669900">-</span> Setting autocommit to <span style="color:#56b6c2">false</span> on JDBC Connection <span style="color:#999999">[</span>com<span style="color:#999999">.</span>mysql<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>JDBC4Connection<span style="color:#999999">@46238e3f</span><span style="color:#999999">]</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">14</span><span style="color:#669900">:</span><span style="color:#98c379">20</span><span style="color:#999999">,</span><span style="color:#98c379">135</span> <span style="color:#98c379">858</span>    <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG om<span style="color:#999999">.</span>keafmd<span style="color:#999999">.</span>dao<span style="color:#999999">.</span>IUserDao<span style="color:#999999">.</span>findAll  <span style="color:#669900">-</span> <span style="color:#669900">==</span><span style="color:#669900">></span>  Preparing<span style="color:#669900">:</span> select <span style="color:#669900">*</span> from user
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">14</span><span style="color:#669900">:</span><span style="color:#98c379">20</span><span style="color:#999999">,</span><span style="color:#98c379">183</span> <span style="color:#98c379">906</span>    <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG om<span style="color:#999999">.</span>keafmd<span style="color:#999999">.</span>dao<span style="color:#999999">.</span>IUserDao<span style="color:#999999">.</span>findAll  <span style="color:#669900">-</span> <span style="color:#669900">==</span><span style="color:#669900">></span> Parameters<span style="color:#669900">:</span> 
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">14</span><span style="color:#669900">:</span><span style="color:#98c379">20</span><span style="color:#999999">,</span><span style="color:#98c379">471</span> <span style="color:#98c379">1194</span>   <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG om<span style="color:#999999">.</span>keafmd<span style="color:#999999">.</span>dao<span style="color:#999999">.</span>IUserDao<span style="color:#999999">.</span>findAll  <span style="color:#669900">-</span> <span style="color:#669900"><=</span><span style="color:#669900">=</span>      Total<span style="color:#669900">:</span> <span style="color:#98c379">9</span>
<span style="color:#669900">--</span><span style="color:#669900">--</span><span style="color:#669900">-</span>每个用户的信息
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">14</span><span style="color:#669900">:</span><span style="color:#98c379">20</span><span style="color:#999999">,</span><span style="color:#98c379">473</span> <span style="color:#98c379">1196</span>   <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG o<span style="color:#999999">.</span>IAccountDao<span style="color:#999999">.</span>findAccountByUid  <span style="color:#669900">-</span> <span style="color:#669900">==</span><span style="color:#669900">></span>  Preparing<span style="color:#669900">:</span> select <span style="color:#669900">*</span> from account where uid <span style="color:#669900">=</span> <span style="color:#669900">?</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">14</span><span style="color:#669900">:</span><span style="color:#98c379">20</span><span style="color:#999999">,</span><span style="color:#98c379">474</span> <span style="color:#98c379">1197</span>   <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG o<span style="color:#999999">.</span>IAccountDao<span style="color:#999999">.</span>findAccountByUid  <span style="color:#669900">-</span> <span style="color:#669900">==</span><span style="color:#669900">></span> Parameters<span style="color:#669900">:</span> <span style="color:#61aeee">41</span><span style="color:#999999">(</span>Integer<span style="color:#999999">)</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">14</span><span style="color:#669900">:</span><span style="color:#98c379">20</span><span style="color:#999999">,</span><span style="color:#98c379">475</span> <span style="color:#98c379">1198</span>   <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG o<span style="color:#999999">.</span>IAccountDao<span style="color:#999999">.</span>findAccountByUid  <span style="color:#669900">-</span> <span style="color:#669900"><=</span><span style="color:#669900">=</span>      Total<span style="color:#669900">:</span> <span style="color:#98c379">2</span>
User<span style="color:#999999">{</span>userId<span style="color:#669900">=</span><span style="color:#98c379">41</span><span style="color:#999999">,</span> userName<span style="color:#669900">=</span><span style="color:#669900">'update user clear cache'</span><span style="color:#999999">,</span> userAddress<span style="color:#669900">=</span><span style="color:#669900">'null'</span><span style="color:#999999">,</span> userSex<span style="color:#669900">=</span><span style="color:#669900">'男'</span><span style="color:#999999">,</span> userBirthday<span style="color:#669900">=</span>Tue Feb <span style="color:#98c379">27</span> <span style="color:#98c379">17</span><span style="color:#669900">:</span><span style="color:#98c379">47</span><span style="color:#669900">:</span><span style="color:#98c379">08</span> CST <span style="color:#98c379">2018</span><span style="color:#999999">}</span>
<span style="color:#999999">[</span>Account<span style="color:#999999">{</span>id<span style="color:#669900">=</span><span style="color:#98c379">1</span><span style="color:#999999">,</span> uid<span style="color:#669900">=</span><span style="color:#98c379">41</span><span style="color:#999999">,</span> money<span style="color:#669900">=</span><span style="color:#98c379">1000.0</span><span style="color:#999999">}</span><span style="color:#999999">,</span> Account<span style="color:#999999">{</span>id<span style="color:#669900">=</span><span style="color:#98c379">3</span><span style="color:#999999">,</span> uid<span style="color:#669900">=</span><span style="color:#98c379">41</span><span style="color:#999999">,</span> money<span style="color:#669900">=</span><span style="color:#98c379">2000.0</span><span style="color:#999999">}</span><span style="color:#999999">]</span>
<span style="color:#669900">--</span><span style="color:#669900">--</span><span style="color:#669900">-</span>每个用户的信息
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">14</span><span style="color:#669900">:</span><span style="color:#98c379">20</span><span style="color:#999999">,</span><span style="color:#98c379">476</span> <span style="color:#98c379">1199</span>   <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG o<span style="color:#999999">.</span>IAccountDao<span style="color:#999999">.</span>findAccountByUid  <span style="color:#669900">-</span> <span style="color:#669900">==</span><span style="color:#669900">></span>  Preparing<span style="color:#669900">:</span> select <span style="color:#669900">*</span> from account where uid <span style="color:#669900">=</span> <span style="color:#669900">?</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">14</span><span style="color:#669900">:</span><span style="color:#98c379">20</span><span style="color:#999999">,</span><span style="color:#98c379">476</span> <span style="color:#98c379">1199</span>   <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG o<span style="color:#999999">.</span>IAccountDao<span style="color:#999999">.</span>findAccountByUid  <span style="color:#669900">-</span> <span style="color:#669900">==</span><span style="color:#669900">></span> Parameters<span style="color:#669900">:</span> <span style="color:#61aeee">42</span><span style="color:#999999">(</span>Integer<span style="color:#999999">)</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">14</span><span style="color:#669900">:</span><span style="color:#98c379">20</span><span style="color:#999999">,</span><span style="color:#98c379">477</span> <span style="color:#98c379">1200</span>   <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG o<span style="color:#999999">.</span>IAccountDao<span style="color:#999999">.</span>findAccountByUid  <span style="color:#669900">-</span> <span style="color:#669900"><=</span><span style="color:#669900">=</span>      Total<span style="color:#669900">:</span> <span style="color:#98c379">0</span>
User<span style="color:#999999">{</span>userId<span style="color:#669900">=</span><span style="color:#98c379">42</span><span style="color:#999999">,</span> userName<span style="color:#669900">=</span><span style="color:#669900">'update'</span><span style="color:#999999">,</span> userAddress<span style="color:#669900">=</span><span style="color:#669900">'null'</span><span style="color:#999999">,</span> userSex<span style="color:#669900">=</span><span style="color:#669900">'男'</span><span style="color:#999999">,</span> userBirthday<span style="color:#669900">=</span>Mon Feb <span style="color:#98c379">08</span> <span style="color:#98c379">19</span><span style="color:#669900">:</span><span style="color:#98c379">37</span><span style="color:#669900">:</span><span style="color:#98c379">31</span> CST <span style="color:#98c379">2021</span><span style="color:#999999">}</span>
<span style="color:#999999">[</span><span style="color:#999999">]</span>
<span style="color:#669900">--</span><span style="color:#669900">--</span><span style="color:#669900">-</span>每个用户的信息
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">14</span><span style="color:#669900">:</span><span style="color:#98c379">20</span><span style="color:#999999">,</span><span style="color:#98c379">479</span> <span style="color:#98c379">1202</span>   <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG o<span style="color:#999999">.</span>IAccountDao<span style="color:#999999">.</span>findAccountByUid  <span style="color:#669900">-</span> <span style="color:#669900">==</span><span style="color:#669900">></span>  Preparing<span style="color:#669900">:</span> select <span style="color:#669900">*</span> from account where uid <span style="color:#669900">=</span> <span style="color:#669900">?</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">14</span><span style="color:#669900">:</span><span style="color:#98c379">20</span><span style="color:#999999">,</span><span style="color:#98c379">480</span> <span style="color:#98c379">1203</span>   <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG o<span style="color:#999999">.</span>IAccountDao<span style="color:#999999">.</span>findAccountByUid  <span style="color:#669900">-</span> <span style="color:#669900">==</span><span style="color:#669900">></span> Parameters<span style="color:#669900">:</span> <span style="color:#61aeee">43</span><span style="color:#999999">(</span>Integer<span style="color:#999999">)</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">14</span><span style="color:#669900">:</span><span style="color:#98c379">20</span><span style="color:#999999">,</span><span style="color:#98c379">481</span> <span style="color:#98c379">1204</span>   <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG o<span style="color:#999999">.</span>IAccountDao<span style="color:#999999">.</span>findAccountByUid  <span style="color:#669900">-</span> <span style="color:#669900"><=</span><span style="color:#669900">=</span>      Total<span style="color:#669900">:</span> <span style="color:#98c379">0</span>
User<span style="color:#999999">{</span>userId<span style="color:#669900">=</span><span style="color:#98c379">43</span><span style="color:#999999">,</span> userName<span style="color:#669900">=</span><span style="color:#669900">'小二王'</span><span style="color:#999999">,</span> userAddress<span style="color:#669900">=</span><span style="color:#669900">'null'</span><span style="color:#999999">,</span> userSex<span style="color:#669900">=</span><span style="color:#669900">'女'</span><span style="color:#999999">,</span> userBirthday<span style="color:#669900">=</span>Sun Mar <span style="color:#98c379">04</span> <span style="color:#98c379">11</span><span style="color:#669900">:</span><span style="color:#98c379">34</span><span style="color:#669900">:</span><span style="color:#98c379">34</span> CST <span style="color:#98c379">2018</span><span style="color:#999999">}</span>
<span style="color:#999999">[</span><span style="color:#999999">]</span>
<span style="color:#669900">--</span><span style="color:#669900">--</span><span style="color:#669900">-</span>每个用户的信息
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">14</span><span style="color:#669900">:</span><span style="color:#98c379">20</span><span style="color:#999999">,</span><span style="color:#98c379">481</span> <span style="color:#98c379">1204</span>   <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG o<span style="color:#999999">.</span>IAccountDao<span style="color:#999999">.</span>findAccountByUid  <span style="color:#669900">-</span> <span style="color:#669900">==</span><span style="color:#669900">></span>  Preparing<span style="color:#669900">:</span> select <span style="color:#669900">*</span> from account where uid <span style="color:#669900">=</span> <span style="color:#669900">?</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">14</span><span style="color:#669900">:</span><span style="color:#98c379">20</span><span style="color:#999999">,</span><span style="color:#98c379">482</span> <span style="color:#98c379">1205</span>   <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG o<span style="color:#999999">.</span>IAccountDao<span style="color:#999999">.</span>findAccountByUid  <span style="color:#669900">-</span> <span style="color:#669900">==</span><span style="color:#669900">></span> Parameters<span style="color:#669900">:</span> <span style="color:#61aeee">45</span><span style="color:#999999">(</span>Integer<span style="color:#999999">)</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">14</span><span style="color:#669900">:</span><span style="color:#98c379">20</span><span style="color:#999999">,</span><span style="color:#98c379">483</span> <span style="color:#98c379">1206</span>   <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG o<span style="color:#999999">.</span>IAccountDao<span style="color:#999999">.</span>findAccountByUid  <span style="color:#669900">-</span> <span style="color:#669900"><=</span><span style="color:#669900">=</span>      Total<span style="color:#669900">:</span> <span style="color:#98c379">1</span>
User<span style="color:#999999">{</span>userId<span style="color:#669900">=</span><span style="color:#98c379">45</span><span style="color:#999999">,</span> userName<span style="color:#669900">=</span><span style="color:#669900">'新一'</span><span style="color:#999999">,</span> userAddress<span style="color:#669900">=</span><span style="color:#669900">'null'</span><span style="color:#999999">,</span> userSex<span style="color:#669900">=</span><span style="color:#669900">'男'</span><span style="color:#999999">,</span> userBirthday<span style="color:#669900">=</span>Sun Mar <span style="color:#98c379">04</span> <span style="color:#98c379">12</span><span style="color:#669900">:</span><span style="color:#98c379">04</span><span style="color:#669900">:</span><span style="color:#98c379">06</span> CST <span style="color:#98c379">2018</span><span style="color:#999999">}</span>
<span style="color:#999999">[</span>Account<span style="color:#999999">{</span>id<span style="color:#669900">=</span><span style="color:#98c379">2</span><span style="color:#999999">,</span> uid<span style="color:#669900">=</span><span style="color:#98c379">45</span><span style="color:#999999">,</span> money<span style="color:#669900">=</span><span style="color:#98c379">1000.0</span><span style="color:#999999">}</span><span style="color:#999999">]</span>
<span style="color:#669900">--</span><span style="color:#669900">--</span><span style="color:#669900">-</span>每个用户的信息
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">14</span><span style="color:#669900">:</span><span style="color:#98c379">20</span><span style="color:#999999">,</span><span style="color:#98c379">484</span> <span style="color:#98c379">1207</span>   <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG o<span style="color:#999999">.</span>IAccountDao<span style="color:#999999">.</span>findAccountByUid  <span style="color:#669900">-</span> <span style="color:#669900">==</span><span style="color:#669900">></span>  Preparing<span style="color:#669900">:</span> select <span style="color:#669900">*</span> from account where uid <span style="color:#669900">=</span> <span style="color:#669900">?</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">14</span><span style="color:#669900">:</span><span style="color:#98c379">20</span><span style="color:#999999">,</span><span style="color:#98c379">484</span> <span style="color:#98c379">1207</span>   <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG o<span style="color:#999999">.</span>IAccountDao<span style="color:#999999">.</span>findAccountByUid  <span style="color:#669900">-</span> <span style="color:#669900">==</span><span style="color:#669900">></span> Parameters<span style="color:#669900">:</span> <span style="color:#61aeee">50</span><span style="color:#999999">(</span>Integer<span style="color:#999999">)</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">14</span><span style="color:#669900">:</span><span style="color:#98c379">20</span><span style="color:#999999">,</span><span style="color:#98c379">484</span> <span style="color:#98c379">1207</span>   <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG o<span style="color:#999999">.</span>IAccountDao<span style="color:#999999">.</span>findAccountByUid  <span style="color:#669900">-</span> <span style="color:#669900"><=</span><span style="color:#669900">=</span>      Total<span style="color:#669900">:</span> <span style="color:#98c379">0</span>
User<span style="color:#999999">{</span>userId<span style="color:#669900">=</span><span style="color:#98c379">50</span><span style="color:#999999">,</span> userName<span style="color:#669900">=</span><span style="color:#669900">'Keafmd'</span><span style="color:#999999">,</span> userAddress<span style="color:#669900">=</span><span style="color:#669900">'null'</span><span style="color:#999999">,</span> userSex<span style="color:#669900">=</span><span style="color:#669900">'男'</span><span style="color:#999999">,</span> userBirthday<span style="color:#669900">=</span>Mon Feb <span style="color:#98c379">08</span> <span style="color:#98c379">15</span><span style="color:#669900">:</span><span style="color:#98c379">44</span><span style="color:#669900">:</span><span style="color:#98c379">01</span> CST <span style="color:#98c379">2021</span><span style="color:#999999">}</span>
<span style="color:#999999">[</span><span style="color:#999999">]</span>
<span style="color:#669900">--</span><span style="color:#669900">--</span><span style="color:#669900">-</span>每个用户的信息
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">14</span><span style="color:#669900">:</span><span style="color:#98c379">20</span><span style="color:#999999">,</span><span style="color:#98c379">485</span> <span style="color:#98c379">1208</span>   <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG o<span style="color:#999999">.</span>IAccountDao<span style="color:#999999">.</span>findAccountByUid  <span style="color:#669900">-</span> <span style="color:#669900">==</span><span style="color:#669900">></span>  Preparing<span style="color:#669900">:</span> select <span style="color:#669900">*</span> from account where uid <span style="color:#669900">=</span> <span style="color:#669900">?</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">14</span><span style="color:#669900">:</span><span style="color:#98c379">20</span><span style="color:#999999">,</span><span style="color:#98c379">485</span> <span style="color:#98c379">1208</span>   <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG o<span style="color:#999999">.</span>IAccountDao<span style="color:#999999">.</span>findAccountByUid  <span style="color:#669900">-</span> <span style="color:#669900">==</span><span style="color:#669900">></span> Parameters<span style="color:#669900">:</span> <span style="color:#61aeee">51</span><span style="color:#999999">(</span>Integer<span style="color:#999999">)</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">14</span><span style="color:#669900">:</span><span style="color:#98c379">20</span><span style="color:#999999">,</span><span style="color:#98c379">486</span> <span style="color:#98c379">1209</span>   <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG o<span style="color:#999999">.</span>IAccountDao<span style="color:#999999">.</span>findAccountByUid  <span style="color:#669900">-</span> <span style="color:#669900"><=</span><span style="color:#669900">=</span>      Total<span style="color:#669900">:</span> <span style="color:#98c379">0</span>
User<span style="color:#999999">{</span>userId<span style="color:#669900">=</span><span style="color:#98c379">51</span><span style="color:#999999">,</span> userName<span style="color:#669900">=</span><span style="color:#669900">'update DAO'</span><span style="color:#999999">,</span> userAddress<span style="color:#669900">=</span><span style="color:#669900">'null'</span><span style="color:#999999">,</span> userSex<span style="color:#669900">=</span><span style="color:#669900">'男'</span><span style="color:#999999">,</span> userBirthday<span style="color:#669900">=</span>Tue Feb <span style="color:#98c379">09</span> <span style="color:#98c379">11</span><span style="color:#669900">:</span><span style="color:#98c379">31</span><span style="color:#669900">:</span><span style="color:#98c379">38</span> CST <span style="color:#98c379">2021</span><span style="color:#999999">}</span>
<span style="color:#999999">[</span><span style="color:#999999">]</span>
<span style="color:#669900">--</span><span style="color:#669900">--</span><span style="color:#669900">-</span>每个用户的信息
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">14</span><span style="color:#669900">:</span><span style="color:#98c379">20</span><span style="color:#999999">,</span><span style="color:#98c379">488</span> <span style="color:#98c379">1211</span>   <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG o<span style="color:#999999">.</span>IAccountDao<span style="color:#999999">.</span>findAccountByUid  <span style="color:#669900">-</span> <span style="color:#669900">==</span><span style="color:#669900">></span>  Preparing<span style="color:#669900">:</span> select <span style="color:#669900">*</span> from account where uid <span style="color:#669900">=</span> <span style="color:#669900">?</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">14</span><span style="color:#669900">:</span><span style="color:#98c379">20</span><span style="color:#999999">,</span><span style="color:#98c379">489</span> <span style="color:#98c379">1212</span>   <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG o<span style="color:#999999">.</span>IAccountDao<span style="color:#999999">.</span>findAccountByUid  <span style="color:#669900">-</span> <span style="color:#669900">==</span><span style="color:#669900">></span> Parameters<span style="color:#669900">:</span> <span style="color:#61aeee">52</span><span style="color:#999999">(</span>Integer<span style="color:#999999">)</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">14</span><span style="color:#669900">:</span><span style="color:#98c379">20</span><span style="color:#999999">,</span><span style="color:#98c379">491</span> <span style="color:#98c379">1214</span>   <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG o<span style="color:#999999">.</span>IAccountDao<span style="color:#999999">.</span>findAccountByUid  <span style="color:#669900">-</span> <span style="color:#669900"><=</span><span style="color:#669900">=</span>      Total<span style="color:#669900">:</span> <span style="color:#98c379">0</span>
User<span style="color:#999999">{</span>userId<span style="color:#669900">=</span><span style="color:#98c379">52</span><span style="color:#999999">,</span> userName<span style="color:#669900">=</span><span style="color:#669900">'Keafmd DAO'</span><span style="color:#999999">,</span> userAddress<span style="color:#669900">=</span><span style="color:#669900">'null'</span><span style="color:#999999">,</span> userSex<span style="color:#669900">=</span><span style="color:#669900">'男'</span><span style="color:#999999">,</span> userBirthday<span style="color:#669900">=</span>Tue Feb <span style="color:#98c379">09</span> <span style="color:#98c379">11</span><span style="color:#669900">:</span><span style="color:#98c379">29</span><span style="color:#669900">:</span><span style="color:#98c379">41</span> CST <span style="color:#98c379">2021</span><span style="color:#999999">}</span>
<span style="color:#999999">[</span><span style="color:#999999">]</span>
<span style="color:#669900">--</span><span style="color:#669900">--</span><span style="color:#669900">-</span>每个用户的信息
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">14</span><span style="color:#669900">:</span><span style="color:#98c379">20</span><span style="color:#999999">,</span><span style="color:#98c379">491</span> <span style="color:#98c379">1214</span>   <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG o<span style="color:#999999">.</span>IAccountDao<span style="color:#999999">.</span>findAccountByUid  <span style="color:#669900">-</span> <span style="color:#669900">==</span><span style="color:#669900">></span>  Preparing<span style="color:#669900">:</span> select <span style="color:#669900">*</span> from account where uid <span style="color:#669900">=</span> <span style="color:#669900">?</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">14</span><span style="color:#669900">:</span><span style="color:#98c379">20</span><span style="color:#999999">,</span><span style="color:#98c379">492</span> <span style="color:#98c379">1215</span>   <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG o<span style="color:#999999">.</span>IAccountDao<span style="color:#999999">.</span>findAccountByUid  <span style="color:#669900">-</span> <span style="color:#669900">==</span><span style="color:#669900">></span> Parameters<span style="color:#669900">:</span> <span style="color:#61aeee">53</span><span style="color:#999999">(</span>Integer<span style="color:#999999">)</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">14</span><span style="color:#669900">:</span><span style="color:#98c379">20</span><span style="color:#999999">,</span><span style="color:#98c379">493</span> <span style="color:#98c379">1216</span>   <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG o<span style="color:#999999">.</span>IAccountDao<span style="color:#999999">.</span>findAccountByUid  <span style="color:#669900">-</span> <span style="color:#669900"><=</span><span style="color:#669900">=</span>      Total<span style="color:#669900">:</span> <span style="color:#98c379">0</span>
User<span style="color:#999999">{</span>userId<span style="color:#669900">=</span><span style="color:#98c379">53</span><span style="color:#999999">,</span> userName<span style="color:#669900">=</span><span style="color:#669900">'Keafmd laset insertid 1'</span><span style="color:#999999">,</span> userAddress<span style="color:#669900">=</span><span style="color:#669900">'null'</span><span style="color:#999999">,</span> userSex<span style="color:#669900">=</span><span style="color:#669900">'男'</span><span style="color:#999999">,</span> userBirthday<span style="color:#669900">=</span>Fri Feb <span style="color:#98c379">12</span> <span style="color:#98c379">20</span><span style="color:#669900">:</span><span style="color:#98c379">53</span><span style="color:#669900">:</span><span style="color:#98c379">46</span> CST <span style="color:#98c379">2021</span><span style="color:#999999">}</span>
<span style="color:#999999">[</span><span style="color:#999999">]</span>
<span style="color:#669900">--</span><span style="color:#669900">--</span><span style="color:#669900">-</span>每个用户的信息
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">14</span><span style="color:#669900">:</span><span style="color:#98c379">20</span><span style="color:#999999">,</span><span style="color:#98c379">493</span> <span style="color:#98c379">1216</span>   <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG o<span style="color:#999999">.</span>IAccountDao<span style="color:#999999">.</span>findAccountByUid  <span style="color:#669900">-</span> <span style="color:#669900">==</span><span style="color:#669900">></span>  Preparing<span style="color:#669900">:</span> select <span style="color:#669900">*</span> from account where uid <span style="color:#669900">=</span> <span style="color:#669900">?</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">14</span><span style="color:#669900">:</span><span style="color:#98c379">20</span><span style="color:#999999">,</span><span style="color:#98c379">493</span> <span style="color:#98c379">1216</span>   <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG o<span style="color:#999999">.</span>IAccountDao<span style="color:#999999">.</span>findAccountByUid  <span style="color:#669900">-</span> <span style="color:#669900">==</span><span style="color:#669900">></span> Parameters<span style="color:#669900">:</span> <span style="color:#61aeee">55</span><span style="color:#999999">(</span>Integer<span style="color:#999999">)</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">14</span><span style="color:#669900">:</span><span style="color:#98c379">20</span><span style="color:#999999">,</span><span style="color:#98c379">494</span> <span style="color:#98c379">1217</span>   <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG o<span style="color:#999999">.</span>IAccountDao<span style="color:#999999">.</span>findAccountByUid  <span style="color:#669900">-</span> <span style="color:#669900"><=</span><span style="color:#669900">=</span>      Total<span style="color:#669900">:</span> <span style="color:#98c379">0</span>
User<span style="color:#999999">{</span>userId<span style="color:#669900">=</span><span style="color:#98c379">55</span><span style="color:#999999">,</span> userName<span style="color:#669900">=</span><span style="color:#669900">'mybatis annotation'</span><span style="color:#999999">,</span> userAddress<span style="color:#669900">=</span><span style="color:#669900">'null'</span><span style="color:#999999">,</span> userSex<span style="color:#669900">=</span><span style="color:#669900">'男'</span><span style="color:#999999">,</span> userBirthday<span style="color:#669900">=</span>Tue Feb <span style="color:#98c379">16</span> <span style="color:#98c379">22</span><span style="color:#669900">:</span><span style="color:#98c379">15</span><span style="color:#669900">:</span><span style="color:#98c379">36</span> CST <span style="color:#98c379">2021</span><span style="color:#999999">}</span>
<span style="color:#999999">[</span><span style="color:#999999">]</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">14</span><span style="color:#669900">:</span><span style="color:#98c379">20</span><span style="color:#999999">,</span><span style="color:#98c379">495</span> <span style="color:#98c379">1218</span>   <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG ansaction<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>JdbcTransaction  <span style="color:#669900">-</span> Resetting autocommit to <span style="color:#56b6c2">true</span> on JDBC Connection <span style="color:#999999">[</span>com<span style="color:#999999">.</span>mysql<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>JDBC4Connection<span style="color:#999999">@46238e3f</span><span style="color:#999999">]</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">14</span><span style="color:#669900">:</span><span style="color:#98c379">20</span><span style="color:#999999">,</span><span style="color:#98c379">495</span> <span style="color:#98c379">1218</span>   <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG ansaction<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>JdbcTransaction  <span style="color:#669900">-</span> Closing JDBC Connection <span style="color:#999999">[</span>com<span style="color:#999999">.</span>mysql<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>JDBC4Connection<span style="color:#999999">@46238e3f</span><span style="color:#999999">]</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">14</span><span style="color:#669900">:</span><span style="color:#98c379">20</span><span style="color:#999999">,</span><span style="color:#98c379">495</span> <span style="color:#98c379">1218</span>   <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG source<span style="color:#999999">.</span>pooled<span style="color:#999999">.</span>PooledDataSource  <span style="color:#669900">-</span> Returned connection <span style="color:#98c379">1176735295</span> to pool<span style="color:#999999">.</span>

Process finished with exit code <span style="color:#98c379">0</span>
</code></span>

可以看出来延迟加载,在每次加载每个用户时都会查询一次。

修改测试代码:

<span style="color:#000000"><code class="language-java"><span style="color:#999999">@Test</span>
<span style="color:#c678dd">public</span> <span style="color:#c678dd">void</span> <span style="color:#61aeee">testFindAll</span><span style="color:#999999">(</span><span style="color:#999999">)</span><span style="color:#999999">{</span>
    List<span style="color:#61aeee"><span style="color:#999999"><</span>User<span style="color:#999999">></span></span> users <span style="color:#669900">=</span> userDao<span style="color:#999999">.</span><span style="color:#61aeee">findAll</span><span style="color:#999999">(</span><span style="color:#999999">)</span><span style="color:#999999">;</span>
    <span style="color:#5c6370">/*for (User user : users) {
        System.out.println("-----每个用户的信息");
        System.out.println(user);
        System.out.println(user.getAccounts());
    }*/</span>
<span style="color:#999999">}</span>
</code></span>

运行结果:

<span style="color:#000000"><code class="language-java"><span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">17</span><span style="color:#669900">:</span><span style="color:#98c379">26</span><span style="color:#999999">,</span><span style="color:#98c379">203</span> <span style="color:#98c379">166</span>    <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG ansaction<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>JdbcTransaction  <span style="color:#669900">-</span> Opening JDBC Connection
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">17</span><span style="color:#669900">:</span><span style="color:#98c379">26</span><span style="color:#999999">,</span><span style="color:#98c379">500</span> <span style="color:#98c379">463</span>    <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG source<span style="color:#999999">.</span>pooled<span style="color:#999999">.</span>PooledDataSource  <span style="color:#669900">-</span> Created connection <span style="color:#98c379">1176735295.</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">17</span><span style="color:#669900">:</span><span style="color:#98c379">26</span><span style="color:#999999">,</span><span style="color:#98c379">500</span> <span style="color:#98c379">463</span>    <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG ansaction<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>JdbcTransaction  <span style="color:#669900">-</span> Setting autocommit to <span style="color:#56b6c2">false</span> on JDBC Connection <span style="color:#999999">[</span>com<span style="color:#999999">.</span>mysql<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>JDBC4Connection<span style="color:#999999">@46238e3f</span><span style="color:#999999">]</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">17</span><span style="color:#669900">:</span><span style="color:#98c379">26</span><span style="color:#999999">,</span><span style="color:#98c379">505</span> <span style="color:#98c379">468</span>    <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG om<span style="color:#999999">.</span>keafmd<span style="color:#999999">.</span>dao<span style="color:#999999">.</span>IUserDao<span style="color:#999999">.</span>findAll  <span style="color:#669900">-</span> <span style="color:#669900">==</span><span style="color:#669900">></span>  Preparing<span style="color:#669900">:</span> select <span style="color:#669900">*</span> from user
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">17</span><span style="color:#669900">:</span><span style="color:#98c379">26</span><span style="color:#999999">,</span><span style="color:#98c379">540</span> <span style="color:#98c379">503</span>    <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG om<span style="color:#999999">.</span>keafmd<span style="color:#999999">.</span>dao<span style="color:#999999">.</span>IUserDao<span style="color:#999999">.</span>findAll  <span style="color:#669900">-</span> <span style="color:#669900">==</span><span style="color:#669900">></span> Parameters<span style="color:#669900">:</span> 
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">17</span><span style="color:#669900">:</span><span style="color:#98c379">26</span><span style="color:#999999">,</span><span style="color:#98c379">613</span> <span style="color:#98c379">576</span>    <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG om<span style="color:#999999">.</span>keafmd<span style="color:#999999">.</span>dao<span style="color:#999999">.</span>IUserDao<span style="color:#999999">.</span>findAll  <span style="color:#669900">-</span> <span style="color:#669900"><=</span><span style="color:#669900">=</span>      Total<span style="color:#669900">:</span> <span style="color:#98c379">9</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">17</span><span style="color:#669900">:</span><span style="color:#98c379">26</span><span style="color:#999999">,</span><span style="color:#98c379">614</span> <span style="color:#98c379">577</span>    <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG ansaction<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>JdbcTransaction  <span style="color:#669900">-</span> Resetting autocommit to <span style="color:#56b6c2">true</span> on JDBC Connection <span style="color:#999999">[</span>com<span style="color:#999999">.</span>mysql<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>JDBC4Connection<span style="color:#999999">@46238e3f</span><span style="color:#999999">]</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">17</span><span style="color:#669900">:</span><span style="color:#98c379">26</span><span style="color:#999999">,</span><span style="color:#98c379">614</span> <span style="color:#98c379">577</span>    <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG ansaction<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>JdbcTransaction  <span style="color:#669900">-</span> Closing JDBC Connection <span style="color:#999999">[</span>com<span style="color:#999999">.</span>mysql<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>JDBC4Connection<span style="color:#999999">@46238e3f</span><span style="color:#999999">]</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">17</span><span style="color:#669900">:</span><span style="color:#98c379">26</span><span style="color:#999999">,</span><span style="color:#98c379">614</span> <span style="color:#98c379">577</span>    <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG source<span style="color:#999999">.</span>pooled<span style="color:#999999">.</span>PooledDataSource  <span style="color:#669900">-</span> Returned connection <span style="color:#98c379">1176735295</span> to pool<span style="color:#999999">.</span>

Process finished with exit code <span style="color:#98c379">0</span>
</code></span>

这样通过对比就可以很明显的看出来延迟加载的效果。

回顾下一级缓存

运行代码:

<span style="color:#000000"><code class="language-java"><span style="color:#999999">@Test</span>
<span style="color:#c678dd">public</span> <span style="color:#c678dd">void</span> <span style="color:#61aeee">testFindOne</span><span style="color:#999999">(</span><span style="color:#999999">)</span><span style="color:#999999">{</span>
    User user <span style="color:#669900">=</span> userDao<span style="color:#999999">.</span><span style="color:#61aeee">findById</span><span style="color:#999999">(</span><span style="color:#98c379">55</span><span style="color:#999999">)</span><span style="color:#999999">;</span>
    System<span style="color:#999999">.</span>out<span style="color:#999999">.</span><span style="color:#61aeee">println</span><span style="color:#999999">(</span>user<span style="color:#999999">)</span><span style="color:#999999">;</span>

    User user2 <span style="color:#669900">=</span> userDao<span style="color:#999999">.</span><span style="color:#61aeee">findById</span><span style="color:#999999">(</span><span style="color:#98c379">55</span><span style="color:#999999">)</span><span style="color:#999999">;</span>
    System<span style="color:#999999">.</span>out<span style="color:#999999">.</span><span style="color:#61aeee">println</span><span style="color:#999999">(</span>user2<span style="color:#999999">)</span><span style="color:#999999">;</span>

    System<span style="color:#999999">.</span>out<span style="color:#999999">.</span><span style="color:#61aeee">println</span><span style="color:#999999">(</span>user<span style="color:#669900">==</span>user2<span style="color:#999999">)</span><span style="color:#999999">;</span>
<span style="color:#999999">}</span>
</code></span>

运行结果:

<span style="color:#000000"><code class="language-java"><span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">26</span><span style="color:#669900">:</span><span style="color:#98c379">22</span><span style="color:#999999">,</span><span style="color:#98c379">736</span> <span style="color:#98c379">164</span>    <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG ansaction<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>JdbcTransaction  <span style="color:#669900">-</span> Opening JDBC Connection
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">26</span><span style="color:#669900">:</span><span style="color:#98c379">22</span><span style="color:#999999">,</span><span style="color:#98c379">970</span> <span style="color:#98c379">398</span>    <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG source<span style="color:#999999">.</span>pooled<span style="color:#999999">.</span>PooledDataSource  <span style="color:#669900">-</span> Created connection <span style="color:#98c379">85445963.</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">26</span><span style="color:#669900">:</span><span style="color:#98c379">22</span><span style="color:#999999">,</span><span style="color:#98c379">971</span> <span style="color:#98c379">399</span>    <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG ansaction<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>JdbcTransaction  <span style="color:#669900">-</span> Setting autocommit to <span style="color:#56b6c2">false</span> on JDBC Connection <span style="color:#999999">[</span>com<span style="color:#999999">.</span>mysql<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>JDBC4Connection<span style="color:#999999">@517cd4b</span><span style="color:#999999">]</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">26</span><span style="color:#669900">:</span><span style="color:#98c379">22</span><span style="color:#999999">,</span><span style="color:#98c379">975</span> <span style="color:#98c379">403</span>    <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG m<span style="color:#999999">.</span>keafmd<span style="color:#999999">.</span>dao<span style="color:#999999">.</span>IUserDao<span style="color:#999999">.</span>findById  <span style="color:#669900">-</span> <span style="color:#669900">==</span><span style="color:#669900">></span>  Preparing<span style="color:#669900">:</span> select <span style="color:#669900">*</span> from user where id<span style="color:#669900">=</span><span style="color:#669900">?</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">26</span><span style="color:#669900">:</span><span style="color:#98c379">23</span><span style="color:#999999">,</span><span style="color:#98c379">001</span> <span style="color:#98c379">429</span>    <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG m<span style="color:#999999">.</span>keafmd<span style="color:#999999">.</span>dao<span style="color:#999999">.</span>IUserDao<span style="color:#999999">.</span>findById  <span style="color:#669900">-</span> <span style="color:#669900">==</span><span style="color:#669900">></span> Parameters<span style="color:#669900">:</span> <span style="color:#61aeee">55</span><span style="color:#999999">(</span>Integer<span style="color:#999999">)</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">26</span><span style="color:#669900">:</span><span style="color:#98c379">23</span><span style="color:#999999">,</span><span style="color:#98c379">054</span> <span style="color:#98c379">482</span>    <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG m<span style="color:#999999">.</span>keafmd<span style="color:#999999">.</span>dao<span style="color:#999999">.</span>IUserDao<span style="color:#999999">.</span>findById  <span style="color:#669900">-</span> <span style="color:#669900"><=</span><span style="color:#669900">=</span>      Total<span style="color:#669900">:</span> <span style="color:#98c379">1</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">26</span><span style="color:#669900">:</span><span style="color:#98c379">23</span><span style="color:#999999">,</span><span style="color:#98c379">055</span> <span style="color:#98c379">483</span>    <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG o<span style="color:#999999">.</span>IAccountDao<span style="color:#999999">.</span>findAccountByUid  <span style="color:#669900">-</span> <span style="color:#669900">==</span><span style="color:#669900">></span>  Preparing<span style="color:#669900">:</span> select <span style="color:#669900">*</span> from account where uid <span style="color:#669900">=</span> <span style="color:#669900">?</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">26</span><span style="color:#669900">:</span><span style="color:#98c379">23</span><span style="color:#999999">,</span><span style="color:#98c379">055</span> <span style="color:#98c379">483</span>    <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG o<span style="color:#999999">.</span>IAccountDao<span style="color:#999999">.</span>findAccountByUid  <span style="color:#669900">-</span> <span style="color:#669900">==</span><span style="color:#669900">></span> Parameters<span style="color:#669900">:</span> <span style="color:#61aeee">55</span><span style="color:#999999">(</span>Integer<span style="color:#999999">)</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">26</span><span style="color:#669900">:</span><span style="color:#98c379">23</span><span style="color:#999999">,</span><span style="color:#98c379">056</span> <span style="color:#98c379">484</span>    <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG o<span style="color:#999999">.</span>IAccountDao<span style="color:#999999">.</span>findAccountByUid  <span style="color:#669900">-</span> <span style="color:#669900"><=</span><span style="color:#669900">=</span>      Total<span style="color:#669900">:</span> <span style="color:#98c379">0</span>
User<span style="color:#999999">{</span>userId<span style="color:#669900">=</span><span style="color:#98c379">55</span><span style="color:#999999">,</span> userName<span style="color:#669900">=</span><span style="color:#669900">'mybatis annotation'</span><span style="color:#999999">,</span> userAddress<span style="color:#669900">=</span><span style="color:#669900">'null'</span><span style="color:#999999">,</span> userSex<span style="color:#669900">=</span><span style="color:#669900">'男'</span><span style="color:#999999">,</span> userBirthday<span style="color:#669900">=</span>Tue Feb <span style="color:#98c379">16</span> <span style="color:#98c379">22</span><span style="color:#669900">:</span><span style="color:#98c379">15</span><span style="color:#669900">:</span><span style="color:#98c379">36</span> CST <span style="color:#98c379">2021</span><span style="color:#999999">}</span>
User<span style="color:#999999">{</span>userId<span style="color:#669900">=</span><span style="color:#98c379">55</span><span style="color:#999999">,</span> userName<span style="color:#669900">=</span><span style="color:#669900">'mybatis annotation'</span><span style="color:#999999">,</span> userAddress<span style="color:#669900">=</span><span style="color:#669900">'null'</span><span style="color:#999999">,</span> userSex<span style="color:#669900">=</span><span style="color:#669900">'男'</span><span style="color:#999999">,</span> userBirthday<span style="color:#669900">=</span>Tue Feb <span style="color:#98c379">16</span> <span style="color:#98c379">22</span><span style="color:#669900">:</span><span style="color:#98c379">15</span><span style="color:#669900">:</span><span style="color:#98c379">36</span> CST <span style="color:#98c379">2021</span><span style="color:#999999">}</span>
<span style="color:#56b6c2">true</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">26</span><span style="color:#669900">:</span><span style="color:#98c379">23</span><span style="color:#999999">,</span><span style="color:#98c379">056</span> <span style="color:#98c379">484</span>    <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG ansaction<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>JdbcTransaction  <span style="color:#669900">-</span> Resetting autocommit to <span style="color:#56b6c2">true</span> on JDBC Connection <span style="color:#999999">[</span>com<span style="color:#999999">.</span>mysql<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>JDBC4Connection<span style="color:#999999">@517cd4b</span><span style="color:#999999">]</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">26</span><span style="color:#669900">:</span><span style="color:#98c379">23</span><span style="color:#999999">,</span><span style="color:#98c379">056</span> <span style="color:#98c379">484</span>    <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG ansaction<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>JdbcTransaction  <span style="color:#669900">-</span> Closing JDBC Connection <span style="color:#999999">[</span>com<span style="color:#999999">.</span>mysql<span style="color:#999999">.</span>jdbc<span style="color:#999999">.</span>JDBC4Connection<span style="color:#999999">@517cd4b</span><span style="color:#999999">]</span>
<span style="color:#98c379">2021</span><span style="color:#669900">-</span><span style="color:#98c379">02</span><span style="color:#669900">-</span><span style="color:#98c379">17</span> <span style="color:#98c379">03</span><span style="color:#669900">:</span><span style="color:#98c379">26</span><span style="color:#669900">:</span><span style="color:#98c379">23</span><span style="color:#999999">,</span><span style="color:#98c379">057</span> <span style="color:#98c379">485</span>    <span style="color:#999999">[</span>           main<span style="color:#999999">]</span> DEBUG source<span style="color:#999999">.</span>pooled<span style="color:#999999">.</span>PooledDataSource  <span style="color:#669900">-</span> Returned connection <span style="color:#98c379">85445963</span> to pool<span style="color:#999999">.</span>

Process finished with exit code <span style="color:#98c379">0</span>
</code></span>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值