码迷,mamicode.com
首页 > 其他好文 > 详细

通过自动回复机器人学Mybatis 笔记:接口式编程

时间:2017-12-09 19:22:11      阅读:105      评论:0      收藏:0      [点我收藏+]

标签:图片   ret   interface   exce   pre   配置文件   map   ack   and   

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

标签:图片   ret   interface   exce   pre   配置文件   map   ack   and   

原文地址:http://www.cnblogs.com/xkxf/p/7145208.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!