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 ListgetProductList(){ 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(); Listlist=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 staticT queryForObject(String sql,T t){ return null; } public static List queryForList(String sql,T t){ return null; } }