mybatis一个简单的demo以及日志的添加

Posted yufengwang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mybatis一个简单的demo以及日志的添加相关的知识,希望对你有一定的参考价值。

MyBatis学习总结(一)——MyBatis快速入门

一、Mybatis介绍

  技术图片

  MyBatis是一个支持普通SQL查询存储过程高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。

二、Mybatis的快速入门

  先在eclipse中新建一个java工程,然后需要我们添加jar包

  【mybatis】
        mybatis-3.1.1.jar
  【mysql 驱动包】
      mysql-connector-java-5.1.7-bin.jar
  然后在数据库中建立一个简单的表,代码如下
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);

  接下来开始添加mybatis中的配置文件conf.xml,在src目录下创建一个conf.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="db.properties"></properties>
    <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>
    <!-- 把映射文件引入到配置文件中  -->
    <mappers>
        <mapper resource="com/zhiyou100/wyf/mapper/UsersMapper.xml"/>
        <mapper resource="com/zhiyou100/wyf/mapper/OrdersMapper.xml"/>
    </mappers>
</configuration>

然后我们定义与表所对应的的实体类

public class User 
private int id;
private String name;
private int age;
//get,set 方法

定义操作users表的sql映射文件userMapper.xml

创建一个mapper包,专门用于存放sql映射文件,在包中创建一个userMapper.xml文件

<?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:表示名称空间。现在的目的是区分id的. -->
<mapper namespace="com.zhiyou100.wyf.mapper.UsersMapper">
<!-- 根据id查询用户。id:标识该标签。
parameterType:参数类型。可以写 也可以省略
resultType:返回结果的类型。
#id:类似于EL表达式。 解析id的值
-->
<select id="getUser" parameterType="int" resultType="com.zhiyou100.wyf.bean.Users">
select * from users where id = #id
</select>

</mapper>

在conf.xml文件中注册userMapper.xml文件

技术图片

 

 编写单元测试来检验代码

package com.test;

import static org.junit.jupiter.api.Assertions.*;

import java.io.Reader;

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.jupiter.api.AfterAll;
import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test;

import com.zhiyou100.wyf.bean.Users;

class TestMy 
    static SqlSession session = null;
    static String str ="com.zhiyou100.wyf.mapper.UsersMapper";
    
    @BeforeAll
    static void setUpBeforeClass() throws Exception 
        //解析配置文件conf.xml
        Reader reader = Resources.getResourceAsReader("conf.xml");
        //获取SessionFactory对象
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
        session=sessionFactory.openSession();
    

        @Test
    void testck() 
        Users users = session.selectOne(str+".getUser",2);
        System.out.println(users);
    

    @AfterAll
    static void tearDownAfterClass() throws Exception 
        session.commit();
    


    

 

 提示:session.commit();  代表所有的sql语句在最后编译完成之后手动提交;

 可以添加日志来查看运行过程,引入jar包

技术图片

然后引入日志文件log4j.properties

log4j.properties,
log4j.rootLogger=DEBUG, Console
#Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
log4j.logger.java.sql.ResultSet=INFO
log4j.logger.org.apache=INFO
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG

 

 查询完成

 技术图片

 

 

 

 

以上是关于mybatis一个简单的demo以及日志的添加的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot简单整合Mybatis

mybatis代理类Demo

MyBatis Demo

一个简单的mybatis demo实现

Mybatis打印SQL

Mybatis框架简单使用