mybatis框架

1.什么是框架

        框架是一个半成品,已经对基础的代码进行了封装并提供相应的API,开发者在使用框架是直接调用封装好的api可以省去很多代码编写,从而提高工作效率和开发速度。

2.什么是ORM

         ORM,即Object-Relational Mapping(对象关系映射),它的作用是在关系型数据库和业务实体对象之间作一个映射,这样,我们在具体的操作业务对象的时候,就不需要再去和复杂的SQL语句打交道,只需简单的操作对象的属性和方法。

3.什么是mybatis框架

        MyBatis 是支持普通 SQL 查询存储过程高级映射的优秀==ORM框架==。MyBatis 消除了几乎所有的 JDBC 代码和参数的手工设置以及对结果集的检索封装。MyBatis 可以使用简单的 XML 或注解用于配置和原始映射,将接口和 Java 的 POJO(Plain Old Java Objects,普通的 Java 对象)映射成数据库中的记录. 半自动化框架。必须写sql语句。 mybatis就是封装与数据库交互的半成品。

4.lombok

        简化实体类中的set和get方法以及tostring方法和构造方法。

        1.1 安装lombok插件。
        1.2 引入lombok依赖。
           <dependency>
              <groupId>org.projectlombok</groupId>
              <artifactId>lombok</artifactId>
              <version>1.18.22</version>
            </dependency>

5.如何使用mybatis

        准备条件:

        create database mybatis;
use mybatis;
CREATE TABLE users(id INT PRIMARY KEY AUTO_INCREMENT, NAME
VARCHAR(20), age INT);
INSERT INTO users(NAME, age) VALUES('Tom', 12);
INSERT INTO users(NAME, age) VALUES('Jack', 11);

        创建一个maven的java工程

        引入mybatis的jar和mybatis的驱动jia包

 <dependencies>
    <!--mysql驱动依赖-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.27</version>
    </dependency>
    <!--mybatis的依赖-->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.7</version>
    </dependency>
     <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.22</version>
        </dependency>
</dependencies>

        创建相应的实体类

@Data
@NoArgsConstructor  //无参构造函数
@AllArgsConstructor //所有参数的构造函数
public class User {
    private int id;
    private String name;
    private int age;

}

        配置mybatis的配置文件,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>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/mybatis" />
<property name="username" value="root" />
<property name="password" value="root" />
</dataSource>
</environment>
</environments>
</configuration>

        编写相应的映射文件,sql语句   实体类与表的映射

<?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:命名空间:它的值现在可以随便写。
              以后必须和dao接口对应。
-->
<mapper namespace="a">

    <!--sql语句-->
    <!--1.根据id查询用户信息
          select:表示查询标签
             id:唯一标签.
             resultType: 返回结果的类型。 mybatis框架帮你把结果封装到User类型中。

             #{}:---->占位符。并且或解析uid的值。
    -->
    <select id="getUserById" resultType="com.ykq.entity.User">
        select * from users where id=#{uid}
    </select>
</mapper>

        把映射文件引入到mybatis配置文件中

        测试

 

public class Test {
    public static void main(String[] args) throws Exception{
        //1.读取mybatis的配置文件。  连接数据库---
        Reader reader = Resources.getResourceAsReader("mybatis.xml");
        SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(reader);

        //2.获取Session对象---->Connection对象
        SqlSession session=sqlSessionFactory.openSession();

        //3.执行相应的功能
        User user = session.selectOne("a.getUserById", 2);
        System.out.println(user);
    }
}

6.CRUD操作

import com.ztl.entity.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.Reader;
import java.util.List;


public class TestUser {

    @Test
    public void testSelectAll()throws Exception{
        Reader reader = Resources.getResourceAsReader("mybatis.xml");
        SqlSessionFactory sessionFactory=new SqlSessionFactoryBuilder().build(reader);
        SqlSession session=sessionFactory.openSession();
        List<User> list = session.selectList("a.selectAll");
        System.out.println(list);
    }

    @Test
    public void testDelete(){

    }

    @Test
    public void testUpdate() throws Exception{
        Reader reader = Resources.getResourceAsReader("mybatis.xml");
        SqlSessionFactory sessionFactory=new SqlSessionFactoryBuilder().build(reader);
        SqlSession session=sessionFactory.openSession();
        User user = new User();
        user.setName("小明");
        user.setAge(10);
        user.setId(4);
        session.update("a.updateUser",user);
        session.commit();
    }

    @Test
    public void testSelectByid(){

    }
    @Test
    public void testInsert() throws Exception{
        Reader reader = Resources.getResourceAsReader("mybatis.xml");
        SqlSessionFactory sessionFactory=new SqlSessionFactoryBuilder().build(reader);
        SqlSession session=sessionFactory.openSession();
        User user = new User();
        user.setName("小红");
        user.setAge(9);
        int row = session.insert("a.addUser", user);
        System.out.println("影响的行数:"+row);  //mybatis默认是开启事务 需要手动提交。 TODO 讲解事务
        session.commit();//提交  安全。
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值