1. 数据库建表

    ​create table student(
    ​id number,
    ​name varchar2(20),
    ​gender varchar2(8),
    ​birthday date);
  2. 新建一个项目,创建好相应的package及class

     package com.briup.bean;
     import java.util.Date;
     public class Student {
         private int id;
         private String name;
         private String gender ;
         private Date birthday;
         get/set
     }
  3. 项目中引入mybatis的核心包(必选)以及可选的依赖包

  4. mybatis中的配置文件和映射文件分别引入到项目中(默认的dtd文件中没有设置<!DOCTYPE>可以从官方文档复制)
    src下面的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>
         <environments default="development">
             <environment id="development">
                 <transactionManager type="JDBC"/>
                 <dataSource type="POOLED">
                     <property name="driver" value="oracle.jdbc.driver.OracleDriver"/>
                     <property name="url" value="jdbc:oracle:thin:@localhost:1521:xe"/>
                     <property name="username" value="jack"/>
                     <property name="password" value="jack"/>
                 </dataSource>
             </environment>
         </environments>
         <mappers>
             <mapper resource="com/briup/mappers/studentMapper.xml"/>
         </mappers>
     </configuration>

    com.briup.mappers包下面的StudentMapper.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">
     <!-- com.briup.mappers.StudentMapper是我们定义接口的全限定名字 这样就可以使用接口调用映射的SQL语句了 注意这个名字一般【可以】和对应的包名字一样的-->
     <mapper namespace="com.briup.mappers.StudentMapper">
         <insert id="saveStudent" parameterType="com.briup.bean.Student">
             insert into student(id,name,gender,birthday)
             values (#{id},#{name},#{gender},#{birthday})
         </insert>
         <select id="findAll" resultType="com.briup.bean.Student">
             select * from student 
         </select>
     </mapper>
  5. 配置log4j.properties文件中的日志输出:
    位置src下面
    内容:

     log4j.rootLogger=DEBUG, stdout 
     log4j.appender.stdout=org.apache.log4j.ConsoleAppender 
     log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 
     log4j.appender.stdout.layout.ConversionPattern=%d [%-5p] %c - %m%n
     #show sql
     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 
  6. com.briup.mappers包下面新建一个接口StudentMapper.java,用来对应xml文件中的sql语句,从而之前方便我们调用

     package com.briup.mappers;
     import java.util.List;
     import com.briup.bean.Student;
    
     //创建映射器Mapper接口StudentMapper
     //方法名和StudentMapper.xml中定义的SQL映射定义名相同
     //这个其实就是我们之前的dao层接口
     public interface StudentMapper {
         public int saveStudent(Student s)throws Exception;
         public List<Student>  findAll() throws Exception;
     }
  7. 创建一个测试类StudentMapperTest.java

     package test;
     import java.io.InputStream;
     import java.util.Date;
    
     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.Test;
    
     import com.briup.mappers.StudentMapper;
     import com.briup.pojo.Student;
    
     public class StudentMapperTest {
    
         @Test
         public void testCreateStudent(){
    
             try {
                 InputStream inputStream = Resources.getResourceAsStream("mybatis-config.xml"); 
                 SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
                 SqlSession sqlSession = sqlSessionFactory.openSession();
    
                 StudentMapper studentMapper = sqlSession.getMapper(StudentMapper.class);
                 Student s = new Student(1, "zhangsan", "F", new Date());
                 studentMapper.saveStudent(s);
                 sqlSession.commit();
             } catch (Exception e) {
                 e.printStackTrace();
             }
    
         }
     }
  8. 运行成功后会在控制台中看到log4j日志输出的信息其中还包括事务成功提交的信息
    ```