2.第一个MyBatis程序
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程序的更多相关文章
- 第一个Mybatis程序示例 Mybatis简介(一)
在JDBC小结中(可以参阅本人JDBC系列文章),介绍到了ORM,其中Mybatis就是一个不错的ORM框架 MyBatis由iBatis演化而来 iBATIS一词来源于“internet”和“aba ...
- 我的第一个Mybatis程序
第一个Mybatis程序 在JDBC小结中(可以参阅本人JDBC系列文章),介绍到了ORM,其中Mybatis就是一个不错的ORM框架 MyBatis由iBatis演化而来 iBATIS一词来源于“i ...
- 第一个MyBatis程序(博客初写者)
第一个Mybatis程序 一.环境: 1.JDK1.8 2.MYSQL5.7 3.IDEA 4.MAVEN 3.63 二.Mybatis认识: 1.查看官方文档 https://mybatis.org ...
- MyBatis-02-第一个Mybatis程序
2.第一个Mybatis程序 思路:搭建环境-->导入Mybatis-->编写代码-->测试! 2.1.搭建环境 搭建数据库 CREATE DATABASE `mybatis`; u ...
- Mybatis入门及第一个Mybatis程序
Mybatis笔记整理 所需要的基础知识 JDBC Mysql Java基础 Maven Junit 框架:是有配置文件的.最好的方式:看官网文档 1.简介 1.1.什么是MyBatis 简介 什么是 ...
- 由浅入深--第一个MyBatis程序
话不多说,马上开始我们的第一个Mybatis程序: 第一个程序,当然要参考MyBatis的官网文档来搞,地址如下:https://mybatis.org/mybatis-3/zh/getting-st ...
- 使用idea创建第一个Mybatis程序及可能遇到的问题
第一个Mybatis程序 思路:搭建环境->导入Mybatis->编写代码->执行 搭建环境 创建数据库 CREATE DATABASE `mybatis` USE `mybatis ...
- Mybatis【1】-- 第一个Mybatis程序
1.框架是什么 框架(Framework)是整个或部分系统的可重用设计,表现为一组抽象构件及构件实例间交互的方法;另一种定义认为,框架是可被应用开发者定制的应用骨架.前者是从应用方面而后者是从目的方面 ...
- 第一个MyBatis程序
最近研究了一些MyBatis技术,虽然工作中还未用到,但是觉得了解一下也是不错的.这里记录了第一个简单的Demo程序,防止自己忘记. 第一步需要配置Mybatis-config.xml文件.注意:这里 ...
- MyBatis(一):第一个MyBatis程序
本文是按照狂神说的教学视频学习的笔记,强力推荐,教学深入浅出1便就懂!b站搜索狂神说即可 https://space.bilibili.com/95256449?spm_id_from=333.788 ...
随机推荐
- SqlServer视图介绍以及创建方式
1.,视图的介绍: (ps:学sqlServer视图是在面试问到之后学的,答不上来太low了,然后就去各种搜索操作对视图也有了自己的理解) 其实视图就是一张表,是一张表中或者多张表中经过某种筛选后显示 ...
- Qt编写自定义控件24-图片轮播控件
一.前言 上一篇文章写的广告轮播控件,采用的传统widget堆积设置样式表做的,这次必须要用到更高级的QPainter来绘制了,这个才是最高效的办法,本控件参考雨田哥的轮播控件,经过大规模的改造而成, ...
- Qt编写安防视频监控系统3-通道交换
一.前言 最开始写通道交换的功能的时候,走了很多弯路,比如最开始用最初级的办法,触发交换的时候,先关闭视频,然后设置新的url重新打开视频,这样处理非常低级而且耗内存还卡还很慢,毕竟重新打开视频都需要 ...
- Arrange seat of a bench for people
Given a bench with n seats and few people sitting, tell the seat number each time when a new person ...
- django 之(四) --- 级联|截流
登陆注册 登陆注册实现 settings.py # redis配置 CACHES = { "default": { "BACKEND": "djang ...
- [Tensorflow] 使用 tf.keras.utils.get_file() 下载 MS-COCO 2014 数据集
import argparse import tensorflow as tf tf.enable_eager_execution() def main(args): ""&quo ...
- 如何运行spring boot 工程
1.右键工程,Run As, Maven install, 2.右键工程,Run As,Spring Boot App 3.在地址栏输入127.0.0.1:8080 动图示例
- [LuoguP1264]K-联赛_网络流
K-联赛 题目链接:https://www.luogu.org/problem/P1264 数据范围:略. 题解: 首先,枚举所有球队是否作为答案是必须的. 因为发现$n$实在是特别小,很容易想到网络 ...
- vue移动端弹框组件
最近做一个移动端项目,弹框写的比较麻烦,查找资料,找到了这个组件,但是说明文档比较少,自己研究了下,把我碰到的错,和详细用法分享给大家!有疑问可以打开组件看一看,这个组件是仿layer-mobile的 ...
- postgres csv日志和查看用户权限
最近在使用postgres 时遇到的2个问题,顺便记录一下查到的比较好的资料. 怀疑postgres在执行SQL时报错,程序日志中有无明确异常信息.通过查看csv日志来确定是否SQL真的是执行时报错. ...