有资源网

搜索
有资源网 首页 编程语言 查看内容

Mybatis笔记3

2019-7-26 01:08| 发布者: admin| 查看: 230| 评论: 0

摘要: Mybatis映射文件的SQL深入 (Mybatis本日学的不多,看了半天的mysql必知必会) 动态sql语句-if语句,查询一个用户的时间,有可能根据地点查询,用户名查询,性别查询等,所以必要动态sql语句 1.接口中新添加方法 user

Mybatis映射文件的SQL深入

(Mybatis本日学的不多,看了半天的mysql必知必会)

动态sql语句-if语句,查询一个用户的时间,有可能根据地点查询,用户名查询,性别查询等,所以必要动态sql语句

1.接口中新添加方法

user 查询的条件:有可能有效户名,有可能有性别,也有可能有地点,还有可能是都有
List findUserByCondition(User user);

2.配置文件的写法,根据条件查询

    
    

3.测试方法

 public void testFindByCondition(){
        User u = new User();
        u.setUserName("老王");

        //5.实行查询全部方法
        List users = userDao.findUserByCondition(u);
        for(User user : users){
            System.out.println(user);
        }

    }

mybatis中的多表查询

示例:用户和账户,一个用户可以有多个账户,一个账户只能属于一个用户

步骤:

  1. 建立两张表:用户表和账户表,让用户表和账户表之间具备一对多的关系:必要使用外键在账户表中添加
  2. 建立两个实体类:用户实体类和账户实体类,让用户和账户的实体类能体现出一对多的关系
  3. 建立两个配置文件,用户的配置文件和账户的配置文件
  4. 实现配置:当我们查询用户是,可以同时得到用户下所包罗的账户信息,当我们查询账户是,可以同时得到账户的所属用户信息

账户表的创建

编程语言-Mybatis笔记3(1)

用户表的创建

编程语言-Mybatis笔记3(2)

接口的建立

用户接口

public interface IAccountDao {
    //查询全部账户
    List finaAll();
}

账户接口

public interface IUserDao {
    /**
     * 查询全部用户
     */
    List findAll();

    /**
     * 根据id查询用户信息
     */
    User findById(Integer userId);

}

用户实体类的建立

用户实体类

package com.itheima.domain;

import java.io.Serializable;
import java.util.Date;


public class User implements Serializable {

    private Integer id;
    private String username;
    private String address;
    private String sex;
    private Date birthday;

    @Override
    public String toString() {
        return "User{" +
                "id=" + id +
                ", username='" + username + '\'' +
                ", address='" + address + '\'' +
                ", sex='" + sex + '\'' +
                ", birthday=" + birthday +
                '}';
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }
}

账户实体类

package com.itheima.domain;

import java.io.Serializable;

public class Account implements Serializable {
    private Integer id;
    private Integer uid;
    private Double money;

    @Override
    public String toString() {
        return "Account{" +
                "id=" + id +
                ", uid=" + uid +
                ", money=" + money +
                '}';
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public Integer getUid() {
        return uid;
    }

    public void setUid(Integer uid) {
        this.uid = uid;
    }

    public Double getMoney() {
        return money;
    }

    public void setMoney(Double money) {
        this.money = money;
    }
}

开端的配置文件

用户的





    
    

    
    

账户的




    
    

目标:查询全部账户,同时还有获取到当前账户的所属用户信息

编程语言-Mybatis笔记3(3)

添加一个实体类,继续Account

package com.itheima.domain;
//让他继续Account
public class AccountUser extends Account{
    //只必要用户名和地点
    private String username;
    private String address;

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    @Override
    public String toString() {
        //让他先调用父类的toString
        return  super.toString()+"     AccountUser{" +
                "username='" + username + '\'' +
                ", address='" + address + '\'' +
                '}';
    }
}

接口添加方法

   //查询全部账户,并且带有效户名称和地点名称
    List findAllAccount();

test类实现功能

 @Test
    //查询全部账户,同时包罗用户名称和地点
    public void testFindAllAccountUser(){
        List aus = accountDao.findAllAccount();
        for(AccountUser au :aus){
            System.out.println(au);
        }
    }

编程语言-Mybatis笔记3(4)

编程语言-Mybatis笔记3(5)

编程语言-Mybatis笔记3(6)


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

鲜花

握手

雷人

路过

鸡蛋

最新评论

返回顶部