java_jdbc_3层 解耦
来源:互联网 发布:windows 启动网卡命令 编辑:程序博客网 时间:2024/06/06 08:47
Dao - 提供接口
DaoImpl - 实现
DaoFactory - 工厂模式获取实现
DaoExcetpion - jdbc异常处理 实现runtime exception类即可
TestDemo - 主函数
User - bean
daoconfig.properties - 配置文件
package cn.itcast.user;public interface Dao {public User findById(int id);}
package cn.itcast.user;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;import cn.itcast.JdbcUtils;public class DaoImpl implements Dao {@Overridepublic User findById(int id) {Connection conn = null;PreparedStatement ps = null;ResultSet rs = null;User user=null;String sql = "select * from t_user where id=?";try{conn = JdbcUtils.getConnection();ps = conn.prepareStatement(sql);ps.setInt(1, id);rs=ps.executeQuery();while(rs.next()){user = new User();user.setId(rs.getInt("id"));user.setName(rs.getString("username"));user.setPassword(rs.getString("password"));}}catch(SQLException e){throw new DaoExcetpion(e.getMessage(),e);}finally{JdbcUtils.free(rs, ps, conn);}return user;}}
package cn.itcast.user;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.util.Properties;public class DaoFactory {private static Dao dao = null;private static DaoFactory intance = new DaoFactory();private DaoFactory() {try {Properties prop = new Properties();InputStream inStream = DaoFactory.class.getClassLoader().getResourceAsStream("daoconfig.properties");prop.load(inStream);String userDaoClass = prop.getProperty("userDaoClass");dao=(Dao)Class.forName(userDaoClass).newInstance();} catch (Exception e) {// TODO Auto-generated catch blockthrow new ExceptionInInitializerError(e);}}public static DaoFactory getInstance() {return intance;}public Dao getUserDao() {return dao;}}
package cn.itcast.user;public class TestDemo {public static void main(String[] args) {// TODO Auto-generated method stub//Dao dao = new DaoImpl();Dao dao = DaoFactory.getInstance().getUserDao();User user = dao.findById(2);System.out.println(user.getId());System.out.println(user.getName());}}
//配置文件
userDaoClass=cn.itcast.user.DaoImpl
0 0
- java_jdbc_3层 解耦
- 层
- 层1 层2
- 显示层||隐藏层
- 表示层、应用层
- 随笔:表现层、持久层、业务层、
- 什么是核心层?汇聚层?接入层?
- 网络层 7 层 各层协议
- 表现层、持久层、业务层
- 表现层、持久层、业务层
- 表现层、持久层、业务层
- DAO层,Service层,Controller层、…
- dao层 service层 action层
- 层定位
- 层定位
- 层模式
- 层模式
- 操作层
- java_JdbcUtilis_单实例
- linux-v0.11中管道的实现之-ring buffer
- 链表
- VMware虚拟机访问物理机xp共享文件
- Jquery 基础 选择器。
- java_jdbc_3层 解耦
- Hibernate的原生SQL查询
- BoundsChecker使用
- 第四章 指令系统笔记简记
- NoClassDefFoundError:org.ksoap2.seri...
- Windows所有可选快捷键及其键值列表
- Netlink实现Linux内核与用户空间通信
- 互联网百万级应用的大数据处理问题 探讨大数据量处理
- Leetcode: Search in Rotated Sorted Array II