DAO接口中定义了所有的用户操作,如添加记录、删除记录及查询记录。

 package chapter13;
import java.util.*;
public interface UserDAO {
public void insert(User user) throws Exception;
public void update(User user) throws Exception;
public void delete(int userid) throws Exception;
public User queryById(int userid) throws Exception;
public List<User> queryAll() throws Exception;
}

DAO实现类实现了DAO接口,并且实现了接口中定义的所有方法。

 package chapter13;

 import java.util.*;
import java.sql.*;
import java.sql.Date; public class UserDAOImpl implements UserDAO { @Override
public void insert(User user) throws Exception {
// TODO Auto-generated method stub
String sql="insert into user(username,password) values(?,?)";
PreparedStatement preparedStatement=null;
DataBaseConnection dbc=null;
try{
dbc=new DataBaseConnection();
preparedStatement=dbc.getConnection().prepareStatement(sql);
preparedStatement.setString(1, user.getUserName());
preparedStatement.setString(2, user.getPassword());
preparedStatement.executeUpdate();
preparedStatement.close();
}
catch(Exception e){
throw new Exception("操作出现异常");
}finally {
dbc.close();
} } @Override
public void update(User user) throws Exception {
// TODO Auto-generated method stub
String sql="update user set username=?,password=? where userid=?";
PreparedStatement preparedStatement=null;
DataBaseConnection dbc=null;
try{
dbc=new DataBaseConnection();
preparedStatement=dbc.getConnection().prepareStatement(sql);
preparedStatement.setString(1, user.getUserName());
preparedStatement.setString(2, user.getPassword());
preparedStatement.setInt(3, user.getUserId());
preparedStatement.executeUpdate();
preparedStatement.close();
}
catch(Exception e){
throw new Exception("操作出现异常");
}finally {
dbc.close();
}
} @Override
public void delete(int userid) throws Exception {
// TODO Auto-generated method stub
String sql="delete from user where userid=?";
PreparedStatement preparedStatement=null;
DataBaseConnection dbc=null;
try{
dbc=new DataBaseConnection();
preparedStatement=dbc.getConnection().prepareStatement(sql);
preparedStatement.setInt(1, userid);
preparedStatement.executeUpdate();
preparedStatement.close();
}
catch(Exception e){
throw new Exception("操作出现异常");
}finally {
dbc.close();
}
} @Override
public User queryById(int userid) throws Exception {
// TODO Auto-generated method stub
User user=null;
String sql="select * from user where userid=?";
PreparedStatement preparedStatement=null;
DataBaseConnection dataBaseConnection=null;
try{
dataBaseConnection=new DataBaseConnection();
preparedStatement=dataBaseConnection.getConnection().prepareStatement(sql);
ResultSet rSet=preparedStatement.executeQuery();
if(rSet.next()){
user=new User();
user.setUserId(rSet.getInt(1));
user.setUserName(rSet.getString(2));
user.setPassword(rSet.getString(3));
}
rSet.close();
preparedStatement.close();
}
catch(Exception e){
throw new Exception("操作出现异常");
}finally {
dataBaseConnection.close();
}
return user;
} @Override
public List<User> queryAll() throws Exception {
// TODO Auto-generated method stub
List<User> all=new ArrayList<User>();
String sql="select * from user";
PreparedStatement preparedStatement=null;
DataBaseConnection dataBaseConnection=null;
try{
dataBaseConnection=new DataBaseConnection();
preparedStatement=dataBaseConnection.getConnection().prepareStatement(sql);
ResultSet rSet=preparedStatement.executeQuery();
if(rSet.next()){
User user=new User();
user=new User();
user.setUserId(rSet.getInt(1));
user.setUserName(rSet.getString(2));
user.setPassword(rSet.getString(3));
all.add(user);
}
rSet.close();
preparedStatement.close();
}
catch(Exception e){
throw new Exception("操作出现异常");
}finally {
dataBaseConnection.close();
}
return all;
} }

