1.导入jar包

2.定义实体类

3.创建对应的表

4.定义Dao接口

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

5.定义映射文件

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

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

  这个mapper.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">
<mapper namespace="test">
<!-- parameterType 可以省略 -->
<insert id="insertStudent">
insert into student (age,name,score) values (#{age},#{name},#{score}); <!-- #{}中写入的是Student类的属性名 -->
</insert>
</mapper>

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

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

6.定义主配置文件

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

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

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

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

7.定义Dao实现类

 public class StudentDAOImpl implements StudentDAO {

     private SqlSession sqlSession;
@Override
public void saveStudent(Student s) {
try {
//1.读取配置文件
InputStream inputStream = Resources.getResourceAsStream("mybatis.xml");
//2.创建SqlSessionFactory对象
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(inputStream);
//3.创建SqlSession对象
sqlSession = factory.openSession();
//4.执行操作
sqlSession.insert("insertStudent", s);
//5.SqlSession提交
sqlSession.commit();
} catch (IOException e) {
e.printStackTrace();
} finally {
//6.SqlSession关闭
if(sqlSession != null) {
sqlSession.close();
}
}
} }

8.定义测试类

 public class MyTest {

     @Test
public void testAdd() {
Student s = new Student();
s.setAge(25);
s.setName("xzk5");
s.setScore(99); StudentDAO studentDAO = new StudentDAOImpl();
studentDAO.saveStudent(s);
}
}

9.添加日志控制文件

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

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

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

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

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

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

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

2.第一个MyBatis程序的更多相关文章

  1. 第一个Mybatis程序示例 Mybatis简介(一)

    在JDBC小结中(可以参阅本人JDBC系列文章),介绍到了ORM,其中Mybatis就是一个不错的ORM框架 MyBatis由iBatis演化而来 iBATIS一词来源于“internet”和“aba ...

  2. 我的第一个Mybatis程序

    第一个Mybatis程序 在JDBC小结中(可以参阅本人JDBC系列文章),介绍到了ORM,其中Mybatis就是一个不错的ORM框架 MyBatis由iBatis演化而来 iBATIS一词来源于“i ...

  3. 第一个MyBatis程序(博客初写者)

    第一个Mybatis程序 一.环境: 1.JDK1.8 2.MYSQL5.7 3.IDEA 4.MAVEN 3.63 二.Mybatis认识: 1.查看官方文档 https://mybatis.org ...

  4. MyBatis-02-第一个Mybatis程序

    2.第一个Mybatis程序 思路:搭建环境-->导入Mybatis-->编写代码-->测试! 2.1.搭建环境 搭建数据库 CREATE DATABASE `mybatis`; u ...

  5. Mybatis入门及第一个Mybatis程序

    Mybatis笔记整理 所需要的基础知识 JDBC Mysql Java基础 Maven Junit 框架:是有配置文件的.最好的方式:看官网文档 1.简介 1.1.什么是MyBatis 简介 什么是 ...

  6. 由浅入深--第一个MyBatis程序

    话不多说,马上开始我们的第一个Mybatis程序: 第一个程序,当然要参考MyBatis的官网文档来搞,地址如下:https://mybatis.org/mybatis-3/zh/getting-st ...

  7. 使用idea创建第一个Mybatis程序及可能遇到的问题

    第一个Mybatis程序 思路:搭建环境->导入Mybatis->编写代码->执行 搭建环境 创建数据库 CREATE DATABASE `mybatis` USE `mybatis ...

  8. Mybatis【1】-- 第一个Mybatis程序

    1.框架是什么 框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架.前者是从应用方面而后者是从目的方面 ...

  9. 第一个MyBatis程序

    最近研究了一些MyBatis技术,虽然工作中还未用到,但是觉得了解一下也是不错的.这里记录了第一个简单的Demo程序,防止自己忘记. 第一步需要配置Mybatis-config.xml文件.注意:这里 ...

  10. MyBatis(一):第一个MyBatis程序

    本文是按照狂神说的教学视频学习的笔记,强力推荐,教学深入浅出1便就懂!b站搜索狂神说即可 https://space.bilibili.com/95256449?spm_id_from=333.788 ...

随机推荐

  1. linux简单命令8---用户登录查看命令

    ---------------------------------------------------------------------------------------------------- ...

  2. JMeter 不同线程组间变量传递(亲测 ok)

    JMeter元件都是有作用域的,而变量大多使用正则表达式提取器,要想在不通过线程组件使用变量参数,则需要设置全部变量 JMeter函数助手就提供了一个函数用于设置全局变量属性,实现的功能类似于在用户自 ...

  3. BTE增强

    转自https://www.cnblogs.com/Garfield/p/5313962.html Enhancement(1)--BTEs 最近一个同事碰到一个FI的增强,要用BTEs实现,我也是第 ...

  4. 电力项目十一--js添加浮动框

    1.添加浮动窗口样式 <!-- 浮动窗口样式css begin --> <style type="text/css"> #msg_win{border:1p ...

  5. haproxy报错解决

    .有一次访问出现 错误 http://192.168.0.200:10080 haproxy service unavailable no server is avaible to handle th ...

  6. CockroachDB学习笔记——[译]The New Stack:遇见CockroachDB,一个弹性SQL数据库

    原文链接:https://www.cockroachlabs.com/blog/the-new-stack-meet-cockroachdb-the-resilient-sql-database/ 原 ...

  7. mongodb中对数组的操作命令

    mongodb中对数组的操作命令有$push.$ne.$addtoset.$pop.$pull ###addtoset会碰到的问题addtoset解释: 往数组里面加入数据,如果数组里已经存在,则不会 ...

  8. 《精通并发与Netty》学习笔记(06 - Apache Thrift使用简介)

    一.概述 Apache Thrift 是 Facebook 实现的一种高效的.支持多种编程语言的远程服务调用的框架.Thrift是由Facebook开发的,并在2008年捐给了Apache基金会,成为 ...

  9. Docker跨主机网络实践

    Docker使用中网络管理是最麻烦的,在项目初始化前期就需要进行合理的规划,如果在比较理想的单主机的网络通信是比较简单的,但如果涉及到跨主机的网络就需要使用docker自带的overlay netwo ...

  10. appium(api操作)

    driver.current_activity #获取当前activity driver.current_package #获取包名 driver.lock(seconds=2) #息屏 #收起虚拟键 ...