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. QT笔记之VS开发添加类

    1. 2. 3.

  2. VS2010/2012配置优化记录笔记

    VS2010/2012配置优化记录笔记 在某些情况下VS2010/2012运行真的实在是太卡了,有什么办法可以提高速度吗?下面介绍几个优化策略,感兴趣的朋友可以参考下,希望可以帮助到你   有的时候V ...

  3. 模拟jquery

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. sql_树形查询

    with Subqry(FID,A_TypeName,A_ParentID) as (select FID,A_TypeName,A_ParentID from tb_Appliances where ...

  5. onethink使用经验

    1 建议随时从oschina上下载onethink的最新版本,如果你遇到了怎么都解决不了的问题,比如菜单管理自定义菜单,左侧二级菜单不显示的问题,好像有一个历史版本就是有bug,好像是1.1开始的一个 ...

  6. C语言中常见的排序方法

    在C语言中,常见的排序方法有冒泡法,排序法,插入法等等.所谓的冒泡法,就是对一组数字进行从大到小或者从小到大的一种排序方法.主要就是相邻的数值相互交换.从第一个数值开始,如果这相邻的两个数值排序与我们 ...

  7. CentOS 7 中设置启动模式

    1.命令行模式systemctl set-default multi-user.target2.图形模式systemctl set-default graphical.target

  8. Linux 系统目录结构

    登录系统后,在当前命令窗口下输入命令: ls / 你会看到如下图所示: 树状目录结构: 以下是对这些目录的解释: /bin: bin是Binary的缩写, 这个目录存放着最经常使用的命令. /boot ...

  9. 在centos中安装jenkins master测试环境

    在centos中安装jenkins   1)安装目录 pwd (/home/AAA)   2)检查java是否安装 [AAA@Centos_AAA jenkins]$ java -version  j ...

  10. laravel 的.env 配置文件

      (相关的环境变量) APP_ENV=localAPP_DEBUG=trueAPP_KEY=base64:cWMz1hM4dp9ihoOtUs6iV+BDZX9KtjYvMALFmyEPQfI= D ...