Mybatis实现增删改查(二)
1. 准备
请先完成Mybatis基本配置(一)的基本内容
2. 查询多条商品信息
1)在com.mybatis.dao.PartDao中增加接口函数
public List<PartInfo> getAllPartInfo();
2)在com.mybatis.dao.mapper.PartMapper中增加其实现方法。尽管我需要返回的数据类型为List<PartInfo>,但是在Mapper文件中配置resultType属性的时候依然为com.mybatis.entity.PartInfo即可。mybatis会自动将所有的查询结果逐条创建实例并填充到list中去。
<!-- dao接口函数中的返回结果类型是List<PartInfo> -->
<!-- 但是在这里的resultType属性值依然是com.mybatis.entity.PartInfo -->
<!-- mybatis会自动将所有的查询结果填充到list中去 -->
<select id="getAllPartInfo" resultType="com.mybatis.entity.PartInfo">
SELECT * FROM tbInfoPart
</select>
3)测试下效果
public static List<PartInfo> selectAllPart(){
InputStream iStream = TestMain.class.getClassLoader().getResourceAsStream("mybatis.xml");
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(iStream);
SqlSession session = sessionFactory.openSession();
String statement = "com.mybatis.dao.PartDao.getAllPartInfo";
List<PartInfo> partInfos = session.selectList(statement);
session.close();
return partInfos;
}
public static void main(String[] args) {
List<PartInfo> partInfos = selectAllPart();
for (PartInfo partInfo : partInfos) {
System.out.println("ID:"+partInfo.getId()+" 商品:["+
partInfo.getPartCode()+"] "+
partInfo.getPartName()+" ,售价:"+
partInfo.getSalePrice()+"元/"+
partInfo.getUnit());
}
可看到打印结果为
ID: 商品:[-] TCL D32E161 32英寸 内置wifi 在线影视 窄边LED网络液晶电视 ,售价:.9元/台
ID: 商品:[-] TCL D50A710 50英寸 40万小时视频 全高清 内置WiFi 八核安卓智能LED液晶电视 ,售价:.0元/台
说明我们已经将所有的商品都查询出来了
3. 新增一条商品
1)在com.mybatis.dao.PartDao中增加接口函数
public void insertPartInfo(PartInfo partInfo);
2)在com.mybatis.dao.mapper.PartMapper中增加其实现方法。
<!-- #{} 大括号里面的参数名是和com.mybatis.entity.PartInfo中的属性名对应的 -->
<!-- mybatis会自动将其属性值按照数据类型填充到被预编译的SQL脚本中 -->
<insert id="insertPartInfo" parameterType="com.mybatis.entity.PartInfo">
INSERT INTO tbInfoPart (PartCode, PartName, Unit, SalePrice)
VALUES (#{partCode},#{partName},#{unit},#{salePrice})
</insert>
3)测试下效果,注意session.commit()不要遗漏,否则数据无法提交到数据库
public static void insertPart(PartInfo partInfo){
InputStream iStream = TestMain.class.getClassLoader().getResourceAsStream("mybatis.xml");
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(iStream);
SqlSession session = sessionFactory.openSession();
String statement = "com.mybatis.dao.PartDao.insertPartInfo";
session.insert(statement, partInfo);
session.commit();
session.close();
}
public static void main(String[] args) {
//先查询下数据库有哪些商品了
List<PartInfo> partInfos;
partInfos = selectAllPart();
for (PartInfo partInfo1 : partInfos) {
System.out.println("ID:"+partInfo1.getId()+" 商品:["+
partInfo1.getPartCode()+"] "+
partInfo1.getPartName()+" ,售价:"+
partInfo1.getSalePrice()+"元/"+
partInfo1.getUnit());
}
//添加商品
PartInfo partInfo = new PartInfo();
partInfo.setPartCode("001-0003");
partInfo.setPartName("康佳(KONKA) LED42E330CE 42英寸 全高清液晶电视");
partInfo.setUnit("台");
partInfo.setSalePrice(1699.00f);
insertPart(partInfo);
System.out.println("新增商品完成!");
//再重新查询下数据库的商品看看我们新添加的商品是否成功保存到数据库
partInfos = selectAllPart();
for (PartInfo partInfo2 : partInfos) {
System.out.println("ID:"+partInfo2.getId()+" 商品:["+
partInfo2.getPartCode()+"] "+
partInfo2.getPartName()+" ,售价:"+
partInfo2.getSalePrice()+"元/"+
partInfo2.getUnit());
}
}
可看到打印结果为
ID: 商品:[-] TCL D32E161 32英寸 内置wifi 在线影视 窄边LED网络液晶电视 ,售价:.9元/台
ID: 商品:[-] TCL D50A710 50英寸 40万小时视频 全高清 内置WiFi 八核安卓智能LED液晶电视 ,售价:.0元/台
新增商品完成!
ID: 商品:[-] TCL D32E161 32英寸 内置wifi 在线影视 窄边LED网络液晶电视 ,售价:.9元/台
ID: 商品:[-] TCL D50A710 50英寸 40万小时视频 全高清 内置WiFi 八核安卓智能LED液晶电视 ,售价:.0元/台
ID: 商品:[-] 康佳(KONKA) LED42E330CE 42英寸 全高清液晶电视 ,售价:.0元/台
说明我们新增的商品已经成功保存到数据库里面了
4.编辑商品信息
1)在com.mybatis.dao.PartDao中增加接口函数
public void updatePartInfo(PartInfo partInfo);
2)在com.mybatis.dao.mapper.PartMapper中增加其实现方法。
<!-- #{} 大括号里面的参数名是和com.mybatis.entity.PartInfo中的属性名对应的 -->
<!-- mybatis会自动将其属性值按照数据类型填充到被预编译的SQL脚本中 -->
<update id="updatePartInfo" parameterType="com.mybatis.entity.PartInfo">
UPDATE tbInfoPart SET
PartCode=#{partCode},
PartName=#{partName},
Unit=#{unit},
SalePrice=#{salePrice}
WHERE ID=#{id}
</update>
3)测试下效果,注意session.commit()不要遗漏,否则数据无法提交到数据库
public static void updatePart(PartInfo partInfo){
InputStream iStream = TestMain.class.getClassLoader().getResourceAsStream("mybatis.xml");
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(iStream);
SqlSession session = sessionFactory.openSession();
String statement = "com.mybatis.dao.PartDao.updatePartInfo";
session.update(statement, partInfo);
session.commit();
session.close();
}
public static void main(String[] args) {
PartInfo partInfo;
partInfo = selectPart(1);
System.out.println("原商品信息:["+partInfo.getPartCode()+"] "+
partInfo.getPartName()+" ,售价:"+
partInfo.getSalePrice()+"元/"+
partInfo.getUnit());
partInfo.setPartCode("001-0003");
partInfo.setPartName("康佳(KONKA) LED55U60 55英寸 优酷电视梦想版8核优酷视频海量应用");
partInfo.setUnit("台");
partInfo.setSalePrice(2999.00f);
updatePart(partInfo);
System.out.println("修改商品完成!");
partInfo = selectPart(1);
System.out.println("新商品信息:["+partInfo.getPartCode()+"] "+
partInfo.getPartName()+" ,售价:"+
partInfo.getSalePrice()+"元/"+
partInfo.getUnit());
}
可看到打印结果为
原商品信息:[-] TCL D32E161 32英寸 内置wifi 在线影视 窄边LED网络液晶电视 ,售价:.9元/台
修改商品完成!
新商品信息:[-] 康佳(KONKA) LED55U60 55英寸 优酷电视梦想版8核优酷视频海量应用 ,售价:.0元/台
说明我们编辑的商品已经成功保存到数据库里面了
5.删除商品信息
1)在com.mybatis.dao.PartDao中增加接口函数
public void deletePartInfo(int id);
2)在com.mybatis.dao.mapper.PartMapper中增加其实现方法。
<delete id="deletePartInfo" parameterType="int">
DELETE FROM tbInfoPart WHERE ID=#{id}
</delete>
3)测试下效果,注意session.commit()不要遗漏,否则数据无法提交到数据库
public static void deletePart(int id) {
InputStream iStream = TestMain.class.getClassLoader().getResourceAsStream("mybatis.xml");
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(iStream);
SqlSession session = sessionFactory.openSession();
String statement = "com.mybatis.dao.PartDao.deletePartInfo";
session.update(statement, id);
session.commit();
session.close();
}
public static void main(String[] args) {
// 先查询下数据库有哪些商品了
List<PartInfo> partInfos;
partInfos = selectAllPart();
for (PartInfo partInfo1 : partInfos) {
System.out.println("ID:" + partInfo1.getId() + " 商品:[" +
partInfo1.getPartCode() + "] " +
partInfo1.getPartName() + " ,售价:" +
partInfo1.getSalePrice() + "元/" +
partInfo1.getUnit());
}
// 删除商品
deletePart(1);
System.out.println("删除商品完成!");
// 再重新查询下数据库的商品看看我们删除的商品是否成功删除
partInfos = selectAllPart();
for (PartInfo partInfo1 : partInfos) {
System.out.println("ID:" + partInfo1.getId() + " 商品:[" +
partInfo1.getPartCode() + "] " +
partInfo1.getPartName() + " ,售价:" +
partInfo1.getSalePrice() + "元/" +
partInfo1.getUnit());
}
}
可看到打印结果为
ID: 商品:[-] 康佳(KONKA) LED55U60 55英寸 优酷电视梦想版8核优酷视频海量应用 ,售价:.0元/台
ID: 商品:[-] TCL D50A710 50英寸 40万小时视频 全高清 内置WiFi 八核安卓智能LED液晶电视 ,售价:.0元/台
ID: 商品:[-] 康佳(KONKA) LED42E330CE 42英寸 全高清液晶电视 ,售价:.0元/台
新增商品完成!
ID: 商品:[-] TCL D50A710 50英寸 40万小时视频 全高清 内置WiFi 八核安卓智能LED液晶电视 ,售价:.0元/台
ID: 商品:[-] 康佳(KONKA) LED42E330CE 42英寸 全高清液晶电视 ,售价:.0元/台
可以看到ID=1的商品已经被删除掉了
6. 目录结构及源码

