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 为了方便演示,我提前在数据库插入了数据方便查询 ...
随机推荐
- 使用extract-text-webpack-plugin处理css文件路径问题
首先看到我们的文件夹目录如下: webpack.config.js //解析分离cssconst ExtractTextPlugin = require('extract-text-webpack-p ...
- shell选项和参数
- ARM指令adr adrl ldr mov
ADR是一条小范围的地址读取伪指令,它将基于PC的相对偏移的地址值读到目标寄存器中.格式:ADR register,exper. 编译源程序时,汇编器首先计算当前PC值(当前指令位置)到exper的距 ...
- error: device unauthorized.
1 执行 adb install com.taobao.taobao_250.apk 报错 2 先看手机是不是未授权,执行命令之后,手机回弹出授权信息,点击确认就行了
- MySQL UNSIGNED
原创转载请注明出处:https://www.cnblogs.com/agilestyle/p/11484087.html UNSIGNED属性就是将数字类型无符号化,与C.C++这些程序语言中的uns ...
- Hibernate学习 (一)
Hibernate错误总结: 1:不能自动创建表.把MySQL的版本的方言修改一下. 首先自己要注意自己的MYSQL版本,然后设置对应的方言 兼容性模式 <property name=" ...
- 【从0到1,搭建Spring Boot+RESTful API+Shiro+Mybatis+SQLServer权限系统】06、Mybatis+SQLServer集成
1.增加POM依赖 注意pagehelper插件,我重写过,可以到我的这篇文章了解https://www.cnblogs.com/LiveYourLife/p/9176934.html <dep ...
- 【Shiro】五、Apache Shiro加密
Shiro提供了更好封装,更好使用的加密算法API,可以作为平时使用的一个工具类的预选方案. Shiro的密码学 基本特性 接口驱动,基于POJO 对JCE(Java Cryptography Ext ...
- Python3中 if __name__=='__main__'是个什么意思
在python前期学习中或者在学flask中,if_name_ = ="_main_"经常出现在我们的眼帘中,我们经常会问,这个是个什么玩意儿,它是干什么的? 我们知道,if 语句 ...
- Java Software Engineer Skill Map
# Java Software Engineer Skill Map## Basic### Core Java- Java The Complete Reference Ninth Edition.p ...