博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java_jdbc_3层 解耦
阅读量:7143 次
发布时间:2019-06-28

本文共 2220 字,大约阅读时间需要 7 分钟。

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 {	@Override	public 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 block			throw 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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/MarchThree/p/3720423.html

你可能感兴趣的文章
如何实现全屏遮罩(附Vue.extend和el-message源码学习)
查看>>
你或许不知道Vue的这些小技巧
查看>>
Promise源码学习(1)
查看>>
[项目推荐] Corcel 让你在 WordPress 中使用 Laravel
查看>>
阿里:千亿交易背后的0故障发布
查看>>
Node+express+mongoose 基础笔记
查看>>
利用angular4和nodejs-express构建一个简单的网站(十)—好友模块
查看>>
极光大数据告诉你,程序员们都在"愁"些啥?
查看>>
python写一个简单的图形化记事本
查看>>
从Hash到散列表到HashMap
查看>>
前端基础知识学习记录(三)
查看>>
原型链类原理
查看>>
YYWebImage,SDWebImage和PINRemoteImage比较
查看>>
Docker之旅——实例: 使用verdaccio搭建私服npm(二)
查看>>
Gin实践 连载五 使用JWT进行身份校验
查看>>
我的订单
查看>>
解决微信二次分享bug
查看>>
2017文章总结
查看>>
C3踩坑2--css选择器
查看>>
分类算法之决策树(理论篇)
查看>>