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. loadrunner录制脚本方式笔记

    1.脚本录制的基本原则 充分考虑脚本的执行效率 性能测试脚本关注的是如何模拟用户的真实行为.因此,用于测试的脚本应该接近用户的真正操作.这就要求录制后         的脚本在修改的过程中不要增加过多 ...

  2. 手机测试pc端网页

    在这个问题上徘徊了 一个钟头了,终于被我找到方法了,就赶紧记下来,以后好查阅!! 主要问题在防火墙,防火墙阻当了80端口,所以怎么用手机访问都是访问不了的.把防火墙关闭就好了! 贴上httpd-vho ...

  3. golang strings

    package main import s "strings" //别名 import ( "fmt" ) var p = fmt.Println func m ...

  4. iOS开发 利用Reachability判断网络环境

    导入头文件:#import "Reachability.h" 然后将 SystemConfiguration.framework 添加进工程: 1.检查当前的网络状态(wifi.W ...

  5. cube定时器延时不准确原因

    昨天晚上测试32cube配置好定时器,以1ms为一次中断,然后在程序中做了一个1s的延时,结果发现实际延时5s左右,百思不得其解,仔细查看cube配置也没问题.最后我打开生成工程文件夹里面的ioc文件 ...

  6. spring文件下载记录

    /** * 下载方法 * @param request * @param response * @param storeName 文件在存在位置的名字(需要带着后缀) * @param content ...

  7. android log

    from 点击打开链接  使用Android logcat 对我们开发.调试Android程序有很大的帮助!通过logcat,我们可以非常方便的了解到程序的执行情况,判断出错代码位置. 最简单的log ...

  8. 常用js,css文件统一加载方法,并在加载之后调用回调函数

    原创内容,转载请注明出处! 为了方便资源管理和提升工作效率,常用的js和css文件的加载应该放在一个统一文件里面完成,也方便后续的资源维护.所以我用js写了以下方法,存放在“sourceControl ...

  9. mysql 二进制日志

      1.日志类型   二进制日志记录了所有对mysql数据库的修改事件,包括增删改事件和对表结构的修改事件.   2.配置使用二进制日志 在my.ini 配置 log-bin=mysql-bin   ...

  10. 移动端web之像素基础

    px:css pixels逻辑像素,浏览器使用的抽象单位 dp,pt :device independent pixels 设备无关像素 dpr:devicePixelRatio 设备像素缩放比 计算 ...