Mybatis的入门了解

一:首先了解什么是Mybatis

MyBatis 是一个可以自定义SQL、存储过程du和高级映射的持久层框架。MyBatis 摒除了大部分的JDBC代码、dao手工设置参数和结果集重获。MyBatis 只使用简单的XML 和注解来配置和映射基本数据类型、Map 接口和POJO 到数据库记录。相对Hibernate和Apache OJB等“一站式”ORM解决方案而言,Mybatis 是一种“半自动化”的ORM实现。

二:mybatis有什么用?

MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。

三:怎么用?

1.在pom.xml文件中配置依赖:
在这里插入图片描述主要的依赖有以下几个:

<!-- mybatis--> 
<dependency> 
<groupId>org.mybatis</groupId> 
<artifactId>mybatis</artifactId> 
<version>3.5.5</version>
 </dependency> 

<!-- jdbc驱动类-->
 <dependency> 
 <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
   <version>5.1.38</version>
    </dependency> 
<!-- 单元测试--> 
<dependency> 
<groupId>junit</groupId> 
<artifactId>junit</artifactId>
 <version>4.12</version> 
 <scope>test</scope>
  </dependency> 
<!-- 小辣椒lombok -->
 <dependency> 
 <groupId>org.projectlombok</groupId> 
 <artifactId>lombok</artifactId> 
 <version>1.18.12</version> 
 <scope>provided</scope>
  </dependency>

2.在数据库中创建表

create database j2005-mybatis; use j2005-mybatis; create table accountbook( id int primary key auto_increment, -- 主键 name varchar(200), -- 账单名称 money double, -- 金额 payway varchar(100), -- 付款|收款方式 createTime date, -- 日期 description varchar(1000) -- 账单描述 );

3.创建实体类(pojo类)

package com.pojo; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import lombok.ToString; import java.util.Date;
 @Data
  @NoArgsConstructor
   @AllArgsConstructor 
   @ToString
    public class AB 
 { private Integer id; 
 private String name;
private Double money; 
private String payway; 
private Date createTime; //属性名和字段名一致 
private String description; //ctrl+o 重写父类的方法 //ctrl+i 实现接口中抽象方法 //alt+insert 生成构造方法 get 和 set toString 
}

3.创建接口

package com.mapper;
 import com.pojo.AB; 
 public interface ABMapper { 
 public int addAB(AB ab); 
 //解释:返回值类型是int,插入成功和失败,只返回影响的行数,行数为int类型 // 参数com.pojo.AB类型,添加的是一个AB对象 // 接口中的抽象方法,一定被 public abstract修饰 
 }

4.然后选择配置Mybatis的核心配置文件

<?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>
    <!-- 配置-->


<!--    配置别名-->
    <typeAliases>
        <package name="com.pojo"/>
    </typeAliases>
<!--   配置类型转换 -->
    <typeHandlers>
        <typeHandler handler="com.handler.SexEnumHandler"
                     javaType="com.enum_.SexEnum"/>

    </typeHandlers>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://127.0.0.1:3306/j2005_mybatis?serverTimezone=Asia/Shanghai"/>
                <property name="username" value="root"/>
                <property name="password" value="12345678"/>
            </dataSource>
        </environment>
    </environments>
    <!--配置映射文件-->
    <mappers>
        <mapper resource="com/mapper/ABMapper.xml"/>
        <mapper resource="com/mapper/UserMapper.xml"/>
        <mapper resource="com/mapper/ClassMapper.xml"/>
        <mapper resource="com/mapper/StudentMapper.xml"/>
    </mappers>
</configuration>

在这里插入图片描述5.之后就进入了对接口类进行操作的配置文件的部分
在这里插入图片描述在这里插入图片描述

<?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="com.mapper.ABMapper">
    <select id="findAll" resultType="AB">
select *from accountbook
</select>

    <insert id="addAB" parameterType="AB">
        insert into accountbook(name,money,payway,createTime,
        description) values(#{name},#{money},#{payway},#{createTime},#{description})

    </insert>
    </mapper>

7.在所有步骤完成之后就可以进入测试阶段


public class ABMapperTest {

    private SqlSession sqlSession;
    private ABMapper abMapper;
    //通过sqlSessionFactory.openSession();来获取sqlSession,
    @Before
    public void setUp() throws Exception {
        System.out.println("Before = " + true);
        String resource ="mybatis-config.xml";
        InputStream inputStream= Resources.getResourceAsStream(resource);
        SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
        System.out.println("-------------------sqlSessionFactory-------------------------" + sqlSessionFactory);
   sqlSession=sqlSessionFactory.openSession();

   abMapper=sqlSession.getMapper(ABMapper.class);

    }
//关闭资源
    @After
    public void tearDown() throws Exception {
        System.out.println("----------------------After---------------" + true);
        sqlSession.close();
    }

    @Test
    public void addAB() {
        System.out.println("------------------addab--------------- " + true);
        AB ab =new AB(0,"大虾滑",2.2,"支付宝",new Date(),"裤子");
          int n = abMapper.addAB(ab);
          sqlSession.commit();
        System.out.println("n = " + n);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值