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 ...
随机推荐
- Android检测服务是否运行
直接上代码: /** * 判断服务是否后台运行 * * @param context * Context * @param className * 判断的服务名字 * @return true 在运行 ...
- vim基础学习1---简单命令
1:vim abc:如果有abc文件,则打开,否则创建之后打开 2:输入"i",才可以输入东西 3:按Esc,它是底行模式,再敲":wq 回车" 保存退出. 4 ...
- 参照UB单创建DN并过账
*&---------------------------------------------------------------------* *& Form FRM_DN_POST ...
- python中hashlib模块用法示例
python中hashlib模块用法示例 我们以前介绍过一篇Python加密的文章:Python 加密的实例详解.今天我们看看python中hashlib模块用法示例,具体如下. hashlib ha ...
- Anaconda+tensorflow(不用创建虚拟环境)
网上大部分教程都是:创建tensorflow虚拟环境(conda create -n tensorflow python=3.6),然后在虚拟环境中pip install tensorflow,但是每 ...
- swift 第九课 用tableview 做一个下拉菜单Menu
写到这里的时候,自己这个项目已经完成了一半左右,项目进度自己还是挺满意.今天又有一个新的布局,要实现个下拉菜单,刚开始写的时候,觉得会很容易,后来发现也是小错不断, 我想自己限制的自己属于写博客的初期 ...
- [System.Serializable],
[System.Serializable]添加在类,枚举,结构前面,可以让该这些对象在inspector中显示 [SerializeField]是设置非public 成员对象在inspector中显示
- 【VS开发】VS2010 MFC中控件、对话框等背景颜色动态修改的方法
[VS开发]VS2010 MFC中控件.对话框等背景颜色动态修改的方法 标签(空格分隔):[VS开发] 声明:引用请注明出处http://blog.csdn.net/lg1259156776/ 说明: ...
- SQL查询表的第一条数据和最后一条数据
方法一: 使用TOP SELECT TOP 1 * FROM user; SELECT TOP 1 * FROM user order by id desc; 方法二: 使用LIMIT SELECT ...
- eNSP——VLAN基础配置和Access
原理: 早期的局域网技术是基于总线型的结构,也就是说所有主机共享一条传输线路.这就带来了很多问题:冲突域和安全问题.为了避免冲突域,我们使用二层交换机.但想想,一台计算机在总线上传输数据的时候,所有计 ...