创建一个mybatis项目并运行

下载jar包链接

GitHub - mybatis/mybatis-3: MyBatis SQL mapper framework for Java

创建一个maven项目

对项目进行基本的pom配置,以及pojo\mapper结构创建

打开下载的mybits使用手册

复制新手入门

对resources粘贴

以上类容为配置数据库连接环境

解读数据库连接xml文件

首先是jdbc段,这里需进行配置:

JDBC

 <property name="driver" value="${driver}"/>
 <property name="url" value="${url}"/>
 <property name="username" value="${username}"/>
 <property name="password" value="${password}"/>

配置

<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/fzhl_?serverTimezone=UTC"/>
<property name="username" value="root"/>
<property name="password" value="root"/>

下面一段为引入mybatis映射文件:

复制的代码

<mappers>
    <mapper resource="org/mybatis/example/BlogMapper.xml"/>
</mappers>

需对其进行配置(但先得创建mapper映射文件)

创建mapper映射文件和接口

两者必须保持文件名相同

连接数据库添加数据

pojo写数据库对应参数的java对象

User类

public class User {
    private int id;
    private String name;
    public User(){
    }
    public User(int id, String name) {
        this.id = id;
        this.name = name;
    }
}

对应数据库

mysql> select * from fz01;
+------+------+
| id   | name |
+------+------+
|    1 | aa   |
+------+------+
1 row in set (0.01 sec)
mysql>

接口写一个添加方法

package org.example.mapper;

public interface Usermapper {
    // 添加一条数据
    int adduser();
}

xml映射:

找到使用手册

复制粘贴

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- /写入Usermapper接口文件路径完成映射关系/ -->
<mapper namespace="org.example.mapper.Usermapper">
<!--  默认自带一条查询语句   可删  -->
    <select id="selectBlog" resultType="Blog">
        select * from Blog where id = #{id}
    </select>
  <!-- 写入添加信息sql语句 id对应接口方法名 -->
  <insert id="adduser">
        insert into fz01 values(2,'大明');
    </insert>
  
</mapper>

配置数据库连接xml文件的mybatis段

<mappers>
        <mapper resource="mapper/Usermapper.xml"/>
</mappers>

执行配置好的sql添加语句写法

package org.example;
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.example.mapper.Usermapper;
import org.junit.Test;
import sun.misc.Resource;

import java.io.FileInputStream;
import java.io.InputStream;
public class Usertext {
    @Test
    public void a() throws Exception{
        // 获取文件输入流
        InputStream inputStream = Resources.getResourceAsStream("mybatis_01.xml");
        // 构建工程对象
        SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
        // 构建工程
        SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(inputStream);
        // 获取操作sql语句对象
        SqlSession session = sqlSessionFactory.openSession();
        // 实现 Usqlmapper 代理实现对象
        Usermapper usermapper = session.getMapper(Usermapper.class);
        // 执行sql语句 返回影响行
        System.out.println(usermapper.adduser());
        // ************* 重点 **************
        // 执行语句后这里是默认回滚的,所以需要提交事务
        session.commit();
        // 关闭流
        inputStream.close();
        session.close();
    }
}

对执行进行优化

不使用mapper接口来执行sql语句

        // 实现 Usqlmapper 代理实现对象
//        Usermapper usermapper = session.getMapper(Usermapper.class);
        // 执行sql语句 返回影响行
//        System.out.println(usermapper.adduser());

        // 注释mapper接口,直接使用session
        session.insert("org.example.mapper.Usermapper.adduser");

省略提交事务

        // 获取操作sql语句对象
//        SqlSession session = sqlSessionFactory.openSession();
        // 获取sql时添加一个true参数
        SqlSession session = sqlSessionFactory.openSession(true);
        // 实现 Usqlmapper 代理实现对象
//        Usermapper usermapper = session.getMapper(Usermapper.class);
        // 执行sql语句 返回影响行
//        System.out.println(usermapper.adduser());
        // 注释mapper接口,直接使用session
        session.insert("org.example.mapper.Usermapper.adduser");
        // ************* 重点 **************
        // 执行语句后这里是默认回滚的,所以需要提交事务
//        session.commit();

执行结果打印sql执行后的日志信息

首先添加依赖log4j

    <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.17</version>
    </dependency>

在resources文件下创建于映射文件log4j.xml

内容写入

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

    <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
        <param name="Encoding" value="UTF-8" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%-5p %d{MM-dd HH:mm:ss,SSS} %m  (%F:%L) \n" />
        </layout>
    </appender>
    <logger name="java.sql">
        <level value="debug" />
    </logger>
    <logger name="org.apache.ibatis">
        <level value="info" />
    </logger>
    <root>
        <level value="debug" />
        <appender-ref ref="STDOUT" />
    </root>
</log4j:configuration>

运行sql语句显示日志结果

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值