源码下载:点此下载源码
Mybatis实现增删改查(二)的更多相关文章
- 学习MyBatis必知必会(5)~了解myBatis的作用域和生命周期并抽取工具类MyBatisUtil、mybatis执行增删改查操作
一.了解myBatis的作用域和生命周期[错误的使用会导致非常严重的并发问题] (1)SqlSessionFactoryBuilder [ 作用:仅仅是用来创建SqlSessionFactory,作用 ...
- Mybatis实例增删改查(二)
创建实体类: package com.test.mybatis.bean; public class Employee { private Integer id; private String las ...
- MyBatis批量增删改查操作
前文我们介绍了MyBatis基本的增删该查操作,本文介绍批量的增删改查操作.前文地址:http://blog.csdn.net/mahoking/article/details/43673741 ...
- Spring Boot入门系列(六)如何整合Mybatis实现增删改查
前面介绍了Spring Boot 中的整合Thymeleaf前端html框架,同时也介绍了Thymeleaf 的用法.不清楚的朋友可以看看之前的文章:https://www.cnblogs.com/z ...
- ssm 框架实现增删改查CRUD操作(Spring + SpringMVC + Mybatis 实现增删改查)
ssm 框架实现增删改查 SpringBoot 项目整合 一.项目准备 1.1 ssm 框架环境搭建 1.2 项目结构图如下 1.3 数据表结构图如下 1.4 运行结果 二.项目实现 1. Emplo ...
- MyBatis的增删改查。
数据库的经典操作:增删改查. 在这一章我们主要说明一下简单的查询和增删改,并且对程序接口做了一些调整,以及对一些问题进行了解答. 1.调整后的结构图: 2.连接数据库文件配置分离: 一般的程序都会把连 ...
- 一、数据库表中字段的增删改查,二、路由基础.三、有名无名分组.四、多app共存的路由分配.五、多app共存时模板冲突问题.六、创建app流程.七、路由分发.八、路由别名,九、名称空间.十、反向解析.十一、2.x新特性.十二、自定义转换器
一.数据库表中字段的增删改查 ''' 直接在modules中对字段进行增删改查 然后在tools下点击Run manage.py Task执行makemigrations和migrate 注意在执行字 ...
- 上手spring boot项目(三)之spring boot整合mybatis进行增删改查的三种方式。
1.引入依赖. <!--springboot的web起步依赖--><dependency> <groupId>org.springframework.boot< ...
- 上手spring boot项目(三)之spring boot整合mybatis进行增删改查
使用mybatis框架进行增删改查大致有两种基础方式,一种扩展方式.两种基础方式分别是使用xml映射文件和使用方法注解.扩展方式是使用mybatis-plus的方式,其用法类似于spring-data ...
- 从0开始完成SpringBoot+Mybatis实现增删改查
1.准备知识: 1)需要掌握的知识: Java基础,JavaWeb开发基础,Spring基础(没有Spring的基础也可以,接触过Spring最好),ajax,Jquery,Mybatis. 2)项目 ...
随机推荐
- 在linux7(centos)中安装python3.7.2
一般情况下linux上都默认安装了python,检查一下我的版本 没有安装python3,但是目前已经是python3了,所以为了方便,还是要在系统上安装一下比较好. 上面的命令,直接输入python ...
- yii2.0 引入权限控制插件
权限控制:"mdmsoft/yii2-admin": "~2.0" 教程:http://www.cnblogs.com/zyf-zhaoyafei/p/5825 ...
- Python爬虫一爬取B站小视频源码
如果要爬取多页的话 在最下方循环中 填写好循环的次数就可以了 项目源码 from fake_useragent import UserAgent import requests import time ...
- 036、Java中三目运算符的使用
01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...
- 022、Java中boolean的用法
01.代码如下: package TIANPAN; /** * 此处为文档注释 * * @author 田攀 微信382477247 */ public class TestDemo { public ...
- Django(十)模型:django模型类对数据库的:增/删/改/查、自关联、管理器、元选项(指定表名)
一.插入.更新和删除 调用一个模型类对象的save方法的时候就可以实现对模型类对应数据表的插入和更新. 调用一个模型类对象的delete方法的时候就可以实现对模型类对应数据表数据的删除. 二.自关联 ...
- Android studio 中出现fail to load platform rendering library
解决方法: 1)将布局的API接口改为低版本的(如蓝色箭头所示) 2)改为真机测试
- P1001 害死人不偿命的(3n+1)猜想 (Basic Level)
转跳点:
- POJ 3254:Corn Fields
Corn Fields Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 9295 Accepted: 4940 Descr ...
- setup factory 设置自启动
Registry.SetValue(HKEY_LOCAL_MACHINE, "Software//Microsoft//Windows//CurrentVersion//Run", ...