2.第一个MyBatis程序

1.导入jar包

2.定义实体类

3.创建对应的表

4.定义Dao接口

1 public interface StudentDAO {
2     public void saveStudent(Student s);
3 }

5.定义映射文件

  映射文件,简称为mapper,主要完成Dao层中SQL语句的映射。具体映射的配置,后面会详细讲解

  映射文件名随意,一般放在 dao 包中,最好和Dao名称保持一致,我们这里写成mapper.xml

  这个mapper.xml 文件的约束文件可以从 官方文档找到,

  

 1 <?xml version="1.0" encoding="UTF-8" ?>
 2 <!DOCTYPE mapper
 3 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 4 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 5 <mapper namespace="test">
 6 <!-- parameterType 可以省略 -->
 7     <insert id="insertStudent">
 8         insert into student (age,name,score) values (#{age},#{name},#{score}); <!-- #{}中写入的是Student类的属性名 -->
 9     </insert>
10 </mapper>

  注意:#{ }中写入的是Student类的属性名

  对于 parameterType 属性,框架会自动根据用户执行的SqlSession方法中的参数自动检测到,所以parameterType 可以省略

6.定义主配置文件

  主配置文件的约束文件同样从文档中找到

  主配置文件名也可以随意命名,这里写成 mybatis.xml

  主配置文件在这里完成两方面的功能:

    1.配置MyBatis运行环境      2.注册映射文件

7.定义Dao实现类

 1 public class StudentDAOImpl implements StudentDAO {
 2     
 3     private SqlSession sqlSession;
 4     @Override
 5     public void saveStudent(Student s) {
 6         try {
 7             //1.读取配置文件
 8             InputStream inputStream = Resources.getResourceAsStream("mybatis.xml");
 9             //2.创建SqlSessionFactory对象
10             SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);
11             //3.创建SqlSession对象
12             sqlSession = factory.openSession();
13             //4.执行操作
14             sqlSession.insert("insertStudent", s);
15             //5.SqlSession提交
16             sqlSession.commit();
17         } catch (IOException e) {
18             e.printStackTrace();
19         } finally {
20             //6.SqlSession关闭
21             if(sqlSession != null) {
22                 sqlSession.close();
23             }    
24         }
25     }
26 
27 }

8.定义测试类

 1 public class MyTest {
 2     
 3     @Test
 4     public void testAdd() {
 5         Student s = new Student();
 6         s.setAge(25);
 7         s.setName("xzk5");
 8         s.setScore(99);
 9         
10         StudentDAO studentDAO = new StudentDAOImpl();
11         studentDAO.saveStudent(s);
12     }
13 }

9.添加日志控制文件

MyBatis 使用 Log4j 进行日志处理,而 Login4j2 对其支持并不好,

所以在 MyBatis 中需要  log4j.properties 放入到项目的 src 目录下。

若将日志级别设置为 debug,则可以显示出所执行的 SQL 语句、参数值、对 DB 的影响 条数等信息。若将级别设置为 trace,则还可显示出查询出的每条记录的每个字段名及值。

不过,需要注意的是,若日志对象使用根日志对象 rootLogger,则会输出太多的信息

1 ### direct log messages to stdout ###
2 log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
3 log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
4 log4j.appender.CONSOLE.Target=System.out
5 log4j.appender.CONSOLE.layout.ConversionPattern= %5p %c:%L - %m%n
6 
7 log4j.logger.test=DEBUG,CONSOLE

在 MyBatis 中,可以指定要输出日志的工作空间 namespace 的名字。此时,只会输出该namespace 下执行的 SQL 的日志内容

我们这里的 namespace 是 test              <mapper namespace="test">

原文地址:https://www.cnblogs.com/xuzekun/p/7419061.html