通过自动回复机器人学Mybatis 笔记:接口式编程
【接口式编程】尚未遇见Spring --> 代码量反而增加
1、增加约定,减少犯错的可能(不用直接去写字符串
修改点1:命名空间
修改点2:增加接口,方法名与配置文件中的id对应
package com.imooc.dao; import java.util.List; import com.imooc.bean.Message; /**
*
* 与配置文件Message相对应的接口
*
*/
public interface IMessage {
// 代言SQL语句
public List<Message> queryMessageList(Message message); public void deleteOne(int id); public void deleteBatch(List<Integer> ids);
}
修改点3:修改DAO层调用SQL的方式
package com.imooc.dao; import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List; import org.apache.ibatis.session.SqlSession; import com.imooc.bean.Message;
import com.imooc.db.DBAccess; /**
* 和message表相关的数据库操作
*/
public class MessageDAO { public List<Message> queryMessageList(String command, String description) {
DBAccess dbAccess = new DBAccess();
SqlSession sqlSession = null;
List<Message> messageList = null;
try {
sqlSession = dbAccess.getSqlSession();
Message message = new Message();
message.setCommand(command);
message.setDescription(description);
// 通过sqlSession执行SQL语句
IMessage iMessage = sqlSession.getMapper(IMessage.class);
messageList = iMessage.queryMessageList(message);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (sqlSession != null) {
sqlSession.close();
}
}
return messageList;
} /**
* 单条删除
*/
public void deletOne(int id) {
DBAccess dbAccess = new DBAccess();
SqlSession sqlSession = null;
try {
sqlSession = dbAccess.getSqlSession();
// 通过sqlSession执行SQL语句
IMessage iMessage = sqlSession.getMapper(IMessage.class);
iMessage.deleteOne(id);
sqlSession.commit();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (sqlSession != null) {
sqlSession.close();
}
}
} /**
* 删除多条消息
*/
public void deleteBatch(List<Integer> ids) {
DBAccess dbAccess = new DBAccess();
SqlSession sqlSession = null;
try {
sqlSession = dbAccess.getSqlSession();
// 通过sqlSession执行SQL语句
IMessage iMessage = sqlSession.getMapper(IMessage.class);
iMessage.deleteBatch(ids);
sqlSession.commit();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (sqlSession != null) {
sqlSession.close();
}
}
}
}
【只写接口,不写实现】
1、添加依赖包
2、编写 XxxDAO 接口 (结果集 + 行为 + 参数)
3、用 XxxDAO.xml 实现接口( SQL)
通过自动回复机器人学Mybatis 笔记:接口式编程的更多相关文章
- 通过自动回复机器人学Mybatis笔记:接口式编程
[接口式编程]尚未遇见Spring --> 代码量反而增加 1.增加约定,减少犯错的可能(不用直接去写字符串 修改点1:命名空间 修改点2:增加接口,方法名与配置文件中的id对应 package ...
- MyBatis的接口式编程Demo
很久没细看过MyBatis了,时间一长就容易忘记. 下面是一个接口式编程的例子. 这里的例子一共分为4步: 1 首先要有一个namespace为接口的全类名的映射文件,该例中是 IMyUser.xml ...
- Mybatis面向接口式编程
Mybatis面向接口编程 1.xml文件书写格式 <?xml version="1.0" encoding="UTF-8" ?> <!DOC ...
- MyBatis源码解析【7】接口式编程
前言 这个分类比较连续,如果这里看不懂,或者第一次看,请回顾之前的博客 http://www.cnblogs.com/linkstar/category/1027239.html 修改例子 在我们实际 ...
- mybaits接口式编程
Mybatis是接口式编程实现对.xml中sql语句的执行,其过程如下(取自慕课网视频<通过自动回复机器人学Mybatis---加强版>): 1.加载配置信息2.通过加载配置信息加载一个代 ...
- Mybatis笔记二:接口式编程
目录 旧方法的弊端 接口式编程 接口式编程的好处 接口式编程的增删改查 旧方法的弊端 在Mybatis笔记一中,我们使用命名空间+id的方式实现了Mybatis的执行,不过这里的命名空间是我们随便写的 ...
- MyBatis3-topic04,05 -接口式编程
笔记要点 /**接口式编程: * 1. 原生: Dao 接口-->Dao接口的实现类 * mybatis: Mapper --> 有一个与之对应的 XXMapper.xml * 2. Sq ...
- MyBatis接口式编程
MyBatis使用接口连接数据库 之前学习了如何传统的使用MyBatis连接数据库,今天学习如何使用更方便快捷的方式练级数据库.使用接口连接数据库 https://www.cnblogs.com/li ...
- SpringBoot实战派读书笔记---响应式编程
1.什么是WebFlux? WebFlux不需要Servlet API,在完全异步且无阻塞,并通过Reactor项目实现了Reactor Streams规范. WebFlux可以在资源有限的情况下提高 ...
随机推荐
- php 的开发工具
通过上篇我们已经配置好了php的开发环境,我们就可以在这个模拟的环境下运行我们编写的php代码了. 在编写代码前,先安装一个自己喜欢的代码编辑器. 1.sublime text Sublime Tex ...
- Java第三季
1.异常简介: (1) Java中的所有不正常类都继承于Throwable类.Throwable主要包括两个大类,一个是Error类,另一个是 Exception类: (2)其中Error类中包括虚拟 ...
- SxsTrace程序追踪 && 错误信息分析
先贴错误:应用程序无法运行,并行配置不正确 ,使用命令行sxstrace.exe.百度解决版本. 起因:同事给我一 EXE,然后基于 其进行开发 dll和模块,但是无法加入进程,无法运行. SxsTr ...
- 推荐一个非常牛逼的并发httpful的库(php)
MultiHttp :结合了libcurl多线程.httpful方式的PHP库 This is high performance curl wrapper written in pure PHP. I ...
- mysql如何查看索引使用情况以及优化 - guols0612
mysql中支持hash和btree索引.innodb和myisam只支持btree索引,而memory和heap存储引擎可以支持hash和btree索引 我们可以通过下面语句查询当前索引使用情况: ...
- 数据库索引------Btree索引的使用限制
1.如果不是按照索引最左列开始查找,则无法使用索引. 比如说id+name 那么是name+id 的话 ,这个索引则无法使用. 2.使用索引时不能跳过索引中的列. 如果是id+name+ag ...
- Linux磁盘分区(一):添加
***********************************************声明************************************************ 原创 ...
- Java数据结构和算法(七)——链表
前面博客我们在讲解数组中,知道数组作为数据存储结构有一定的缺陷.在无序数组中,搜索性能差,在有序数组中,插入效率又很低,而且这两种数组的删除效率都很低,并且数组在创建后,其大小是固定了,设置的过大会造 ...
- java 内部类 嵌套类
.markdown-body { color: #24292e; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI" ...
- Tomcat启动慢解决方法(本人CentOS7.4系统)
首先查看日志信息,查看因为什么而启动慢 在CentOS7启动Tomcat时,启动过程很慢,需要几分钟,经过查看日志,发现耗时在这里:是session引起的随机数问题导致的.Tocmat的Session ...