MyBatis操作数据库(基本增删改查)
一、准备所需工具(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操作数据库(基本增删改查)的更多相关文章
- java操作数据库:增删改查
不多bb了直接上. 工具:myeclipse 2016,mysql 5.7 目的:java操作数据库增删改查商品信息 test数据库的goods表 gid主键,自增 1.实体类Goods:封装数据库数 ...
- python测试开发django-13.操作数据库(增删改查)
前言 django的models模块里面可以新增一张表和字段,通常页面上的数据操作都来源于数据库的增删改查,django如何对msyql数据库增删改查操作呢? 本篇详细讲解django操作mysql数 ...
- 9.5Django操作数据库的增删改查
2018-9-5 18:10:52 先贴上笔记 day61 2018-04-28 1. 内容回顾 1. HTTP协议消息的格式: 1. 请求(request) 请求方法 路径 HTTP/1.1\r\n ...
- Java操作数据库实现"增删改查"
本文主要讲解JDBC操作数据库 主要实现对MySql数据库的"增删改查" 综合概述: JDBC的常用类和接口 一 DriverManager类 DriverManage类 ...
- Java数据库连接——JDBC基础知识(操作数据库:增删改查)
一.JDBC简介 JDBC是连接java应用程序和数据库之间的桥梁. 什么是JDBC? Java语言访问数据库的一种规范,是一套API. JDBC (Java Database Connectivit ...
- Java数据库连接--JDBC基础知识(操作数据库:增删改查)
一.JDBC简介 JDBC是连接java应用程序和数据库之间的桥梁. 什么是JDBC? Java语言访问数据库的一种规范,是一套API. JDBC (Java Database Connectivit ...
- c#操作数据库的增删改查语句及DataGridView简单使用
下面是要用户名和密码连接数据库的操作: 一.定义连接字符串,用来链接SQL Server string str_con = "server=.(服务器名称一般为 . );database=W ...
- C#通过窗体应用程序操作数据库(增删改查)
为了体现面向对象的思想,我们把“增删改查”这些函数封装到一个数据库操作类里: 为了便于窗体程序与数据库之间进行数据交互,我们建一个具有数据库行数据的类,通过它方便的在窗体程序与数据库之间传输数据: 我 ...
- datagridview数据绑定操作数据库实现增删改查
DataSet数据集,数据缓存在客户端内存中,支持断开式连接.DataGridView控件绑定DataSet时,它自动的改变的DS的行的状态,而且在做增删改查的时候,可以借助SqlCommandBui ...
- 用MyBatis进行数据库的增删改查
前提是MyBatis环境部署好了,参考地址: https://www.cnblogs.com/package-java/p/10316536.html 为了方便演示,我提前在数据库插入了数据方便查询 ...
随机推荐
- 2019-10-31-WPF-等距布局
title author date CreateTime categories WPF 等距布局 lindexi 2019-10-31 9:0:2 +0800 2018-2-21 17:3:4 +08 ...
- docker 安装cat
1.下载cat cat 地址:https://github.com/dianping/cat 进入opt 创建cat文件夹 cd /opt/ mkdir cat cd cat 下载cat git cl ...
- 异常:Error response from daemon: conflict: unable to delete 6fa48e047721 (cannot be forced) - image has dependent child images
在删除镜像之前要先用 docker rm 删掉依赖于这个镜像的所有容器(哪怕是已经停止的容器),否则无法删除该镜像. 停止容器 # docker stop $(docker ps -a | grep ...
- Oracle 19C的下载和安装部署
1.官网下载zip包. 2.解压到/usr/local/oracle 目录. 3.创建用户和用户组 /usr/sbin/useradd -u oracle //用户组oracle /usr/sbin/ ...
- JavaSE---多线程---Callable、Future
1.概述 1.1 JDK1.5后,Java提供了Callable接口,该接口提供一个call方法作为线程执行体,该call方法可以 有返回值.声明抛出异常: 因此,我们可以直接将Callable接口 ...
- MySQL数据库基本操作以及SQL语句
连接mysql的语法 mysql -u用户名 -p密码 [-h主机名] [-P端口号] 在一个mysql服务器中, 可以有多个mysql数据库(本质是一个文件夹) 在一个mysql数据库中, 可以有多 ...
- hibernate 双向1对多
1: 还是用客户Customer和订单Order来解释: “一对多”的物理意义:一个客户可以有多个订单,某个订单只能归宿于一个客户. “双向”的物理意义:客户知道自己有哪些订单,订单也知道自己归宿于哪 ...
- Springboot 拦截器配置(登录拦截)
Springboot 拦截器配置(登录拦截) 注意这里环境为springboot为2.1版本 1.编写拦截器实现类,实现接口 HandlerInterceptor, 重写里面需要的三个比较常用的方 ...
- git代码提交步骤
常用的步骤: 1)假如本地想关联git仓库,那么先git init,git remote add origin [git地址] 2)假如是想直接从git仓库拉下来,那么git clone [git地 ...
- 深入研究CSS
通常我们在学习CSS的时候,感觉很容易掌握,却常常在实际应用中碰到各式各样难以填补的“坑”,为避免大家受到同样的困惑与不解,本文详细讲解了CSS中优先级和Stacking Context等诸多高级特性 ...