mysql mybatis 工具类_我肝了一个星期,为你们整理出了mybatis程序配置教程

1、搭建实验数据库

我们创建一个mybatis实验数据库,并创建一个user表为后续实验准备

2、IDEA新建项目,连接数据库

新建一个普通的maven项目

删除src目录,作为父工程

pom.xml中导入相关的maven依赖

1、 MySQL驱动

2、 MyBatis驱动

3、 junit驱动

连接我们的MySQL

886557400a9e84ba9f7697a0be4a6647.png

01b8c1b9c114dc1187668cca667c520c.png

选择我们前面创建的数据库mybatis并打开

27d2301f9570ccb4ce4777d3320cf097.png

2564effc1aec36504f3c5cad50746ad4.png

3、编写MyBatis核心配置文件

创建一个子模块maven_study01

fac011594df88177247d720937d30a49.png

在该模块的resource目录下,新建mybatis-config.xml文件,这是MyBatis核心配置文件

eb99cc0425662fa4feb5cb18f3df2ea0.png

注意:以下部分换成自己的数据库信息

4、编写MyBatis工具类

在子模块maven_study01/src/main/java目录下,新建一个utils工具类包,新建MyBatisUtils类

该类用来从 XML 中构建 SqlSessionFactory

06261827947df870322ad741dcf5c3d7.png

5、创建表对应实体类

数据库中每个表的每一行对应了一个实体类对象,这里我们对前面创建的user表创建对应的实体类

在maven_study01/src/main/java目录下,新建pojo实体类包,其中新建User类

3f83f1f46269e876797108cd7053255e.png

6、编写Mapper接口

在maven_study01/src/main/java目录下,新建mapper包,其中新建UserMapper接口

其中抽象方法 getUserList() 用来返回User对象的集合

f5c4660e2a6d401f220f3a707848c324.png

7、编写Mapper.xml配置文件

在子模块/src/main/java/mapper下,新建UserMapping.xml

namespace = 自己创建Mapper接口

id = 对应Mapper接口的方法名

resultType = 返回结果类型

select 中间是sql语句

3480a915977828afb316755af03d14b3.png

8、编写junit测试类

在maven_study01/test/java下新建mapper包,该包下新建测试类UserMapperTest

junit测试

b289ffeb0aa9b7803569821b22b2698e.png

9、给Mapper.xml添加注册

每一个Mapper.xml都需要在MyBatis核心配置文件中注册

我们要在mybatis-config.xml中进行注册,最后加上以下代码

这里的路径是我们定义的xml配置文件的路径

注意:该路径的中要用/进行分隔

b3a738e5e5547977eb35b468da363d06.png

10、测试运行

我们点击运行测试类UserMapperTest,成功!

77d12eec67d57a21b79ca12be283eb57.png

发现他提示我们驱动类名已经遗弃,我们利用他给的新驱动名即可,

在MyBatis核心配置文件中,将驱动名更换为以下即可

再测试,没有错误~

3f1ceeade2cfd566ddfe5c99235dd442.png

11、可能遇到的问题

配置文件没有注册

1、 每一个Mapper.xml都需要在MyBatis核心配置文件中注册

绑定接口不对,方法名不对,返回类型不对

1、 对应如图所示三个参数

b8fe628c78bc18a7f3f70bde25a49243.png

maven配置文件无法被导出或生效

997da332130b0e2638d950f5475f69d7.png

maven默认资源文件配置在resource目录下,但是我们放在了java目录下,该目录下无法导出,所以需要手动配置资源过滤,让src/main/java下的 .properties 或 .xml 可以导出

解决方案是:将以下设置写在pom.xml中

12、步骤作用及总结

对整个过程进行总结,可分为七大步骤:

1、 编写MyBatis核心配置xml文件,其中包括了获取数据库连接实例的数据源(DataSource)以及决定事务作用域和控制方式的事务管理器(TransactionManager)

