DAO接口及实现类
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接口及实现类的更多相关文章
- Mybatis自动生成xml文件、dao接口、实体类
Mybatis可以通过逆向工程,实现自动生成xml文件.dao接口.实体类 以下使用的是Intellij Idea进行自动生成 一.首先,要在pom.xml中导入插件,在<build>中加 ...
- Mybatis环境搭建中的案例分析 及 如果自己编写DAO接口的实现类
Mybatis环境搭建中的案例分析public static void main (String[] args) throws Exception { //读配置文件 //第一个: 使用类加载器,只能 ...
- ItcastOA_设计BaseDao_设计DAO接口和实现类_写DAO实现类中的方法内容
3. 基础功能 3.1. 设计BaseDao接口与BaseDaoImpl类 每个实体都应有一个对应的Dao,他封装了对这个实体的数据库操作.例 实体Dao接口实现类 ================= ...
- 使用动态代理实现dao接口
使用动态代理实现dao接口的实现类 MyBatis允许只声明一个dao接口,而无需写dao实现类的方式实现数据库操作.前提是必须保证Mapper文件中的<mapper>标签的namespa ...
- mybatis源码学习--spring+mybatis注解方式为什么mybatis的dao接口不需要实现类
相信大家在刚开始学习mybatis注解方式,或者spring+mybatis注解方式的时候,一定会有一个疑问,为什么mybatis的dao接口只需要一个接口,不需要实现类,就可以正常使用,笔者最开始的 ...
- dojo省份地市级联之地市Dao接口类(四)
dojo省份地市级联之地市Dao接口类 CityDao.java: /** * 地市 */ package com.you.dao; import java.util.List; import com ...
- dojo省份地市级联之省份Dao接口类(三)
dojo省份地市级联之省份Dao接口类 ProvinceDao.java: /** * 省份-Dao */ package com.you.dao; import java.util.List; im ...
- Mybatis自动生成实体类、dao接口和mapping映射文件
由于Mybatis是一种半自动的ORM框架,它的工作主要是配置mapping映射文件,为了减少手动书写映射文件,可以利用mybatis生成器,自动生成实体类.dao接口以及它的映射文件,然后直接拷贝到 ...
- DAO,Service接口与实现类设计
DAO接口 为每个DAO声明接口的好处在于 1. 可以在尚未实现具体DAO的时候编写上层代码,如Service里对DAO的调用 2. 可以为DAO进行多实现,例如有JDBCDAO实现,MyBatisD ...
随机推荐
- QT笔记之VS开发添加类
1. 2. 3.
- VS2010/2012配置优化记录笔记
VS2010/2012配置优化记录笔记 在某些情况下VS2010/2012运行真的实在是太卡了,有什么办法可以提高速度吗?下面介绍几个优化策略,感兴趣的朋友可以参考下,希望可以帮助到你 有的时候V ...
- 模拟jquery
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- sql_树形查询
with Subqry(FID,A_TypeName,A_ParentID) as (select FID,A_TypeName,A_ParentID from tb_Appliances where ...
- onethink使用经验
1 建议随时从oschina上下载onethink的最新版本,如果你遇到了怎么都解决不了的问题,比如菜单管理自定义菜单,左侧二级菜单不显示的问题,好像有一个历史版本就是有bug,好像是1.1开始的一个 ...
- C语言中常见的排序方法
在C语言中,常见的排序方法有冒泡法,排序法,插入法等等.所谓的冒泡法,就是对一组数字进行从大到小或者从小到大的一种排序方法.主要就是相邻的数值相互交换.从第一个数值开始,如果这相邻的两个数值排序与我们 ...
- CentOS 7 中设置启动模式
1.命令行模式systemctl set-default multi-user.target2.图形模式systemctl set-default graphical.target
- Linux 系统目录结构
登录系统后,在当前命令窗口下输入命令: ls / 你会看到如下图所示: 树状目录结构: 以下是对这些目录的解释: /bin: bin是Binary的缩写, 这个目录存放着最经常使用的命令. /boot ...
- 在centos中安装jenkins master测试环境
在centos中安装jenkins 1)安装目录 pwd (/home/AAA) 2)检查java是否安装 [AAA@Centos_AAA jenkins]$ java -version j ...
- laravel 的.env 配置文件
(相关的环境变量) APP_ENV=localAPP_DEBUG=trueAPP_KEY=base64:cWMz1hM4dp9ihoOtUs6iV+BDZX9KtjYvMALFmyEPQfI= D ...