mybatis注解开发

自作多情 提交于 2020-02-16 23:38:19

在mybatis中针对CRUD一共有四个注解:
@Select(),@Delete(),@Insert(),@Update()

示例:

在mybatis-config.xml中

   <mappers>
<!--        <package name="net.togogo.dao"></package>-->
         <mapper class="net.togogo.dao.IUserDao"></mapper>
    </mappers>
/**
     * 查询所有操作
     * @return
     */
    @Select("select * from user")
    List<User> findAll();

    /**
     * 根据Id查询
     */
    @Select("select * from user where id = #{id}")
    User findById(Integer id);

当User类中的属性名和数据库的字段名不一致时可以这样:
在这里插入图片描述

一对一

mybatis-config.xml中:

<mapper class="net.togogo.dao.IAccountDao"></mapper>

IAccountDao.java中

package net.togogo.dao;


import net.togogo.bean.Account;
import org.apache.ibatis.annotations.One;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.mapping.FetchType;

import java.util.List;

public interface IAccountDao {
    /**
     * 查询所有操作
     * @return
     */
    @Select("select * from account")
    @Results(id = "accountmap",value = {
            @Result(id=true,column ="id",property = "id"),
            @Result(column ="uid",property = "uid"),
            @Result(column ="money",property = "money"),
            @Result(column = "uid",property = "user",
                    one = @One(select = "net.togogo.dao.IUserDao.findById",
                    fetchType = FetchType.EAGER))
    })
    List<Account> findAll();

}

测试类:

@Test
    public void findAllAccount() throws IOException {
        //4.使用SqlSession创建Dao接口的代理对象
        IAccountDao iAccountDao = session.getMapper(IAccountDao.class);
        //5.使用代理对象执行方法
        List<Account> accounts = iAccountDao.findAll();
        for (Account account : accounts) {
            System.out.println(account);
            System.out.println(account.getUser());
        }

运行结果:
在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!