栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

mybatis

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

mybatis

mybatis
  • 1.xml方式配置mybatis
    • 1.1 porm.xml引入依赖
    • 1.2 SqlMapConfig.xml
    • 1.3 IUserDao.xml
    • 1.4测试
  • 2.annotation配置mybatis
    • 2.1 SqlMapConfig.xml
    • 2.2 IUserDao.java
  • 3.xml方式进行CRUD操作
    • 3.1 jdbcConfig.properties
    • 3.2 sqlMapConfig.xml
    • 3.3 User,QueryVo,DoubleUser
    • 3.4 IUserDao.java
    • 3.5 IUserDao.xml
  • 4.xml方式进行一对多查询
    • 4.1 User,Account,AccountUser
    • 4.2 IUserDao.java和IAccountDao.java
    • 4.3 IUserDao.xml和IAccountDao.xml
  • 5.xml方式进行多对多查询
    • 5.1 Role和User
    • 5.2 IRoleDao.java和IUserDao.java
    • 5.3 IUserDao.xml和 IRoleDao.xml
  • 6. xml方式进行懒加载
    • 6.1 SqlMapConfig.xml中开启懒加载
    • 6.2 IAccountDao.xml和IUserDao.xml
  • 7.annotation方式进行CRUD操作
    • 7.1 SqlMapConfig.xml
    • 7.2 IUserDao.xml
  • 8. annotation方式进行一对多和多对多查询
    • 8.1 IUserDao.java
    • 8.2 IAccountDao.java

1.xml方式配置mybatis

目录结构:

1.1 porm.xml引入依赖

    
        org.mybatis
        mybatis
        3.5.5
    
    
        mysql
        mysql-connector-java
        8.0.11
    

1.2 SqlMapConfig.xml




    
    
        
        
            
            
            
            
            
                
                
                
                
                
            
        
    

    
    
        
    

1.3 IUserDao.xml


 

    
    
        select * from user;
    

1.4测试
public class MybatisTest {
    
    public static void main(String[] args) throws Exception {
        //1.读取配置文件
        InputStream in = Resources.getResourceAsStream("sqlMapConfig.xml");
        //2.创建SqlSessionFactory工厂
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
        SqlSessionFactory factory = builder.build(in);
        //3.使用工厂生产SqlSession对象
        SqlSession session = factory.openSession();
        //4.使用SqlSession创建Dao接口的代理对象
        IUSerDao userDao = session.getMapper(IUSerDao.class);
        //5.使用代理对象执行方法
        List users = userDao.findAll();
        for (User user : users) {
            System.out.println(user);
        }
        //6.释放资源
        session.close();
        in.close();
    }
}
2.annotation配置mybatis

只讨论与xml不同的地方

2.1 SqlMapConfig.xml
    
        
    
2.2 IUserDao.java
public interface IUSerDao {
    
    @Select("select * from user")
    List findAll();
}
3.xml方式进行CRUD操作

3.1 jdbcConfig.properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssm?serverTimezone=GMT%2B8
jdbc.username=root
jdbc.password=root
3.2 sqlMapConfig.xml



    
    
    

    
    
    
    
        
        

        
        
    
    
    
    
        
        
            
            
            
            
                
                
                
                
            
        
    



    
    
        

        
        
    

3.3 User,QueryVo,DoubleUser

user

public class User implements Serializable {
    private Integer id;
    private String username;
    private String address;
    private String sex;
    private Date birthday;
}

DoubleUser

public class DoubleUser implements Serializable {
    private Integer userId;
    private String userName;
    private String userAddress;
    private String userSex;
    private Date userBirthday;
}

QueryVo

public class QueryVo {
    private User user;
    private List ids;
}
3.4 IUserDao.java
public interface IUserDao {
    
    List findAll();

    
    void saveUser(User user);

    
    void updateUser(User user);

    
    void deleteUser(Integer userId);

    
    User findById(Integer userId);

    
    List findByName(String username);

    
    int findTotal();

    
    List findUserByVo(QueryVo vo);

    
    List findAllUser();
	
	
    List findUserByCondition(User user);

    
    List findUserByInIds(QueryVo vo);
}
3.5 IUserDao.xml



    
    
        select * from user where id =#{id};
    

    
    
        select count(id) from user;
    

    
    
        select id as userId,username as userName,address as userAddress,sex as userSex,birthday as userBirthday from user;
    

    
    
        
        
        
        
        
        
        
    

	
    
        select * from user
        
            
                
                    #{uid}
                
            
        
    
    

4.xml方式进行一对多查询 4.1 User,Account,AccountUser

User

public class User implements Serializable {
    private Integer id;
    private String username;
    private String address;
    private String sex;
    private Date birthday;
}

Account

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

AccountUser

public class AccountUser extends Account {
    private String username;
    private String address;
}
4.2 IUserDao.java和IAccountDao.java

IUserDao.java

public interface IUserDao {
    
    List findAll();

    
    User findById(Integer userId);
}

IAccountDao.java

public interface IAccountDao {
    
    List findAll();

    
    List findAllAccount();
}
4.3 IUserDao.xml和IAccountDao.xml

IUserDao.xml




    
    
        
        
        
        
        
        
        
            
            
            
        
    
    
    
        select * from user where id =#{id};
    


IAccountDao.xml




    
    
        
        
        
        
        
            
            
            
            
            
        
    

    
    
        select a.*,u.username,u.address from user u,account a where u.id=a.uid
    

5.xml方式进行多对多查询 5.1 Role和User

Role

public class Role implements Serializable {
    private Integer roleId;
    private String roleName;
    private String roleDesc;
    private List users;
}

User

public class User implements Serializable {
    private Integer id;
    private String username;
    private String address;
    private String sex;
    private Date birthday;
}
5.2 IRoleDao.java和IUserDao.java

IRoleDao.java

public interface IRoleDao {
    
    List findAll();
}

IUserDao.java

public interface IUserDao {
    
    List findAll();

    
    User findById(Integer userId);
}
5.3 IUserDao.xml和 IRoleDao.xml

IUserDao.xml




    
    
        
        
        
        
        
    
    
    
        select * from user where id =#{id};
    


IRoleDao.xml




    
    
        
        
        
        
            
            
            
            
            
        
    

    
    
        select * from account
    

    
    
        select * from user