JAVA01_10学习总结(MyBatis-入门!)

今日内容

1. MyBatis

1.1 MyBatis入门

MyBatis--开源框架
    可以解决很多冗余操作的框架
    1)将MyBatis的jar包导入项目--Maven项目导入核心依赖
    2)配置

1.2 MyBatis的核心配置文件

根据MyBatis文档书写
    1)每个核心配置文件都要有的头部
        
        
    2)配置MyBatis环境--可以配置多个不同的环境
        -mybatis控制事务管理器
        -配置数据源
        -连接数据库信息
            -配置驱动类
            -url地址
            -用户名
            -密码
        -配置映射文件--这个配置的映射文件会通过这个环境来连接数据库





    
        
            
            
            
            
                
                
                
                
                
                
                
                
                
            
        
    
    
    
        
        
    

1.3 MyBatis的xml映射文件--映射器

xml映射器
    MyBatis最强大的语句映射---相比较jdbc节省了95%的代码!
    1)不可或缺的文件
        
        
    2)映射文件--需要执行接口的全限定名称--就是要实现哪个接口的功能,就填谁的全限定
        -sql标签
            -select查询
            -update修改
            -delete删除
            -insert添加
            -resultType
                -基本映射:返回的数据类型的名称--输出映射
            -resultMap
                -高级映射:当前实体类名称和表中字段名称不一致--一对多/多对多映射
            -parameterType输入映射
                -如果输入的是jdk引用类型:String/Integer
                    -需要输入全限定名称-Java.lang.String
                                    -Java.lang.Integer
                -如果是自定义类型数据:直接输入全限定名称
            -selectKey标签
                selectkey 配置
                    -resultType:返回的结果类型
                    -keyProperty:设置作用在实体类目标属性名称:
                    -order
                        -AFTER:先执行其他操作之后,在执行selecctkey里面的sql语句
                        -BEFORE:先执行selectkey的语句,然后在执行其他操作





    
    
        
        
            select last_insert_id()
        
        
        insert into user(username,gender,age,address) values (#{username},#{gender},#{age},#{address})
    

1.4 MyBatis的执行流程

流程
    1)读取配置文件--里面包含映射文件--通过流的方式读取
        InputStream 输入流对象 = Resource.getRrsourceAsStream("配置文件名")
    2)创建SqlSessionFactoryBuilder的建造对象--建造者模式,创建了一个建造者,创建工厂
        SqlSessionFactoryBuilder 建造对象 = new SqlSessionFactoryBuilder();
    3)通过建造对象获取工厂接口--理解为建造者拿着配置文件构建了工厂
        SqlSessionFactory 工厂类接口 = builder.build(输入流对象)
    4)工厂创建执行对象
        SqlSession 执行对象 = sqlSessionFactory.openSession();
    5)获取接口的字节码文件,mybatis的动态代理--相当于顶替了原本实现接口的实现类的工作
        接口 接口对象 = 执行对象.getMapper(接口字节码文件);
    5)接口对象调用相关功能完成实现
import com.szr.dao.UserDao;
import com.szr.pojo.User;
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 org.junit.Before;
import org.junit.Test;
​
import java.io.IOException;
import java.io.InputStream;
​
//测试
public class UserDaoTest {
    //将数据声明在外面,方便所有测试调用
    private SqlSessionFactory factory ;
    private SqlSession session ;
    private UserDao userDao ;
    /**
     * 执行单元测试之前,完成准备工作
     */
    @Before
    public void prepared() throws IOException {
        //通过流的方式获取配置文件内容
        InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml");
        //创建构造者
        SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
        //构造者使用配置文件构造工厂类
        factory = builder.build(inputStream);
    }
    @Test
    public void addUser(){
        //创建执行对象
        session = factory.openSession();
        //调用接口
        userDao = session.getMapper(UserDao.class);
        //创建数据
        User user = new User();
        user.setUsername("钟离");
        user.setGender("男");
        user.setAge(500);
        user.setAddress("往生堂");
        //观察数据--之前
        System.out.println(user);
        //User(id=null, username=钟离, gender=男, age=500, address=往生堂)
        //调用接口方法
        userDao.addUser(user);
        //观察数据--之后
        System.out.println(user);
        //User(id=1, username=钟离, gender=男, age=500, address=往生堂)
        //手动提交
        session.commit();
    }
    
    @After
    public void close(){
        //释放资源
        session.close();
    }
}

你可能感兴趣的:(Java学习--三阶段,mybatis,java,mysql,学习,服务器)