一、准备所需工具(jar包和数据库驱动)

网上搜索下载就可以

二、新建一个Java project

1、将下载好的包导入项目中,build path

2、编写MyBatis配置文件:主要填写property标签中的四个value

myBatis-config.xml

<?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>
<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/hr_oa" />
<property name="username" value="root" />
<property name="password" value="root" />
</dataSource>
</environment>
</environments> <mappers> <!--resource是映射文件的路径 --> </mappers>
</configuration>

3、建数据库对应的实体类

package cn.mg39.ssm01.entity;

import java.io.Serializable;

/**
*实体类 SysGroup
*
*/
public class SysGroup implements Serializable{
private static final long serialVersionUID = 1L;
private Integer id; //主键id
private String name; //分组名
private String remark; //备注 public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public SysGroup() {
super();
// TODO Auto-generated constructor stub
}
public SysGroup(Integer id, String name, String remark) {
super();
this.id = id;
this.name = name;
this.remark = remark;
}
public SysGroup(Integer id) {
super();
this.id = id;
}
@Override
public String toString() {
return "SysGroup [id=" + id + ", name=" + name + ", remark=" + remark + "]";
} }

三、编写Dao接口

一些增删改查的方法

package cn.mg39.ssm01.dao;

import java.util.List;

import cn.mg39.ssm01.entity.SysGroup;

/**
* SysGroup的Dao
*
*/
public interface SysGroupDao {
/**
* 增删改查接口
* @param sysGroup
* @return
*/
public Integer insert(SysGroup sysGroup);
public Integer delete(SysGroup sysGroup);
public Integer update(SysGroup sysGroup);
public List<SysGroup> selectAll();
public SysGroup selectById(SysGroup sysGroup); }

四、编写Mapper文件

