美文网首页
Mybatis 注解开发复习

Mybatis 注解开发复习

作者: 名字是乱打的 | 来源:发表于2020-03-18 18:04 被阅读0次

Mybatis注解开发其实也就是去掉了xml配置.我们把sql直接写在Mapper.java里,当然这里会存在一些硬编码等不好的弊端,,,所以这里建议大家慎重考虑.我喜欢xml配置


依然以用户的账户为例

1.普通单表查询

根据id查询一个用户信息
SqlMapperConfig.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
        PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
    <typeAliases>
        <package name="com.zyh.domain"/>
    </typeAliases>

    <environments default="mysql"> <!--选择一个mysql默认环境-->
        <!--配置mysql的环境-->
        <environment id="mysql">
            <!--配置事务-->
            <transactionManager type="JDBC"></transactionManager>
            <!--配置连接池-->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"></property>
                <property name="url" value="jdbc:mysql://localhost:3306/#"></property>
                <property name="username" value="#"></property>
                <property name="password" value="#"></property>
            </dataSource>
        </environment>
    </environments>

    <mappers> <!--注解开发,用package扫描包-->
       <package name="com.zyh.dao"></package>
    </mappers>

</configuration>

User.java

public class User implements Serializable{

    private Integer userId;
    private String userName;
    private String userAddress;
    private String userSex;
    private Date userBirthday;

    //一对多关系映射:一个用户对应多个账户
    private List<Account> accounts;

account.java

public class Account implements Serializable {

    private Integer id;
    private Integer uid;
    private Double money;

    //多对一(mybatis中称之为一对一)的映射:一个账户只能属于一个用户
    private User user;

UserMapper.java
根据id查询一个用户的信息以及根据用户查出账户和用户的信息

public interface IUserDao {

    /**
     * 查询所有用户
     * @return
     */
    @Select("select * from user")
    @Results(id="userMap",value={
            @Result(id=true,column = "id",property = "userId"),
            @Result(column = "username",property = "userName"),
            @Result(column = "address",property = "userAddress"),
            @Result(column = "sex",property = "userSex"),
            @Result(column = "birthday",property = "userBirthday"),
            @Result(property = "accounts",column = "id",
                    many = @Many(select = "com.zyh.dao.AccountDao.findAccountByUid",
                                fetchType = FetchType.LAZY))
    })
    List<User> findAll();

    /**
     * 根据id查询用户
     * @param userId
     * @return
     */
    @Select("select * from user  where id=#{id} ")
    @ResultMap("userMap")
    User findById(Integer userId);

    /**
     * 根据用户名称模糊查询
     * @param username
     * @return
     */
    @Select("select * from user where username like #{username} ")
    @ResultMap("userMap")
    List<User> findUserByName(String username);

}


一对多

根据用户查出其账户信息
UserDao.java

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(property = "user",column = "uid",one=@One(select="com.zyh.dao.UserDao.findById",
                    fetchType= FetchType.EAGER))
    })
    List<Account> findAll();

    /**
     * 根据用户id查询账户信息
     * @param userId
     * @return
     */
    @Select("select * from account where uid = #{userId}")
    List<Account> findAccountByUid(Integer userId);
}

相关文章

  • Mybatis 注解开发复习

    Mybatis注解开发其实也就是去掉了xml配置.我们把sql直接写在Mapper.java里,当然这里会存在一些...

  • Mybatis高级阶段

    Mybatis基于注解开发 这几年来注解开发越来越流行,Mybatis也可以使用注解开发方式,这样我们就可以减少编...

  • 4.Mybatis-04 Mybatis 延迟加载策略,缓存及

    主要内容 Mybatis 延迟加载策略 Mybatis 缓存 Mybatis 注解开发 Mybatis 延迟加载策...

  • spring boot教程

    描述 集成mybatis 首先要引入mybatis依赖 注解式开发 编写dao层,在接口中使用注解开发。@Mapp...

  • 5/13day53_注解&分页综合练习

    回顾 MyBatis注解&综合练习 今日目标 一 MyBatis注解 ​ 这几年来注解开发越来越流行,Myba...

  • Mybatis基础 -- 注解开发

    一、Mybatis 常用注解 这几年来注解开发越来越流行,Mybatis也可以使用注解开发方式,这样我们就可以减少...

  • Mybatis的注解开发

    2.1 MyBatis的常用注解 这几年来注解开发越来越流行,Mybatis也可以使用注解开发方式,这样我们就可以...

  • SSM注解式开发

    Struts2 + Spring + Mybatis 注解式开发

  • MyBatis的注解开发

    MyBatis的注解开发MyBatis的映射配置除了使用xml配置以外,还支持注解配置sql语句问题: 为什么有了...

  • MyBatis--注解式开发

    MyBatis--注解式开发 MyBatis的注解,主要是用于替换映射文件。而映射文件中无非存放着增删改查的sql...

网友评论

      本文标题:Mybatis 注解开发复习

      本文链接:https://www.haomeiwen.com/subject/rcecyhtx.html