2、 编写MyBatis工具类,加载上述xml文件,从该xml文件中构建 SqlSessionFactory,再从 SqlSessionFactory 中获取 SqlSession,SqlSession 提供了在数据库执行 SQL 命令所需的所有方法

3、 创建数据库表对应的实体类,把JavaBean的属性和数据库表的字段自动关联起来

4、 编写一个Mapper接口,定义抽象方法用来执行下述Mapper.xml配置中文件中的 SQL

5、 编写Mapper.xml配置文件,绑定上述Mapper接口,以及对应的抽象方法

6、 在MyBatis核心配置xml文件中给Mapper.xml配置文件添加注册

7、 编写junit测试类测试

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/560111.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python access 源码_连接的微软Access数据库,这是一个轻量级的Python模块(MDB格式)...

A lightweight python module to connect Microsoft Access Database. the module is to use ADO engine through Win32 COM. the module need another Win32 API module, you can find it at the below url:Pyminiado是一个轻量级的Python访问Access数据库的接口,单…

mysql gt resource_实用干货,MYSQL这么用就对啦

本文主要梳理了 SQL 的基础用法,会涉及到以下方面内容:SQL大小写的规范数据库的类型以及适用场景SELECT 的执行过程WHERE 使用规范MySQL 中常见函数子查询分类如何选择合适的 EXISTS 和 IN子查询了解 SQLSQL 是我们用来和数据打交道的方式之一&#xff0…

python 查看当前目录_Python学习第156课--ls的运用、环境变量以及PATH

【每天几分钟,从零入门python编程的世界!】之前简单的介绍了Linux中几个简单的命令。这节再深入一点介绍下 ls 的运用。lsls相当于是list的简写,它的作用是把我们当前目录中的文件列举出来。ls -l把当前目录下的文件以及它的具体信息列举出来…

python对数组的操作_Python对数组的基本操作

# codingutf-8Created on 2014-3-29author: Administrator创建并打印数组arr ["aex", "bfe", "mpilgrim", "zddd", "example"];print(arr);#[aex, bfe, mpilgrim, zddd, example]print(arr[2]);#mpilgrim数组的负索引li[-n…

python菜单函数_Python 自学笔记- 列表及其内置函数

