博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
精简了的Dao 没有DaoFactory
阅读量:6037 次
发布时间:2019-06-20

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

hot3.png

package entity;import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.Date;public class Product {	private int id;	private String name;	private double price;	private Date date;		public Product() {		super();	}	public Product(int id, String name, double price, Date date) {		super();		this.id = id;		this.name = name;		this.price = price;		this.date = date;	}	public int getId() {		return id;	}	public void setId(int id) {		this.id = id;	}	public String getName() {		return name;	}	public void setName(String name) {		this.name = name;	}	public double getPrice() {		return price;	}	public void setPrice(double price) {		this.price = price;	}	public Date getDate() {		return date;	}	public void setDate(Date date) {		this.date = date;	}	@Override	public String toString() {		DateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");		String str=this.date==null?"":df.format(date);		return "Product [id=" + id + ", name=" + name + ", price=" + price				+ ", date=" + str + "]";	}			}
package dao;import java.sql.Connection;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.List;import common.DbUtils;import entity.Product;public class ProductDao {		public void insert(Product product){				String name=product.getName();		double price=product.getPrice();		DateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");		String str=df.format(new Date());		String  sql="insert into product(name,price,date)values('"+name+"','"+price+"','"+str+"')";		DbUtils.execute(sql);	}	public Product getProduct(int id){		Connection conn=null;		Statement st=null;		ResultSet rs=null;				String sql="select id,name,price,date from product where id="+id;				Product product=new Product();		try {						conn=DbUtils.getConnection();			st=conn.createStatement();			rs=st.executeQuery(sql);			while(rs.next()){				int i=1;				int id2=rs.getInt(i++);				String name=rs.getString(i++);				double price=rs.getDouble(i++);				//日期时间不能用getDate(xxx);来获取.应使用getTimestamp(xxx)				//Date date=rs.getDate(i++);				java.sql.Timestamp ts=rs.getTimestamp(i++);								product.setId(id2);				product.setName(name);				product.setPrice(price);				//product.setDate(date);				//把java.sql.Timestamp转换成java.util.Date				if(ts!=null){					product.setDate(new Date(ts.getTime()));				}			}		} catch (SQLException e) {			// TODO Auto-generated catch block			e.printStackTrace();		}finally{			DbUtils.close(st, conn, rs);		}		return product;	}	public List
 getProductList(){ Connection conn=null; Statement st=null; ResultSet rs=null; String sql="select id,name,price from product"; List
 list=new ArrayList
(); try { conn=DbUtils.getConnection(); st=conn.createStatement(); rs=st.executeQuery(sql); while(rs.next()){ int i=1; int id2=rs.getInt(i++); String name=rs.getString(i++); double price=rs.getDouble(i++); Product product=new Product(); product.setId(id2); product.setName(name); product.setPrice(price); list.add(product); } }catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ DbUtils.close(st, conn, rs); } return list; } public List
 getProduct(String name){ Connection conn=null; Statement st=null; ResultSet rs=null; String sql="select id,name,price from product where name like '%"+name+"%'"; List
 list=new ArrayList
(); try { conn=DbUtils.getConnection();  st=conn.createStatement(); rs=st.executeQuery(sql); while(rs.next()){ int i=1; int id2=rs.getInt(i++); String name2=rs.getString(i++); double price2=rs.getDouble(i++); Product product=new Product(); product.setId(id2); product.setName(name2); product.setPrice(price2); list.add(product); } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); }finally{ DbUtils.close(st, conn, rs); } return list; } public void updateProduct(Product product){ String name=product.getName(); double price=product.getPrice(); String  sql="update product set name='"+name+"',price='"+price+"' where id="+product.getId(); DbUtils.execute(sql); } public void deleteProduct(Product product){ String  sql="delete from product where id="+product.getId(); DbUtils.execute(sql); }}
package daoTest;import java.util.List;import dao.ProductDao;import entity.Product;public class ProductDaoTest {	public static void main(String[] args) {		//TestInsert();		TestGet();		//TestGetList();		//TestGetProduct();		//TestUpdateProduct();		//TestDeleteProduct();	}	public static void TestInsert(){		ProductDao pd=new ProductDao();				Product product=new Product();		product.setName("mp9");		product.setPrice(800);				pd.insert(product);	}	public static void TestGet(){		ProductDao pd=new ProductDao();		Product product=new Product();				product=pd.getProduct(11);		System.out.println(product);	}	public static void TestGetList(){		ProductDao pd=new ProductDao();		List
 list=pd.getProductList(); for(Product product:list){ System.out.println(product); } } public static void TestGetProduct(){ ProductDao pd=new ProductDao(); List
 list=pd.getProductList(); list=pd.getProduct("mp"); for(Product product:list){ System.out.println(product); } } public static void TestUpdateProduct(){ ProductDao pd=new ProductDao(); Product product=new Product(); product.setId(4); product.setName("ipad"); product.setPrice(600); pd.updateProduct(product); } public static void TestDeleteProduct(){ ProductDao pd=new ProductDao(); Product product=new Product(); product.setId(4); pd.deleteProduct(product); }}
package common;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.Date;import java.util.List;/** * 数据库的工具类 * @author sally * */public class DbUtils {	public static Connection getConnection(){		Connection conn=null;				String url="jdbc:mysql://localhost:3306/test";		String user="root";		String password="root";		try {			Class.forName("com.mysql.jdbc.Driver");			conn=DriverManager.getConnection(url, user, password);		} catch (ClassNotFoundException e) {			// TODO Auto-generated catch block			e.printStackTrace();		} catch (SQLException e) {			// TODO Auto-generated catch block			e.printStackTrace();		}		return conn;	}	public static void close(Statement st,Connection conn,ResultSet rs){		close(rs);		close(st);		close(conn);			}	public static void close(Statement st,Connection conn){		close(st);		close(conn);			}	public static void close(Connection conn){				if(conn!=null){			try {				conn.close();			} catch (SQLException e) {				// TODO Auto-generated catch block				e.printStackTrace();			}		}	}	public static void close(Statement st){				if(st!=null){			try {				st.close();			} catch (SQLException e) {				// TODO Auto-generated catch block				e.printStackTrace();			}		}	}	public static void close(ResultSet rs){		if(rs!=null){			try {				rs.close();			} catch (SQLException e) {				// TODO Auto-generated catch block				e.printStackTrace();			}		}	}	public static void execute(String sql){		Connection conn=null;		Statement st=null;				try {			conn=DbUtils.getConnection();			st=conn.createStatement();			st.executeUpdate(sql);					} catch (SQLException e) {			// TODO Auto-generated catch block			e.printStackTrace();		}finally{			DbUtils.close(st, conn);		}	}	public static 
 T queryForObject(String sql,T t){ return null; } public static 
 List
 queryForList(String sql,T t){ return null; } }

转载于:https://my.oschina.net/u/2356966/blog/417408

你可能感兴趣的文章
WebSocket于HTTP 、WebSocket与Socket的区别
查看>>
C#打印条码BarTender SDK打印之路和离开之路(web平凡之路)
查看>>
mvn命令
查看>>
docker run 与docker start的区别
查看>>
SQL中Group By的使用
查看>>
我见过的 Objective-C, 讲的最通俗易懂的入门教程....
查看>>
Django下orm学习 一对多
查看>>
学习CSS的思路(转)
查看>>
Micropython TPYBoard V10X拼插编程实践之定时器 代码不精通?...
查看>>
thrift TTransport
查看>>
Grunt
查看>>
文件系统,快存储,对象存储
查看>>
Java判断对象类型是否为数组
查看>>
lucene创建索引
查看>>
【css】设置div位于浏览器的最底层,离用户最远
查看>>
python 基础复习 03
查看>>
Spark学习之基于MLlib的机器学习
查看>>
微信支付v3开发(5) 扫码并输入金额支付
查看>>
Android菜鸟的成长笔记(28)——Google官方对Andoird 2.x提供的ActionBar支持
查看>>
java值类型和引用类型
查看>>