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 ...
随机推荐
- object_detection faster-rcnn
(t20190518) luo@luo-All-Series:~/MyFile/TensorflowProject/Faster_RCNN/models/research$ (t20190518) l ...
- osg(openscenegraph).chm帮助文档
openscenegraph 3.6.3 链接:https://pan.baidu.com/s/1cQkiTPQx5MIIfxe5FTfjYw 提取码:7w4z openscenegraph 3.4 ...
- dbtreeview
http://www.delphipages.com/comp/dynamic_dbtreeview-6302.html https://files.cnblogs.com/files/jijm123 ...
- Anaconda+tensorflow(不用创建虚拟环境)
网上大部分教程都是:创建tensorflow虚拟环境(conda create -n tensorflow python=3.6),然后在虚拟环境中pip install tensorflow,但是每 ...
- Scrapy五大核心组件工作流程
一.Scrapy五大核心组件工作流程 1.核心组件 # 引擎(Scrapy) 对整个系统的数据流进行处理, 触发事务(框架核心). # 调度器(Scheduler) 用来接受引擎发过来的请求. 由过滤 ...
- IDEA在引入Maven项目后Dependencies中在出现红色波浪线
解决方法: 移除pom.xml中相关依赖,再重新添加即可. 情况及具体解决方法如下: 1.在Maven Project中 Dependencies 出现红色波浪线,如图所示 2.查询本地仓库:jar包 ...
- 集群架构04·NFS服务,环境安装
初识 网络文件系统Netwrok File System,类似于wiin10的网络共享 功能:通过网络让不同主机系统之间可以共享文件或目录 客户端通过挂载的方式将服务器端共享的目录挂载到本地系统. 集 ...
- 最新 斗鱼java校招面经 (含整理过的面试题大全)
从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.斗鱼等10家互联网公司的校招Offer,因为某些自身原因最终选择了斗鱼.6.7月主要是做系统复习.项目复盘.LeetCode ...
- jq+js获取到table标签中的value
前端jsp页面,(这里接收后端的参数方式没有放在上面) <table> <tbody id="fPzQwQwzbrList"> <tr id=&quo ...
- RestTemplate实践(及遇到的问题)
在微服务都是以HTTP接口的形式暴露自身服务的,因此在调用远程服务时就必须使用HTTP客户端.我们可以使用JDK原生的URLConnection.Apache的Http Client.Netty的异步 ...