Mybatis快速入门

原始jdbc弊端及解决方案

Mybatis是什么?
一个便于程序员操作数据库的框架

Mybatis步骤

首先,除了最开始学习时写的java工程,后面写的许多项目都需要导入jar包,对于maven工程来说,就是添加坐标。所以,对于mybatis来说,第一步肯定是要导坐标。

1、必须的坐标

       我们知道,mybatis是用来操作数据库的,所以必须导入数据库的坐标,此处使用的是mysql数据库,所以导入的是mysql坐标。
       既然使用mybatis,而mybatis是一个框架,框架就是一个别人写好的各种java类啥的,我们要使用,自然也得导入这个框架。
       所以两个基本的坐标就是数据库坐标和mybatis坐标

        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.48</version>
        </dependency>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.5.5</version>
        </dependency>
2、创建数据表,编写实体类

创建数据库中的数据表,编写描述此数据表的Java类

3、编写配置文件

       根据我对框架的理解,框架是:我们在写一些功能时发现,有一些功能的代码只有一小部分不同,但是大部分的内容是相同的,然后一些大佬们就将相同的部分封装起来,并且通过配置文件,或者方法参数之类的方式,让使用者可以提供那些变化的地方。

       我们之前jdbc的代码逻辑,我们可以发现,无论是查询还是更新操作,代码有很多相同的部分,不同的部分也就是SQL语句,以及传递给方法的参数,如果是查询的话,需要将查询出来的内容封装成实体类,然后将结果返回。
       因此变化的点由三部分:sql语句,方法参数,方法的返回值。
       所以,框架就要求我们在配置文件中提供这些变化点。
       另外我们在写jdbc时,需要提供用户名,密码,url,driverClass,这些内容也是变化的,所以也需要写在一个配置文件中。并且通过web的学习,我们知道,连接池可以提高速度,节省资源,因此需要在配置文件中配置连接池的信息。所以,我们只需要记住配置的标签即可。
       为了分工明确,我们的配置文件有两个:

  • 一个是用来书写sql语句的 userMapper.xml
  • 一个是核心配置文件:用来配置其他内容,比如说:事务,数据源对象(连接池),sql语句所在的配置文件的位置 userMapperConfig.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">
<!--mapper是根标签 namespace是mapper的名字-->
<!--select:当sql语句是select自居时使用select作为mapper的子标签-->
<!--需要在select标签内写sql语句,现在是最简单的select子句,如果是含有占位符的sql子句,需要使用mybatis使用的占位符。具体的见增删改查的博客-->
<!--id是select标签的名字,可以任意取,resultType的属性是查询结果的类型:java类的全类名。如果是基本数据类型,则使用包装类-->
<mapper namespace="userMapper">
    <select id="findAll" resultType="com.itheima.domain.User">
        select * from user
    </select>
</mapper>
<?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">
        <environment id="development">
        <!--事务类型-->
            <transactionManager type="JDBC"></transactionManager>
            <!--配置数据源:property的name属性的值是固定的,value的值根据实际情况填写-->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/test"/>
                <property name="username" value="root"/>
                <property name="password" value="root"/>
            </dataSource>
        </environment>
    </environments>
<!--需要引入所写的sql的配置文件-->
    <mappers>
        <mapper resource="userMapper.xml"></mapper>
    </mappers>
</configuration>
编写测试文件
  • Resources:ibatis包中
 public void test1() throws IOException {
 //每一个测试文件相同的地方
        InputStream resourceAsStream = Resources.getResourceAsStream("userMapperConfig.xml");
        SqlSessionFactory fa = new SqlSessionFactoryBuilder().build(resourceAsStream);
        SqlSession sqlSession = fa.openSession();
        //根据需求不同,调用的方法也不同
        List<User> list = sqlSession.selectList("userMapper.findAll");
        System.out.println(list);
        sqlSession.close();
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值