0. 列表都可以存放一些什么东西?我们可以说Python 的列表是一个打了激素的数组,如果把数组比喻成集装箱,那么 Python 的列表就是一个大仓库,Ta 可以存放我们已经学习过的任何数据类型。mix [1,"张三",3.14, [1,"李…

按120分计算成绩 mysql_Mysql实用教程试卷B.doc

.上 装 订 线系名: 班级: 姓名: 学号: 考试日期:下 住 装 订 线河南教育学院2014—2015学年第二学期期末考试软件学院2014级计算机信息管理专业普通专科班《MySQL实用教程》试卷B卷题号一二三四总分分数得分评卷人一、…

java double==Double_java之double类型数值的比较

先看demo:public classL26 {/***paramargs*/public static voidmain(String[] args) {//TODO Auto-generated method stub//double a 300000;double x 300000.00000000003;//double比较,小数点后有效位double y 300000.000000000003;//主要注意的是double类型直接/&…

莫烦python博客_《莫烦Python》笔记 -- numpy部分

个人感觉,在numpy里,从说法上,数组与矩阵可以互换1.1 numpy & pandas有什么用?1.2 numpy & pandas的安装安装Anaconda2.1 numpy属性import numpy as np# 将一个列表转化为矩阵array np.array([[1,2,3],[2,3,4]])# 查看矩…

java 内存情况_java查看jvm内存使用情况

java查看jvm内存使用情况(2012-03-22 15:50:54)标签:jvm内存虚拟机分配itjava.lang.Runtime类提供了查看当前JVM内存的使用情况。每个java实例(即虚拟机实例)只有一个Runtime的实例,通过Runtime.getRuntime()可以得到当前虚拟机中的Runtime实例对象。Run…

java 密码生成器_Java课程设计-随机密码生成器

1.团队课程设计博客链接2.个人负责模板设计程序运行界面,数据的输入,判断数据输入类型的错误,判断密码类型是否选择。3.自己的代码提交记录截图4自己负责模块或任务详细说明(一)总体设计1.系统主要功能(1)输入生成密码长度;(2)判断…

java 多个 panel_java – 在JFrame中组织多个JPanel的好方法是...

我想要做的是在框架内组织五个单独的JPanel.输出应该是这样的:顶部会有一个面板.顶部面板正下方的两个面板垂直分割空间,然后另外两个面板水平分割剩余空间.我无法弄清楚如何组织如上所述的面板,我认为这是因为我只是不知道正确的语法.所以任何帮助或建议都非常感谢…

cad二次开发 java_应用Java语言进行AutoCAD2000二次开发.PDF

应用Java语言进行AutoCAD2000二次开发实用第一 智慧密集刘良华袁英战朱东海摘 要介绍了应用Java语言进行AutoCAD二次开发的方法和思路。关键字 二次开发,AutoCAD定制,COM,Java编程Mic Mod- AcadApp.roBoft的组件对象模型(COM&…

中南民族大学java考试_中南民族大学Java语言程序设计期末试卷A卷

科目序号:6002 A卷《Java语言程序设计》期末试卷(试卷总分:100分,考试时间:120分钟,答案写在答卷纸上)一.判断题(每题1分,共10分)1.无论Java源程序包含几个类的定义,若该源程序文件以…

java集合的遍历_Java集合之遍历

在Java开发中,集合,可以说使我们必然要使用到的一个框架。对集合的遍历也是我么经常要进行的操作,而遍历操作又有多种,下面就对集合遍历进行以下总结。一、List、Set的遍历List与Set都继承了Collection接口,从某种程度…

pyecharts本地文件_python数据可视化-pyecharts插件使用文档

pyecharts是百度开源的可视化插件,可以将设计的可视化图表以html格式保存,配合jupyter可以一键生成动态的html数据分析报告。pyecharts和matplotlib的区别在于,pyecharts有更加强大交互的可视化和嵌入html的功能,pyecharts缺点在于…

java 泛型 子类_Java泛型:要求泛型成为某种类型的子类

我有一个抽象的泛型类:public abstract class AbstractMessageHandler{public abstract List getTypesOfMessages();public abstract void handleMessage(String message, CometClient client);public T setResponseValues(AbstractMessage request, T response ){r…

java的创建管理员对象_java--更改管理员密码,请列位帮忙看看有没有更好的实现方式...

需求说明:输入旧的用户名和密码,如果正确,方有权限更新,从键盘获取新密码,进行更新实现思路:1、创建管理员类的对象;2、利用while实现循环执行import java.util.Scanner;public class ChangePas…

gdal获取像元的灰度值java_GDAL利用地理坐标读取图像像元值

最近的一个项目需要在电子海图中下载已知水深点,导出点的地理坐标(经纬度)。然后在arcgis中打开这些地理坐标输出为shp,利用GDAL读取不同波段的点对应的像元值,从而构建水深和像元值的对应关系。其实想要根据经纬度得到像元值有两种方法。1.通…

java封装概念_Java面向对象----封装概念

封装信息隐藏,隐藏对象的细节访问修饰符publicprivateprotected默认属性封装的实现方法封装的目的(隐藏方法实现细节)package com.tanlei.newer;public class TeacherDemo {public static void main(String[] args) {teacher tnew teacher();//t.name("zhangs");t.se…

java 异常何时抛出_何时适合抛出异常?

例外点是沟通 exceptional 情况 .从这个意义上讲:如果你的例子中所有条件都是假的绝对意外,并且没有有效的返回值来表明这种情况,那么抛出RuntimeException是合理的做法;但我可能会将消息更改为:throw new RuntimeException("…