SysGroupDaoMapper.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">
<!--命名空间,在测试时需要调使用 ,可以为多个实体添加命名空间,只要nameSpace的值不同 -->
<mapper namespace="cn.mg39.ssm01.dao.SysGroupDao"> <!--parameterType实体的全类名 (传给数据库的参数类型) -->
<!--#后的变量名要和实体的变量名一致 -->
<!--如果有外键,直接在变量名后.外键名。如 #{tbA.id} --> <!--增删改查 -->
<insert id="insert" parameterType="cn.mg39.ssm01.entity.SysGroup">
insert into sys_group(name,remark) values(#{name},#{remark})
</insert> <delete id="delete" parameterType="cn.mg39.ssm01.entity.SysGroup">
delete from sys_group where id = #{id}
</delete> <update id="update" parameterType="cn.mg39.ssm01.entity.SysGroup">
update sys_group set name = #{name} ,remark = #{remark} where id = #{id}
</update> <select id="selectAll"
resultType="cn.mg39.ssm01.entity.SysGroup">
select * from sys_group
</select> <!--resultType(返回值类型,只有查询全部时需要,因为要接收传回的数据) -->
<select id="selectById"
parameterType="cn.mg39.ssm01.entity.SysGroup"
resultType="cn.mg39.ssm01.entity.SysGroup">
select * from sys_group where id = #{id}
</select> </mapper>

五、在myBatis-config.xml中添加映射

在myBatis-config.xml的<mappers>中添加Mapper映射,测试时会找mapper

    <mappers>

        <!--resource是映射文件的路径,Mapper文件放在cn.mg39.ssm01.dao下。 -->
<mapper resource="cn/mg39/ssm01/dao/SysGroupDaoMapper.xml" /> </mappers>

六、测试数据操作

1、插入数据

(删除,修改和插入差不多)

package cn.mg39.ssm01.test;

import java.io.IOException;
import java.io.Reader; import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder; import cn.mg39.ssm01.entity.SysGroup; /**
* mybatis的增加测试
*
*/
public class InsertSysGroup {
public static void main(String[] args) throws IOException {
//1、读取配置文件
Reader reader = Resources.getResourceAsReader("myBatis-config.xml"); //2、创建sqlSessionFactoryBuilder(工人)
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder(); //3、创建SqlSessionFactory(建厂,将配置文件加入工厂)
SqlSessionFactory factory = builder.build(reader); //4、打开SqlSession(通过工厂加工需要的数据)
SqlSession session = factory.openSession(); //5、操作数据(实例化对象)
SysGroup sysGroup = new SysGroup();
//id是自增长,不需要插入
//插入外键的操作
//sysGroup.set外键名(new 外键表(数据));
sysGroup.setName("测试数据的name");
sysGroup.setRemark("测试数据的remark"); //命名空间+id,通过session找配置文件,再通过配置文件找到映射文件,
//再通过命名空间找到需要进行数据操作的实体,通过id名找到对象的CRUD操作。将实例化的对象作为参数传过去
//最后存session
int rows = session.insert("cn.mg39.ssm01.dao.SysGroupDao.insert", sysGroup);
System.out.println(rows > 0 ? "插入成功":"插入失败"); //6、提交事务(查询全部不需要提交事务)
session.commit(); //7、关闭sqlSession
session.close();
}
}

2、查询全部数据

package cn.mg39.ssm01.test;

import java.io.IOException;
import java.io.Reader;
import java.util.List; import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder; import cn.mg39.ssm01.entity.SysGroup; public class SelectAllSysGroup {
public static void main(String[] args) throws IOException {
// 加载配置文件
Reader reader = Resources.getResourceAsReader("myBatis-config.xml");
// 工人
SqlSessionFactoryBuilder ssfb = new SqlSessionFactoryBuilder();
// 工厂
SqlSessionFactory ssf = ssfb.build(reader);
// 打开session
SqlSession session = ssf.openSession();
// 操作数据(查询全部不需要传递参数给数据库)
SysGroup sysGroup = new SysGroup(); List<SysGroup> list = session.selectList("cn.mg39.ssm01.dao.SysGroupDao.selectAll");
//循环list取值
for (SysGroup sys : list) {
//将获取到的数据赋值给对象,最后打印
sysGroup.setId(sys.getId());
sysGroup.setName(sys.getName());
sysGroup.setRemark(sys.getRemark());
System.out.println(sysGroup);
}
// 提交事务(可不写)
session.commit();
// 关闭session
session.close();
}
}

MyBatis操作数据库(基本增删改查)的更多相关文章

  1. java操作数据库:增删改查

    不多bb了直接上. 工具:myeclipse 2016,mysql 5.7 目的:java操作数据库增删改查商品信息 test数据库的goods表 gid主键,自增 1.实体类Goods:封装数据库数 ...

  2. python测试开发django-13.操作数据库(增删改查)

    前言 django的models模块里面可以新增一张表和字段,通常页面上的数据操作都来源于数据库的增删改查,django如何对msyql数据库增删改查操作呢? 本篇详细讲解django操作mysql数 ...

  3. 9.5Django操作数据库的增删改查

    2018-9-5 18:10:52 先贴上笔记 day61 2018-04-28 1. 内容回顾 1. HTTP协议消息的格式: 1. 请求(request) 请求方法 路径 HTTP/1.1\r\n ...

  4. Java操作数据库实现"增删改查"

    本文主要讲解JDBC操作数据库    主要实现对MySql数据库的"增删改查" 综合概述: JDBC的常用类和接口 一   DriverManager类 DriverManage类 ...

  5. Java数据库连接——JDBC基础知识(操作数据库:增删改查)

    一.JDBC简介 JDBC是连接java应用程序和数据库之间的桥梁. 什么是JDBC? Java语言访问数据库的一种规范,是一套API. JDBC (Java Database Connectivit ...

  6. Java数据库连接--JDBC基础知识(操作数据库:增删改查)

    一.JDBC简介 JDBC是连接java应用程序和数据库之间的桥梁. 什么是JDBC? Java语言访问数据库的一种规范,是一套API. JDBC (Java Database Connectivit ...

  7. c#操作数据库的增删改查语句及DataGridView简单使用

    下面是要用户名和密码连接数据库的操作: 一.定义连接字符串,用来链接SQL Server string str_con = "server=.(服务器名称一般为 . );database=W ...

  8. C#通过窗体应用程序操作数据库(增删改查)

    为了体现面向对象的思想,我们把“增删改查”这些函数封装到一个数据库操作类里: 为了便于窗体程序与数据库之间进行数据交互,我们建一个具有数据库行数据的类,通过它方便的在窗体程序与数据库之间传输数据: 我 ...

  9. datagridview数据绑定操作数据库实现增删改查

    DataSet数据集,数据缓存在客户端内存中,支持断开式连接.DataGridView控件绑定DataSet时,它自动的改变的DS的行的状态,而且在做增删改查的时候,可以借助SqlCommandBui ...

  10. 用MyBatis进行数据库的增删改查

    前提是MyBatis环境部署好了,参考地址: https://www.cnblogs.com/package-java/p/10316536.html 为了方便演示,我提前在数据库插入了数据方便查询 ...

随机推荐

  1. Java原理领悟-线程池(Executor)

    线程池全面解析 什么是线程池? 很简单,简单看名字就知道是装有线程的池子,我们可以把要执行的多线程交给线程池来处理,和连接池的概念一样,通过维护一定数量的线程池来达到多个线程的复用. 线程池的好处 我 ...

  2. Ansible--04 ansible 流程控制

    ansible 流程控制 playbook 条件语句 不管是 shell 还是各大编程预言中,流程控制,条件判断都是必不可少的,在我们使用 Ansible的过程中,条件判断的使用频率都非常高. 例如: ...

  3. QML学习笔记(八)— QML实现列表侧滑覆盖按钮

    QML实现列表右边滑动删除按钮,并覆盖原有的操作按钮,点击可实现删除当前项 本文链接:QML实现列表侧滑覆盖按钮 作者:狐狸家的鱼 GitHub:八至 列表实现在另一篇博客已经提及,列表可选中.拖拽. ...

  4. Python 序列类型拆包 %s 和'{}'.format 的功能差异之一

    >>> 1, 2, 3 #这样写成一行相当于一个元组(1, 2, 3)>>> x = 1, 2, 3>>> x(1, 2, 3)>>& ...

  5. Qt 显示网页的控件

    Qt5.6以下的版本,基于QtWebkit控件Qt5.6以上的MSVC版本,基于 Chromium 的浏览器引擎 Qt WebEngineQt5.6以上的mingw 版本,只能采用QAxWidget ...

  6. RPC服务治理框架(一)RPC技术

    一.RPC是什么 remote procedure call:远程过程调用 过程就是程序,像调用本地方法一样调用远程的过程 RPC采用Client-Server结构,通过request-respons ...

  7. Delphi 格式化函数 Format函数

    function Format(const Format: string; const Args: array of const): string; function Format(const For ...

  8. 项目部署错误 HTTP Error 500.19 - Internal Server Error

    HTTP Error 500.19 - Internal Server Error配置错误: 不能在此路径中使用此配置节.如果在父级别上锁定了该节,便会出现这种情况.锁定是默认设置的 (overrid ...

  9. VIM的一些使用积累

    替换: :s/cst/dst/gc 黏贴后格式不对齐: gg=G 全选并黏贴 gg :"+yG

  10. nucleus plus代码学习

    int.S: ;************************************************************************ ;* ;* FUNCTION ;* ; ...