Mybatis(一) - Mybatis 简介

一、MyBatis 简介

1. 原始jdbc 操作(查询数据)

2. 原始jdbc 操作(插入数据)

 

3. 原始jdbc 操作的分析

        原始jdbc 开发存在的问题:

        (1)数据库连接创建、释放频繁造成系统资源浪费从而影响系统性能

        (2)sql 语句在代码中硬编码,造成代码不易维护

        (3)查询操作时,需要手动将结果集中的数据手动封装到实体中。插入操作时,需要手动将实体的数据设置到sql 语句的占位符位置

        解决方案:

         (1)使用数据库连接池初始化连接资源

         (2)将sql 语句抽取到 xml 配置文件中

         (3)使用反射、内省等底层技术,自动将实体与表进行属性与字段的自动映射 

4. 什么是MyBatis

        mybatis 是一个优秀的基于java 的持久层框架,它内部封装了jdbc,使开发者只需要关注sql 语句本身,而不需要花费精力去处理加载驱动、创建连接、创建statement 等繁杂的过程。

        mybatis 通过xml 或注解的方式将要执行的各种statement 配置起来,并通过java 对象和statement 中sql 的动态参数进行映射生成最终执行的sql 语句。

        最后mybatis 框架执行sql 并将结果映射为java 对象并返回。采用ORM 思想解决了实体和数据库映射的问题,对jdbc 进行了封装,屏蔽了jdbc api 底层访问细节,使我们不用与jdbc api 打交道,就可以完成对数据库的持久化操作。

 

二、MyBatis 快速入门

1. MyBatis 开发步骤

        (1)添加MyBatis 的坐标

        (2)创建user 数据表

        (3)编写User 实体类

        (4)编写映射文件UserMapper.xml

        (5)编写核心文件SqlMapConfig.xml

        (6)编写测试类

(1)添加MyBatis 的坐标

<!--mybatis坐标-->
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.4.5</version>
</dependency>
<!--mysql驱动坐标-->
<dependency>    
    <groupId>mysql</groupId>   
    <artifactId>mysql-connector-java</artifactId>    
    <version>5.1.6</version>    
    <scope>runtime</scope>
</dependency>

(4)编写映射文件UserMapper.xml

<mapper namespace="userMapper">    
	<select id="findAll" resultType="com.it.domain.User">        
		select * from User    
	</select>
</mapper>

(5)编写核心文件SqlMapConfig.xml

<configuration>
    
	<!--数据源环境-->
    <environments default="developement">
        <environment id="developement">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>
	
    <!--加载映射文件-->    
	<mappers> 
		<mapper resource="com/itheima/mapper/UserMapper.xml"/> 
	</mappers>
</configuration>

(6)编写测试类

    @Test
    //查询操作
    public void test1() throws IOException {
        //获得核心配置文件
        InputStream resourceAsStream = Resources.getResourceAsStream("sqlMapConfig.xml");
        //获得session工厂对象
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
        //获得session回话对象
        SqlSession sqlSession = sqlSessionFactory.openSession();
        //执行操作  参数:namespace+id
        List<User> userList = sqlSession.selectList("userMapper.findAll");
        //打印数据
        System.out.println(userList);
        //释放资源
        sqlSession.close();
    }

 三、映射文件概述

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值