一、MyBatis简介

MyBatis:是一个基于Java的轻量级持久层框架

优点:

  • 支持定制化 SQL、存储过程以及高级映射的优秀的持久层框架

  • 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集

  • 可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO映射成数据库中的记录

MyBatis下载地址:https://github.com/mybatis/mybatis-3


二、搭建MyBatis


① 创建maven工程,引入依赖

<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.11</version>
      <scope>test</scope>
    </dependency>

	<!-- MySQL驱动 --> 
   	<dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.29</version>
    </dependency>
</dependencies>

友情提示:引入之后别忘了刷新一下maven哟 ~


② 创建MyBatis的核心配置文件(mybatis-config.xml)

<?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>
    <properties resource="jdbc.properties"/>
    
    <!--设置连接数据库的环境-->
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"/>
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments>

    <!--引入映射文件-->
    <mappers>
        <package name="com.itheima.mapper"/>
    </mappers>
</configuration>

友情提示:jdbc.properties文件中不要出现空格哟 ~

jdbc.username=root jdbc.password=abc123 jdbc.url=jdbc:mysql://localhost:3306/mybatis?useSSL=false jdbc.driver=com.mysql.cj.jdbc.Driver

密码填自己的密码哦 ~


③ 创建mapper接口

public interface UserMapper {
    //添加用户信息 
    int insertUser();
}

④ 创建MyBatis的映射文件

<?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.itheima.mapper.UserMapper">
    
    <!--id属性的值需要与mapper接口中的方法名一致-->
    <insert id="insertUser">
        insert into t_user values(null,'张三','123',23,'女',"zs123@qq.com")
    </insert>
</mapper>

友情提示:映射文件需要与mapper接口位于同名目录下哟 ~


⑤ 通过junit测试是否添加成功

@Test
public void testUser() throws Exception {
    //读取MyBatis的核心配置文件
    InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
    
    //创建SqlSessionFactoryBuilder对象
    SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
    
    //通过核心配置文件所对应的字节输入流创建工厂类SqlSessionFactory,生产SqlSession对象
    SqlSessionFactory sqlSessionFactory = sqlSessionFactoryBuilder.build(is);
    
    //创建SqlSession对象,参数为true时通过SqlSession对象所操作的sql都会自动提交
    SqlSession sqlSession = sqlSessionFactory.openSession(true);
    
    //通过代理模式创建UserMapper接口的代理实现类对象
    UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
    
    // 调用UserMapper接口中的方法,就可以根据UserMapper的全类名匹配元素文件,
    // 通过调用的方法名匹配 映射文件中的SQL标签,并执行标签中的SQL语句
    int result = userMapper.insertUser();
}

友情提示:查看更详细错误信息可以引入日志文件依赖哟 ~(参照下文)


三、日志功能

友情提示:建议复制粘贴哟 ~


a>加入依赖

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

b>加入log4j的配置文件

<?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>

友情提示:链接 http://jakarta.apache.org/log4j/ 爆红不会影响日志效果哟 ~


以上就是本文的全部内容啦 !!! 有任何问题,欢迎下方留言哟 ~