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 为了方便演示,我提前在数据库插入了数据方便查询 ...
随机推荐
- PHP应该学什么,如何学好PHP
http://blog.sina.com.cn/s/blog_76bdabf70101azl4.html(注:原文来自传智播客) 本文转自http://blog.sina.com.cn/s/blog_ ...
- 2019-8-31-Latex-公式速查
title author date CreateTime categories Latex 公式速查 lindexi 2019-08-31 16:55:58 +0800 2018-05-25 16:5 ...
- numpy 中的broadcast 机制
https://www.cnblogs.com/jiaxin359/p/9021726.html
- Python网络编程UDP服务器与客服端简单例子
[转载] https://blog.csdn.net/hu330459076/article/details/7868028 UDP服务器代码: #!/usr/bin/env python # -*- ...
- PHP随机生成不重复的8位卡号(数字)和卡密(字符串)
一.生成不重复的随机数字,可自定义长度(最多支持10位数) /** * 生成不重复的随机数字(不能超过10位数,否则while循环陷入死循环) * @param int $start 需要生成的数字开 ...
- Mac系统下安装Homebrew后无法使用brew命令
打开终端输入 brew提示:command not found 解决方法 输入命令: sudo vim .bash_profile 然后输入以下代码: export PATH=/usr/local/b ...
- Shell脚本并发及并发数的控制
https://www.jianshu.com/p/701952ffb755 正常情况下,Shell脚本是串行执行的,一条命令执行完才会执行接下来的命令.如下代码: # !/bin/bash for ...
- string,const char*, char*转换之后还是指向同一片内存地址么?
class Same { public: void reverse(const char* str) { char* A = const_cast<char*>(str); A[] = ' ...
- Codeforces 789e The Great Mixing (bitset dp 数学)
Sasha and Kolya decided to get drunk with Coke, again. This time they have k types of Coke. i-th typ ...
- scrapy原理
scarpy据说是目前最强大的爬虫框架,没有之一.就是这么自信. 官网都是这么说的. An open source and collaborative framework for extracting ...