MyBatis-helloworld

  1. 创建maven父工程,引入相关依赖。
    <!--相关依赖-->
    <dependencyManagement>
        <dependencies>
            <!-- Mybatis核心 -->
            <dependency>
                <groupId>org.mybatis</groupId>
                <artifactId>mybatis</artifactId>
                <version>3.5.7</version>
            </dependency>
            <!-- junit测试 -->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.12</version>
                <scope>test</scope>
            </dependency>
            <!-- MySQL驱动 -->
            <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <version>8.0.28</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
  1. 创建子工程,并引入依赖。
    <dependencies>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
        </dependency>
    </dependencies>
  1. 创建MyBatis核心配置文件,在MyBatis中文网中找到相应的配置文件内容并粘贴即可。核心配置文件的名称通常为mybatis-config.xml,也可以自定义一个别的名称。创建好配置文件后,将中文网中的示例粘贴即可。在这里插入图片描述在这里插入图片描述在这里插入图片描述

  2. 准备测试用的数据库,建立一个mybatis的测试数据库,并使用命令建立表create table user(id int,username varchar(20),password varchar(20),age int,sex char,email varchar(20));

  3. 创建mapper接口,mapper接口就相当于Dao类,然后再创建pojo类用于接收查询结果。在这里插入图片描述

  4. 创建映射文件。

<?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">
<!--要保证SQL语句能够映射到相应的方法,必须要保证以下两点
    1.namespace要与接口的全类名一致
    2.SQL标签的id要与接口中的方法名一致-->
<mapper namespace="pers.beiluo.mabatis.mapper.UserDao">
    <select id="insertUser">
        insert into user values (1,'zhangsan','123',25,'男','asd@qsd.com')
    </select>
</mapper>
  1. 测试。
    @Test
    public void test1() throws IOException {
        //读取mybatis核心配置文件
        InputStream resourceAsStream = Resources.getResourceAsStream("mybatis-config.xml");
        //获取工厂Builder
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
        //获取工厂
        SqlSessionFactory build = sqlSessionFactoryBuilder.build(resourceAsStream);
        //获取sqlsession
        SqlSession sqlSession = build.openSession();
        //得到接口的实例对象,接口实现类由mybatis负责
        UserDao mapper = sqlSession.getMapper(UserDao.class);
        //执行插入语句
        Integer i = mapper.insertUser();
        //由于事务管理类型为JDBC,所以需要手动提交事务
        sqlSession.commit();
        //
        System.out.println(i);
    }

在这里插入图片描述
在这里插入图片描述

  1. 优化:
    • SqlSession sqlSession = build.openSession(true);可以开启事务自动提交,不需要再手动提交。
    • 加入log4j日志功能:引入相关依赖,加入log4j配置文件: <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency>。log4j配置文件找一个粘贴即可,不用自己写。
      在这里插入图片描述
  2. 修改用户测试。
    <update id="updateUser">
        update user set username='lisi',age=30,email='kjn@laksnd.com' where id=2
    </update>

在这里插入图片描述
在这里插入图片描述

  1. 删除用户测试。
    <delete id="deleteUser">
        delete from user where id=2
    </delete>

在这里插入图片描述在这里插入图片描述

  1. 查询用户测试。
    <!--在设置查询语句时,需要额外设置resultType或resultMap
        resultType:用于实体类字段名与表中字段名一致的情况
        resultMap:自定义映射,实体类字段名与表中字段名不一致的情况-->
    <select id="getUserById" resultType="pers.beiluo.mybatis.pojo.User">
        select * from user where id=1
    </select>

    <!--即使是查询多条记录,本质上还是一条一条查的,所以仍旧映射到实体类-->
    <select id="getAllUsers" resultType="pers.beiluo.mybatis.pojo.User">
        select * from user
    </select>

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值