DAO接口及实现类的更多相关文章

  1. Mybatis自动生成xml文件、dao接口、实体类

    Mybatis可以通过逆向工程,实现自动生成xml文件.dao接口.实体类 以下使用的是Intellij Idea进行自动生成 一.首先,要在pom.xml中导入插件,在<build>中加 ...

  2. Mybatis环境搭建中的案例分析 及 如果自己编写DAO接口的实现类

    Mybatis环境搭建中的案例分析public static void main (String[] args) throws Exception { //读配置文件 //第一个: 使用类加载器,只能 ...

  3. ItcastOA_设计BaseDao_设计DAO接口和实现类_写DAO实现类中的方法内容

    3. 基础功能 3.1. 设计BaseDao接口与BaseDaoImpl类 每个实体都应有一个对应的Dao,他封装了对这个实体的数据库操作.例 实体Dao接口实现类 ================= ...

  4. 使用动态代理实现dao接口

    使用动态代理实现dao接口的实现类 MyBatis允许只声明一个dao接口,而无需写dao实现类的方式实现数据库操作.前提是必须保证Mapper文件中的<mapper>标签的namespa ...

  5. mybatis源码学习--spring+mybatis注解方式为什么mybatis的dao接口不需要实现类

    相信大家在刚开始学习mybatis注解方式,或者spring+mybatis注解方式的时候,一定会有一个疑问,为什么mybatis的dao接口只需要一个接口,不需要实现类,就可以正常使用,笔者最开始的 ...

  6. dojo省份地市级联之地市Dao接口类(四)

    dojo省份地市级联之地市Dao接口类 CityDao.java: /** * 地市 */ package com.you.dao; import java.util.List; import com ...

  7. dojo省份地市级联之省份Dao接口类(三)

    dojo省份地市级联之省份Dao接口类 ProvinceDao.java: /** * 省份-Dao */ package com.you.dao; import java.util.List; im ...

  8. Mybatis自动生成实体类、dao接口和mapping映射文件

    由于Mybatis是一种半自动的ORM框架,它的工作主要是配置mapping映射文件,为了减少手动书写映射文件,可以利用mybatis生成器,自动生成实体类.dao接口以及它的映射文件,然后直接拷贝到 ...

  9. DAO,Service接口与实现类设计

    DAO接口 为每个DAO声明接口的好处在于 1. 可以在尚未实现具体DAO的时候编写上层代码,如Service里对DAO的调用 2. 可以为DAO进行多实现,例如有JDBCDAO实现,MyBatisD ...

随机推荐

  1. AC自动机入门

    Aho-Corasick automaton,该算法在1975年产生于贝尔实验室,是著名的多模式匹配算法之一. KMP算法很好的解决了单模式匹配问题,如果有了字典树的基础,我们可以完美的结合二者解决多 ...

  2. 《BI项目笔记》历年外观质量均值变化分析Cube的建立

    分析主题主要维度:烟叶级别.烟叶级别按等级信息.烟叶级别按分级标准(标准维度)产地(父子维度)检测时间(时间维度,以Tqc_Raw_PresentationQuality . CheckTime字段派 ...

  3. struts(三) ---OGNL的学习和理解

    OGNL:Object graphic Navgation Language(对象图形的导航语言)

  4. Less入门到上手——前端开发利器<二>深入了解

    接着昨天的继续... ... 4.嵌套: HTML部分 <table> <tr> <th colspan="3">测试列表标题</th&g ...

  5. hdu2825Wireless Password(ac+dp)

    链接 状压dp+ac dp[i+1][next[j]][st|tt]表示第i+1长度结点为next[j]状态为st|tt的时候的ans; dp[i+1][next[j]][st|tt]+=dp[i][ ...

  6. Oracle的表空间和数据文件

    一. 概念 表空间:是一个或多个数据文件的逻辑集合 表空间逻辑存储对象: 永久段-->如表与索引 临时段-->如临时表数据与排序段 回滚段-->用于事物回滚或闪回内存的撤销数据 表空 ...

  7. [css] 页面重构“鑫三无准则” 之“无宽度”准则

    原创文章,转载请注明来自张鑫旭-鑫空间-鑫生活[http://www.zhangxinxu.com]本文地址:http://www.zhangxinxu.com/wordpress/?p=1152 一 ...

  8. angular directive scope

    angular directive scope 1.当directive 中不指定scope属性,则该directive 直接使用 app 的scope: 2.当directive 中指定scope属 ...

  9. [java基础]分支结构(2)

    [java基础]分支结构2 switch case /** 文件路径:G:\JavaByHands\if-else\ 文件名称:switchcase.java 编写时间:2016/6/6 作 者:郑晨 ...

  10. MDK的一些设置(尤其是部分代码无法断点问题的解决)

    转自http://www.cnblogs.com/worldsing/p/3412323.html