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

ssm复习之mybatis复习

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

ssm复习之mybatis复习

1:idea数据库的链接

2:第一个mybatis流程

1:maven所需要的包和xml拦截器进行拦截扫描


    4.0.0
    org.example
    mybatis-study
    pom
    1.0-SNAPSHOT
    //子工程
    
        mybatis-01-hello
        mybatis-02-baseKnowledge
    

    

        
        
            mysql
            mysql-connector-java
            5.1.47
        


        
        
            org.mybatis
            mybatis
            3.5.2
        


        
        
            junit
            junit
            4.12
            test
        

        
        
            log4j
            log4j
            1.2.17
        
	 
        
            org.projectlombok
            lombok
            1.18.20
        
    

    
        
            
                src/main/java
                
                    ***.properties
                
                false
            
            
                src/main/resources
                
                    ***.properties
                
                false
            
        
    

2:工具类:进行获取sqlSession
package com.atshikai.utils;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

import java.io.IOException;
import java.io.InputStream;

//SqlSessionFactory ----》sqlSession
public class MyBatisUtils {
    private  static SqlSessionFactory sqlSessionFactory;
    static {
        try {
//            使用mybatis的第一步:获取sqlSessionFactory工厂
            String resource = "mybatis-config.xml";
            InputStream inputStream = Resources.getResourceAsStream(resource);
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
//    相当于getConnection注解的时候使用
    public static SqlSession getSqlSession(){
//        改为true是自动提交事务
        return sqlSessionFactory.openSession(true);
    }
}
关于sqlsession

1一旦创建SqlSessionFactory,SqlSessionFactoryBuilder就会被销毁—局部变量

2 SqlSessionFactory:可以想象为:数据库连接池,一旦创建在运行期间一直存在单例模式

3 SqlSession连接到连接池的一个请求,不能被共享,用完之后赶紧关闭

4一个mappe就相当于一个具体的业务!!!

3:mybatis-config.xml配置文件




    

    
        
        
        
		

    

    
        
    

    
        
            
            
                
                
                
                
            
        
    

    
        //直接绝对路径查找
        
        //下面两个需要在同一个路径下才可以
        

    

4:实体类
package com.atshikai.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data                              //get,set
@NoArgsConstructor                 //无参构造
@AllArgsConstructor                //有参构造
public class User {
    private int id;
    private String name;
    private String pwd;
}
Logj打印日志的生成

5:实体类接口
package com.atshikai.dao;
import com.atshikai.pojo.User;
import java.util.List;
import java.util.Map;

public interface UserMapper {
    List getUserList();
//通过id查询
    User selectById(int id);
//    模糊查询
    List selectIgnore(String name);
//  增
    int insertUser(User user);
//   使用map进行添加User对象
    int addUser(Map map);
//    删
    int deleteUser(int id);
//    改
    int updateUser(User user);
}
6:实体类接口(写sql语句)



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

    
    
        select s.id sid,s.name sname,t.id,t.name tname
        from student s,teacher t
        where s.tid=t.id;
    
    
        
        
        
        
            
            
        
    

    
    
        
        

        
    
    
        select * from teacher where id=#{Tid};
    


一对多(一个老师对应多个学生)




    
        select * from student where tid=#{Tid}
    


    
    select * from blog where 1=1
    

查询where,choose,when(where嵌套可以智能的去掉无用的and,如果where嵌套的没有东西,不影响代码执行)


    select * from blog
    
        
            id=#{id}
        
    


6:mybatis一级二级缓存

详细看狂神27,28,29集

小结:
一级缓存:相当于一个map
缓存失效的情况:
1查询不同的东西;
2增删改操作,可能会改变之前的操作,所以必定刷新
3查询不同的Mapper.xml
4手动清理缓存(一级缓存默认是开启的,关不掉)sqlSession.clearCache();
二级缓存
就是我(一级缓存)死了,然后吧缓存遗传给你(二级缓存)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/760404.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号