1.创建web项目

2.将所需要的jar包放在项目内,并且build-path

3.创建资源文件夹resources

4.在资源文件夹中创建xml文件mybatis-config.xml,文件代码如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configurationPUBLIC "-//mybatis.org//DTD Config 3.0//EN""http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration><!-- 起别名 --><typeAliases><typeAlias alias="Dept" type="org.entity.Dept"/></typeAliases><environments default="development"><environment id="development"><transactionManager type="JDBC"/><dataSource type="POOLED"><property name="driver" value="com.mysql.jdbc.Driver"/><property name="url" value="jdbc:mysql://localhost:3306/schooldb"/><property name="username" value="root"/><property name="password" value="root"/></dataSource></environment></environments><mappers><!-- 加载的映射文件 --><mapper resource="org/dao/IDeptDao.xml"/></mappers>
</configuration>

5.创建entity包,根据数据库表创建实体类,一个表对应一个实体类,表中的字段对应实体类中的属性

6.创建dao包,在dao包中创建接口(在接口写方法,增删改查)

public int addDept(Dept dept);
public List<Dept> findDeptAll();

7.在dao层中编写mapper.xml文件,一般mapper文件和接口文件名相同

8.IDeptDao.xml中的内容如下:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="org.dao.IDeptDao"><!-- 查询部门的数量 --><select id="findCountDept"  resultType="int">select count(*) from dept</select><!-- 添加信息 --><insert id="addDept" parameterType="org.entity.Dept">insert into dept(did,dname) values(#{did},#{dname}); </insert><!-- 修改信息 --><update id="updateDept" parameterType="org.entity.Dept">update dept set dname = #{dname} where did = #{did}</update><!-- 删除 --><delete id="delDept" parameterType="org.entity.Dept" >delete from dept where did = #{did}</delete><!-- 查询全部 --><select id="findDeptAll" resultType="org.entity.Dept">select * from dept;</select><!-- 根据编号查询信息 --><select id="findDeptById" resultType="org.entity.Dept"parameterType="int">select * from dept where did = #{did}</select>
</mapper>

9.编写测试类,代码如下:

package org.test;import java.io.IOException;
import java.io.InputStream;
import java.util.List;
import java.util.Scanner;import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.dao.IDeptDao;
import org.entity.Dept;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;public class TestMain {//单元测试String path = "mybatis-config.xml";SqlSession session = null;InputStream in =null;@Beforepublic void before(){try {in = Resources.getResourceAsStream(path);session = new SqlSessionFactoryBuilder().build(in).openSession();} catch (IOException e) {e.printStackTrace();}}//查询部门数量@Testpublic void testCount() {// 加载xml文件int count = session.selectOne("org.dao.IDeptDao.findCountDept");System.out.println("一共有:" + count + "个部门");}//添加信息@Testpublic void addDept(){Dept dept = new Dept();dept.setDid(6);dept.setDname("运维部");int rel = session.insert("org.dao.IDeptDao.addDept",dept);//提交(增删改)session.commit();if(rel>0){System.out.println("添加成功");}else{System.out.println("添加失败");}}//查询全部@Testpublic void findAllDept(){List<Dept> dList = session.getMapper(IDeptDao.class).findDeptAll();for (Dept dept : dList) {System.out.println("编号:"+dept.getDid()+",名称:"+dept.getDname());}}//根据编号查询public Dept findDeptById(int did){Dept dept = session.getMapper(IDeptDao.class).findDeptById(did);return dept;}//修改@Testpublic void updateDel(){findAllDept();System.out.println("请输入用户编号:");Scanner sc = new Scanner(System.in);int did = sc.nextInt();//根据编号查询Dept dept = findDeptById(did);System.out.println("需要修改的部门信息:");System.out.println("编号:"+dept.getDid()+",名称:"+dept.getDname());System.out.println("请输入新的部门名称:");dept.setDname(sc.next());//调用修改的方法int rel = session.getMapper(IDeptDao.class).updateDept(dept);//提交session.commit();if(rel>0){System.out.println("修改成共");}else{System.out.println("修改失败");}}//删除@Testpublic void delDept(){findAllDept();System.out.println("请输入需要删除的编号:");Scanner sc = new Scanner(System.in);Dept dept = session.getMapper(IDeptDao.class).findDeptById(sc.nextInt());//调用删除int rel = session.getMapper(IDeptDao.class).delDept(dept);session.commit();if(rel>0){System.out.println("删除成功");findAllDept();}}//最后执行@Afterpublic void after(){if(session!=null){session.close();}}
}

往期精彩

上机不会做?在讲台上做做试试!

2020-12-15

mybatis的配置文件和映射文件

2020-12-14

Ajax实现动态及时刷新表格数据

2020-12-13

相比学习好的学生,老师最喜欢努力认真学习的学生

2020-12-12

小课堂?小视频?小商店?

2020-12-11

什么样的事才是有意义的

2020-12-10

点分享

点点赞

点在看

mybatis环境搭建步骤(含配置文件代码)相关推荐

  1. MyBatis环境搭建

    MyBatis环境搭建 1. MyBatis框架简介 MyBatis是一个开源的数据持久层框架.它内部封装 了通过JDBC访问数据库的操作,支持普通的SQL查询.存储过程和高级映射,几乎消除了所有的J ...

  2. pycharm+python3.7+pyqt配置_Python3+Pycharm+PyQt5环境搭建步骤图文详解

    搭建环境: 操作系统:Win10 64bit Python版本:3.7 Pycharm:社区免费版 一.Python3.7安装 下载到安装包后打开,如果想安装到默认路径(C盘)的话一直点下一步就可以了 ...

  3. pycharm python3.7环境_Python3+Pycharm+PyQt5环境搭建步骤图文详解

    搭建环境: 操作系统:Win10 64bit Python版本:3.7 Pycharm:社区免费版 一.Python3.7安装 下载到安装包后打开,如果想安装到默认路径(C盘)的话一直点下一步就可以了 ...

  4. Linux测试环境搭建步骤

    Linux测试环境搭建步骤 准备工具: SecureCRT工具(Linux工具,连接服务器) FTP传输工具(上传文件到服务器) MySQL连接工具 安装包(以下文件均为压缩包rpm格式和tar.gz ...

  5. python+pycharm+selenium自动化测试环境搭建步骤

    python+pycharm+selenium自动化测试环境搭建步骤 原文链接:https://blog.csdn.net/weixin_51429941/article/details/116850 ...

  6. eclipse环境搭建步骤_eclipse搭建php开发环境

    首先将eclipse和androidsdk的压缩包解压,无需安装.进入eclipse,选择help->installnewsoftware.点击add按钮接着eclipse会自动识别androi ...

  7. Robot Framework 环境搭建步骤 RIDE保存时提示没有权限 RIDE使用时候常用问题(在最后)

    Robot Framework环境搭建步骤 Robot Framework是基于Python语言开发的一款框架,搭建步骤如下: 对于Robot Framework熟悉的老手尝鲜新版 或 python熟 ...

  8. 51单片机开发系列一-51单片机开发环境搭建以及入门汇编代码

    51单片机开发系列一 51单片机开发环境搭建以及入门汇编代码 象棋小子    1048272975 1. 51单片机概述 51单片机是对所有兼容Intel 8031指令系统的单片机的统称.目前教科书基 ...

  9. Linux开发环境搭建步骤

    虐我千百遍的Linux开发环境搭建步骤一定要做一篇记录 详细步骤如下: (1)在home下新建一个文件夹tmp 在里面放入下载的arm-linux-gcc安装包 (2)执行命令cd tmp (3)执行 ...

最新文章

  1. Redis数据持久化机制AOF原理分析一---转
  2. 手把手教你玩转SOCKET模型:重叠I/O篇
  3. linux csh错误,运行lampp时报错,错误信息如下,求解决方案
  4. 基于VMware应用环境的备份恢复解决方案思路
  5. 一道常被人轻视的前端JS面试题
  6. 怎么锁定电脑屏幕_怎么录制视频?在电脑上录制视频的步骤详解
  7. BSD/MIT/Apache许可证印象尚可
  8. LINUX下载编译Which
  9. 云服务器操作系统新手,云服务器操作系统新手
  10. java读取txt文件内容_Java读取TXT文件内容的方法
  11. 计算机程序考试试题及答案,计算机程序员考试试题及答案.doc
  12. 苹果分屏软件_苹果iOS14曝光,全是安卓已有的功能!
  13. 生物信息学_测序技术(一)DNA测序
  14. ORAN C平面 Section Type 1
  15. 建筑八大员培训湖北劳务员培训建筑劳务人员实名制管理的问题
  16. 社科院与杜兰大学金融管理硕士——承载梦想,带自己遨游世界的“风帆”
  17. css3中斜杠_使用斜杠语法设置CSS3边界半径
  18. 汽车网络安全:TEE是否能够取代HSM?
  19. 用html制作搜狗搜索,详解基于搜狗搜索开发的微信公众号的爬虫系统(C#)
  20. linux上项目运行日志导致磁盘空间不够的问题

热门文章

  1. 《C++ Primer》14.3节练习
  2. [蓝桥杯][算法提高VIP]排列式-全排列
  3. 单向链表的逆转(数据结构)(c语言)
  4. Sequence II (HDU 5919)(主席树)
  5. HDU 6706 huntian oy (欧拉函数 + 杜教筛)
  6. 算法竞赛进阶指南——后缀数组
  7. CF1550D Excellent Arrays(完全会了更新)
  8. CF1486B Eastern Exhibition
  9. Almost Sorted Array HDU - 5532
  10. [CodeJam 2019 Round 3] Rancake Pyramid(笛卡尔树)