MyBatis入门

x33g5p2x  于2021-09-24 转载在 其他  
字(3.7k)|赞(0)|评价(0)|浏览(396)

ORM

对象关系映射 程序设计技术  实现面向对象编程语言中数据类型转换

即用对象的方式操作数据库

衍生:

1.对象与数据库中的表一一映射

2.对象中的属性与表字段映射

3.其中的映射应该由程序自动完成 无需人为干预
常规JDBC的弊端

1.无论如何执行都要获取链接  链接池 c3p0 druid HK链接池

2.操作sql语句时步骤繁琐

3.资源必须手动关闭

常规JDBC的优点

操作数据库最快的方式就是JDBC  协议时TCP协议

MyBatis→ 前身为iBatis

是优秀的持久层框架 ,基于ORM的设计思想实现以对象的方式操作数据库

持久化:将内存数据保存到磁盘中

持久层:程序通过Dao/Mapper层 与数据库进行交互的层级代码(Controller Service Dao/Mapper层)

弊端:Mybatis的ORM不完全,只完成了结果集映射,但是sql需要自己手写,也称为半自动化的ORM映射框架

案例步骤

1.导入jar包

<!--mybatis依赖包-->
        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.2.0</version>
        </dependency>

        <!--jdbc依赖包-->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>

2.编辑pojo

@Data
@Accessors(chain = true)
@NoArgsConstructor
@AllArgsConstructor
public class DemoUser implements Serializable {
    private Integer id;
    private String name;
    private Integer age;
    private String sex;
}

3.编辑mybatis-config.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>

    <!--环境配置标签-->
    <environments default="development">

        <!--编辑开发环境 id为环境的唯一标识-->
        <environment id="development">
            <!--事务管理器 利用JDBC控制事务-->
            <transactionManager type="JDBC"/>
            <!--mybatis默认采用数据库链接池的方式整合数据源-->
            <dataSource type="POOLED">
                <!--高版本的数据库驱动需要添加cj-->
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://127.0.0.1:3306/jt?serverTimezone=GMT%2B8&amp;useUnicode=true&amp;characterEncoding=utf8&amp;autoReconnect=true&amp;allowMultiQueries=true"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>

    <!--Mybatis加载Mapper映射文件
    1.mapper映射文件是有顺序的 位置不要随便切换
    2.通过resource 加载指定的xml文件-->
    <mappers>
        <mapper resource="mybatis/mappers/demoUserMapper.xml"/>
    </mappers>
</configuration>

3.构建持久层接口

/*说明,
  1.根据面向接口开发的思想需要定义一个Mapper接口
  2.在接口中写接口方法,谁用谁去实现
  3.Mybatis中的实现类以xml文件的形式存在
*
* */
public interface DemoUserMapper {
    //1.查询所有的表数据
    public List<DemoUser> findAll();

}

4.构建mapper接口的xml映射文件

与接口一对一绑定

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<!--namespace是mybaits映射文件的唯一标识,与接口对应
namespace:指定需要绑定的接口名称  不可重复-->
<mapper namespace="com.jt.mapper.DemoUserMapper">
    <!--id 与接口方法绑定
        resultType 返回对象的包路径
        规则:sql语句不要添加多余的分号
    -->
    <select id="findAll" resultType="com.jt.pojo.DemoUser">
        select * from demo_user
    </select>
</mapper>

5.Mybatis关联映射文件          在

<!--Mybatis加载Mapper映射文件
    1.mapper映射文件是有顺序的 位置不要随便切换
    2.通过resource 加载指定的xml文件-->
    <mappers>
        <mapper resource="mybatis/mappers/demoUserMapper.xml"/>
    </mappers>

6.Mybatis实现数据查询 

6.1创建SqlSessionFactory

位置:test

public class TestMybatis {
    public void demo1() throws IOException {
        /*创建SqlSessionFactory*/
        String resource = "mybatis/mybatis-config.xml";
        InputStream inputStream = Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
    }
}

6.2获取 SqlSession

//获取 SqlSession  类比数据库链接
        SqlSession sqlSession = sqlSessionFactory.openSession();

6.3获取Mapper接口

//获取Mapper接口
        DemoUserMapper mapper = sqlSession.getMapper(DemoUserMapper.class);

6.4获取数据

//获取数据
        List<DemoUser> all = mapper.findAll();

6.5关闭资源

相关文章