【接口式编程】尚未遇见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)

最新文章

  1. Python爬虫爬取百度贴吧的帖子
  2. MongoDB学习(五)Linux环境安装MongoDB
  3. 【框架】RefreshListView下拉刷新
  4. scala学习笔记(1)
  5. 查看SqlServer的内存使用情况
  6. csu 10月 月赛 A 题
  7. CSS彻底研究(1)
  8. 关于COOKIE使用过程为NULL
  9. python基本数据类型——set
  10. http://www.layui.com/doc/modules/laydate.html实时通信\日期、==插件
  11. python调用数据返回字典dict数据的现象2
  12. ssh框架中.xml文件小技巧分离xml
  13. BZOJ4867 : [Ynoi2017]舌尖上的由乃
  14. SSH免登录及原理
  15. [原]openstack-kilo--issue(十八) Error parsing template file: Template format version not found.
  16. 转载:索引与分片 plus
  17. python day02--运算符,编码
  18. Ubuntu创建新用户并设置权限
  19. Java第02次实验提纲(Java基本语法与类库)
  20. VMware中让虚拟机支持虚拟化

热门文章

  1. 《C++ Primer Plus》学习笔记0
  2. Ubuntu16.04安装QQ(图文说明)
  3. Android之布局属性归纳
  4. Myeclipse下使用Maven搭建spring boot项目
  5. ios 自定义UITableView中分组的标题sectionview
  6. rabbitMq延时消息分级别
  7. Guess Your Way Out! II---cf 558D (区间覆盖,c++STL map 的使用)
  8. 跨域问题session不一致问题的解决(前端和后台在不同的服务器)
  9. Apache Lucene初探
  10. vs中nodejs代码 resharper 提示 ECMAScript2015 Feature. your Current language level is ECMAScript5的解决办法