如何使用mybatis对mysql数据库进行操作,batis的增删改查
1.先下载Mybatis和mysql connecrt的jar包
下载地址:
链接: https://pan.baidu.com/s/1kVFfF8N 密码: ypkb
导入jar包,maven的话可以直接配置pom
2.建立目录

如图所示
1.configuration.xml
在根目录里面创建这个mybatis配置文件
代码为:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<typeAliases>
<!-- 设置typeAlias是为了在AppMapper.xml中不用每次写全App类的路径,而是用App代替 -->
<typeAlias type="domain.App" alias="App" />
</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://222.201.145.215/nziotdb"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<!-- 配置AppMapper.xml的路径 -->
<mapper resource="mapperXml/AppMapper.xml" />
</mappers>
</configuration>
其中里面配置了数据库服务器的地址,账号和密码,并且设置了映射文件mapperxml的路径
2.在domain下面建立实体类
package domain;
import java.io.Serializable;
public class App implements Serializable{
/**
*
*/
private String appId;
private String appDesc;
private String newestVersion;
private String newestVersionDesc;
private String url;
private String md5;
public String getAppId() {
return appId;
}
public void setAppId(String appId) {
this.appId = appId;
}
public String getAppDesc() {
return appDesc;
}
public void setAppDesc(String appDesc) {
this.appDesc = appDesc;
}
public String getNewestVersion() {
return newestVersion;
}
public void setNewestVersion(String newestVersion) {
this.newestVersion = newestVersion;
}
public String getNewestVersionDesc() {
return newestVersionDesc;
}
public void setNewestVersionDesc(String newestVersionDesc) {
this.newestVersionDesc = newestVersionDesc;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getMd5() {
return md5;
}
public void setMd5(String md5) {
this.md5 = md5;
}
public String toString() {
return "App [appId=" + appId + ", appDesc=" + appDesc
+ ", newestVersion=" + newestVersion + ", newestVersionDesc="
+ newestVersionDesc + ", url=" + url + ", md5=" + md5 + "]";
}
}
这个类即代表一个表,类里面的变量可以直接设置为何表里面的字段一致,不一致就要在映射文件里面设置对应关系
3.在mapperXml下面写映射文件
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org/DTD Mapper 3.0" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="mapper.AppMapper">
<resultMap type="App" id="appResultMap">
<id property="appId" column="app_id" />
<result property="appDesc" column="app_desc" />
<result property="newestVersion" column="newest_version" />
<result property="newestVersionDesc" column="newest_version_desc" />
<result property="url" column="url" />
<result property="md5" column="md5" />
</resultMap>
<!-- select语句 -->
<select id="selectUserByID" parameterType="int" resultMap="appResultMap">
select * from app_t where app_t.app_id = #{appId}
</select>
</mapper>
其中resultMap就设置了对应的关系,解决实体类的变量和数据库中字段不一致的问题
具体的sql语句也是在映射文件里面写,其中id代表的是对应的方法,parameterType就是传入变量的类型,resultMap就是返回的数据类型
4.在mapper下为每个实体类建立对应的接口,接口里面的方法和映射文件里面的id一一对应
package mapper;
import java.util.List;
import domain.App;
public interface AppMapper {
public App selectUserByID(int id);
public List<App> selectUsersByName(String userName);
public void addUser(App user);
public void updateUser(App user);
public void deleteUser(int id);
}
5.编写数据库查询帮助类,用于返回数据库对象
package Deal; import domain.App;
import mapper.AppMapper;
import org.apache.ibatis.session.SqlSession; public class Test{ public void getUserByID(int userID) {
SqlSession session = SqlSessionHelper.getSessionFactory().openSession();
try {
AppMapper userOperation = session
.getMapper(AppMapper.class);
App user = userOperation.selectUserByID(userID);
if (user != null) {
System.out.println(user.getAppDesc());
} } finally {
session.close();
}
} public static void main(String[] args) {
try {
Test test = new Test();
test.getUserByID(1);
} catch (Exception e) {
System.out.println(e.getMessage());
}
} }
数据库表如下,使用该教程之前需要先在数据库建立表

查询的是app_id,对应的app_desc
运行test,得到的接口也是3
6.附上demo工程,不清楚的同学可以参考一下
链接: https://pan.baidu.com/s/1dFqVtSX 密码: jb7j
如何使用mybatis对mysql数据库进行操作,batis的增删改查的更多相关文章
- Django框架之第二篇--app注册、静态文件配置、form表单提交、pycharm连接数据库、django使用mysql数据库、表字段的增删改查、表数据的增删改查
本节知识点大致为:静态文件配置.form表单提交数据后端如何获取.request方法.pycharm连接数据库,django使用mysql数据库.表字段的增删改查.表数据的增删改查 一.创建app,创 ...
- MySQL数据库篇之库的增删改查
主要内容: 一.系统数据库介绍 二.创建数据库 三.数据库增删改查 四.MySQL添加注释 1️⃣ 系统数据库介绍 1.初识sql语句 有了mysql这个数据库软件,就可以将程序员从对数据的管理中解脱 ...
- nodejs链接mysql数据库,执行简单的增删改查操作
var mysql = require('mysql'); var conn = mysql.createConnection({ host: 'localhost', user: 'root', p ...
- C++实现对MySQL数据库的连接,以及增删改查
安装好MySQL,建好数据表的前提下. 如果只是想简单实现添加数据或者其他一个操作数据,可以参考另一篇博客. https://www.cnblogs.com/ming-4/p/11544514.htm ...
- MySQL数据库篇之表的增删改查
主要内容: 一.表介绍 二.创建表 三.查看表结构 四.修改表结构 五.复制表 六.删除表 1️⃣ 表介绍 表相当于文件,表中的一条记录就相当于文件的一行内容,不同的是,表中的一条记录有对应的标题,称 ...
- sqlite数据库操作详细介绍 增删改查,游标
sqlite数据库操作详细介绍 增删改查,游标 本文来源于www.ifyao.com禁止转载!www.ifyao.com Source code package com.example ...
- python操作三大主流数据库(8)python操作mongodb数据库②python使用pymongo操作mongodb的增删改查
python操作mongodb数据库②python使用pymongo操作mongodb的增删改查 文档http://api.mongodb.com/python/current/api/index.h ...
- [Django框架 - 静态文件配置、request对象方法初识、 pycharm链接数据库、ORM实操增删改查、django请求生命周期]
[Django框架 - 静态文件配置.request对象方法初识. pycharm链接数据库.ORM实操增删改查.django请求生命周期] 我们将html文件默认都放在templates文件夹下 将 ...
- 用CI框架向数据库中实现简单的增删改查
以下代码基于CodeIgniter_2.1.3版 用PHP向数据库中实现简单的增删改查(纯代码)请戳 http://www.cnblogs.com/corvoh/p/4641476.html Code ...
- node-express项目的搭建并通过mongoose操作MongoDB实现增删改查分页排序(四)
最近写了一个用node来操作MongoDB完成增.删.改.查.排序.分页功能的示例,并且已经放在了服务器上地址:http://39.105.32.180:3333. Mongoose是在node.js ...
随机推荐
- Java_中快速获取系统时间
直接调用System的currentTimeMillis()即可! long start = System.currentTimeMillis(); System.out.println(" ...
- MyBatis3入门
这里对mybatis的入门介绍以官方最新MyBatis3.4.1为准,具体文档及jar包请访问:https://github.com/mybatis/mybatis-3/releases. 以前经常都 ...
- 【WPF】三维模型中的“照相机”
WPF 部分支持三维模型,为啥说是部分支持?毕竟 WPF 的侧重点还是在应用开发上,虽然也有些游戏是用 WPF 开发的,不过,老周想啊,如果真要开发游戏,最好用专门的框架,WPF 应当用于开发应用功能 ...
- netsh & winsock & 对前端的影响
netsh 与 winsock 一个是window的脚本工具,另一个则是window是网络编程中要用到的网络接口,而非要说跟我小小的前端有什么影响,那还真有...,当然这个影响是很不好的,比如node ...
- Java 多线程详解(四)------生产者和消费者
Java 多线程详解(一)------概念的引入:http://www.cnblogs.com/ysocean/p/6882988.html Java 多线程详解(二)------如何创建进程和线程: ...
- 利刃 MVVMLight 10:Messenger 深入
1.Messager交互结构和消息类型 衔接上篇,Messeger是信使的意思,顾名思义,他的目是用于View和ViewModel 以及 ViewModel和ViewModel 之间的消息通知和接收. ...
- JMeter命令行方式运行时动态设置线程数及其他属性(动态传参)
在使用JMeter进行性能测试时,以下情况经常出现: 1.测试过程中,指定运行的线程数.指定运行循环次数不断改变: 2.访问的目标地址发生改变,端口发生改变,需要改写脚本. 上面的问题在GUI中,直接 ...
- Asynchronous and Distributed Programming in R with the Future Package
Every now and again someone comes along and writes an R package that I consider to be a 'game change ...
- Unity User Group 北京站:《Unity5.6新功能介绍以及HoloLens开发》
时间一转眼从春天来到了初夏,Unity User Group(以下简称UUG)活动也迎来了第七期.我们面向Unity3D开发从业者以及未来想从事Unity3D开发的学生群体的UUG活动这次仍然在海淀 ...
- 从Thread,ThreadPool,Task, 到async await 的基本使用方法解读
记得很久以前的一个面试场景: 面试官:说说你对JavaScript闭包的理解吧? 我:嗯,平时都是前端工程师在写JS,我们一般只管写后端代码. 面试官:你是后端程序员啊,好吧,那问问你多线程编程的问题 ...