编写一个简单的用户管理系统(工厂代理模式)
2013-10-12 16:29
781 查看
1、编写User类-->User.java
2、定义IUser接口-->IUser.java
3、实现IUser接口 -->IUserImpl.java
4、接口的代理模式-->IUserImplPoxy.java
5、设计代理工厂factory
6、工具类-->InputData.java
7、用户操作-->UserOperate.java
8、连接数据库
9、用户界面
10、程序入口
package org.user; import java.util.Date; public class User { private int id; private String name; private String sex; private String password; private Date birthday; public void setPassword(String passwd){ this.password=passwd; } public String getPassword(){ return this.password; } public void setId(int id) { this.id = id; } public void setName(String name) { this.name = name; } public void setSex(String sex) { this.sex = sex; } public void setBirthday(Date birthday) { this.birthday = birthday; } public int getId() { return (this.id); } public String getName() { return (this.name); } public String getSex() { return (this.sex); } public Date getBirthday() { return (this.birthday); } public String toString() { String sep = System.getProperty("line.separator"); StringBuffer buffer = new StringBuffer(); buffer.append("id = "); buffer.append(id); buffer.append(" name = "); buffer.append(name); buffer.append(" sex = "); buffer.append(sex); buffer.append(" birthday = "); StringBuffer datebuf=new StringBuffer(); datebuf.append(birthday.getYear()+1900+"-"); datebuf.append(birthday.getMonth()+1+"-"); datebuf.append(birthday.getDate()); buffer.append(datebuf); return buffer.toString(); } public boolean isEmpty(){ if(this.id==0 &&this.name.isEmpty()&&this.sex.isEmpty() && this.birthday==null){ return true; }else{ return false; } } }
2、定义IUser接口-->IUser.java
package org.iuser; import org.user.User; import java.util.List; public interface IUser { public boolean doCreate(User user) throws Exception; public boolean doUpdate(User user) throws Exception; public boolean doDelete(int id) throws Exception; public User doFindById(int id) throws Exception; public List<User> doFindAll(String keyWord) throws Exception; }
3、实现IUser接口 -->IUserImpl.java
package org.iuserimpl; import org.iuser.IUser; import org.user.User; import java.util.List; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.List; import java.util.ArrayList; import org.user.User; public class IUserImpl implements IUser { private Connection conn=null; public IUserImpl(Connection conn){ this.conn=conn; } /** * Method doCreate * * * @param user * @throws Exception * * @return * */ public boolean doCreate(User user) throws Exception { // TODO: Add your code here boolean flag=true; PreparedStatement ps=null; String sql="insert into user (name,password,sex,birthday) values (?,?,?,?)"; try{ ps=this.conn.prepareStatement(sql); ps.setString(1,user.getName()); ps.setString(2,user.getPassword()); ps.setString(3,user.getSex()); ps.setDate(4, new java.sql.Date(user.getBirthday().getTime())); if(ps.executeUpdate()>0){ flag=true; }else{ flag=false; } }catch(Exception e){ throw e; }finally{ if(ps!=null){ try{ ps.close(); }catch(Exception e){ throw e; } } } return flag; } /** * Method doUpdate * * * @param user * @throws Exception * * @return * */ public boolean doUpdate(User user) throws Exception { // TODO: Add your code here boolean flag=false; PreparedStatement pstmt=null; String sql="update user set name=?,password=?,sex=?,birthday=? where id=?"; try{ pstmt=this.conn.prepareStatement(sql); pstmt.setString(1,user.getName()); pstmt.setString(2,user.getPassword()); pstmt.setString(3,user.getSex()); pstmt.setDate(4, new java.sql.Date(user.getBirthday().getTime())); pstmt.setInt(5,user.getId()); if(pstmt.executeUpdate()>0){ flag=true; } }catch(Exception e){ throw e; }finally{ if(pstmt!=null){ try{ pstmt.close(); }catch(Exception e){ throw e; } } // this.dbc.close(); } return flag; } /** * Method doDelete * * * @param id * @throws Exception * * @return * */ public boolean doDelete(int id) throws Exception { // TODO: Add your code here boolean flag=true; PreparedStatement ps=null; String sql="delete from user where id=?"; try{ ps=this.conn.prepareStatement(sql); ps.setInt(1,id); if(ps.executeUpdate()>0){ flag=true; }else{ flag=false; } }catch(Exception e){ throw e; }finally{ if(ps!=null){ try{ ps.close(); }catch(Exception e){ throw e; } } } return flag; } /** * Method doFindById * * * @param id * @throws Exception * * @return * */ public User doFindById(int id) throws Exception { // TODO: Add your code here User user=new User(); PreparedStatement ps=null; String sql="select id,name,sex,birthday from user where id=? "; try{ ps=this.conn.prepareStatement(sql); ps.setInt(1,id); ResultSet rs=ps.executeQuery(); if(rs.next()){ user.setId(rs.getInt(1)); user.setName(rs.getString(2)); user.setSex(rs.getString(3)); user.setBirthday(rs.getDate(4)); } rs.close(); }catch(Exception e){ throw e; }finally{ if(ps!=null){ try{ ps.close(); }catch(Exception e){ throw e; } } } return user; } /** * Method doFindAll * * * @param keyWord * @throws Exception * * @return * */ public List<User> doFindAll(String keyWord) throws Exception { // TODO: Add your code here List<User> allUser=new ArrayList<User>(); PreparedStatement ps=null; String sql = "SELECT id,name,sex,birthday FROM user WHERE name LIKE ? OR sex LIKE ? OR birthday LIKE ?"; try{ ps=this.conn.prepareStatement(sql); ps.setString(1,"%"+keyWord+"%"); ps.setString(2,"%"+keyWord+"%"); ps.setString(3,"%"+keyWord+"%"); ResultSet rs=ps.executeQuery(); while(rs.next()){ User user=new User(); user.setId(rs.getInt(1)); user.setName(rs.getString(2)); user.setSex(rs.getString(3)); user.setBirthday(rs.getDate(4)); allUser.add(user); } rs.close(); }catch(Exception e){ throw e; }finally{ if(ps!=null){ try{ ps.close(); }catch(Exception e){ throw e; } } } return allUser; } }
4、接口的代理模式-->IUserImplPoxy.java
package org.iuserimplpoxy; import org.iuser.IUser; import org.user.User; import java.util.List; import java.sql.Connection; import org.dataconnection.DataConnection; import org.iuserimpl.IUserImpl; import org.iuser.IUser; import java.util.ArrayList; public class IUserImplPoxy implements IUser { private Connection conn=null; private IUser dao=null; public IUserImplPoxy(){ DataConnection dbc=new DataConnection(); conn=dbc.GetConnection(); dao=new IUserImpl(conn); } /** * Method doCreate * * * @param user * @throws Exception * * @return * */ public boolean doCreate(User user) throws Exception { // TODO: Add your code here boolean flag=true; try{ flag=this.dao.doCreate(user); }catch(Exception e){ e.printStackTrace(); }finally{ if(conn!=null){ try{ conn.close(); }catch(Exception e){ e.printStackTrace(); } } } return flag; } /** * Method doUpdate * * * @param user * @throws Exception * * @return * */ public boolean doUpdate(User user) throws Exception { // TODO: Add your code here boolean flag=true; try{ flag=this.dao.doUpdate(user); }catch(Exception e){ e.printStackTrace(); }finally{ if(conn!=null){ try{ conn.close(); }catch(Exception e){ e.printStackTrace(); } } } return flag; } /** * Method doDelete * * * @param id * @throws Exception * * @return * */ public boolean doDelete(int id) throws Exception { // TODO: Add your code here boolean flag=true; try{ flag=this.dao.doDelete(id); }catch(Exception e){ e.printStackTrace(); }finally{ if(conn!=null){ try{ conn.close(); }catch(Exception e){ e.printStackTrace(); } } } return flag; } /** * Method doFindById * * * @param id * @throws Exception * * @return * */ public User doFindById(int id) throws Exception { // TODO: Add your code here User user=new User(); try{ user=this.dao.doFindById(id); }catch(Exception e){ e.printStackTrace(); }finally{ if(conn!=null){ try{ conn.close(); }catch(Exception e){ e.printStackTrace(); } } } return user; } /** * Method doFindAll * * * @param keyWord * @throws Exception * * @return * */ public List doFindAll(String keyWord) throws Exception { // TODO: Add your code here List<User> alluser=new ArrayList<User>(); try{ alluser=this.dao.doFindAll(keyWord); }catch(Exception e){ e.printStackTrace(); }finally{ if(conn!=null){ try{ conn.close(); }catch(Exception e){ e.printStackTrace(); } } } return alluser; } }
5、设计代理工厂factory
package org.factory; import org.iuser.IUser; import org.iuserimplpoxy.IUserImplPoxy; public class Factory { public static IUser getIntance(){ return new IUserImplPoxy(); } }
6、工具类-->InputData.java
package org.inputdata; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.IOException; import java.util.Date; import java.text.SimpleDateFormat; public class InputData { private BufferedReader buf=null; public InputData(){ buf=new BufferedReader(new InputStreamReader(System.in)); } public int getInt(String str,String err){ boolean flag=true; int i=0; while(flag){ String temp=this.getString(str); if(temp.matches("\\d+")){ i=Integer.parseInt(temp); flag=false; }else{ System.out.println(err); } } return i; } public String getString(String str){ boolean flag=true; String str1=null; while(flag){ System.out.print(str); try{ str1=buf.readLine(); }catch(IOException e){ e.printStackTrace(); } flag=false; } return str1; } public Date getDate(String str,String err){ boolean flag=true; String temp=null; Date date=null; while(flag){ temp=this.getString(str); if(temp.matches("\\d{4}-\\d{2}-\\d{2}")){ try{ date=new SimpleDateFormat("yyyy-MM-dd").parse(temp); }catch(Exception e){ e.printStackTrace(); } flag=false; }else{ System.out.println(err); } } return date; } }
7、用户操作-->UserOperate.java
package org.useroperate; import org.factory.Factory; import org.user.User; import org.inputdata.InputData; import java.util.List; import java.util.ArrayList; import java.util.Iterator; public class UserOperate { public static void insert(){ InputData in=new InputData(); User user=new User(); user.setName(in.getString("请输入姓名:")); user.setPassword(in.getString("请输入用户密码:")); user.setSex(in.getString("请输入性别:")); user.setBirthday(in.getDate("请输入生日:","请输入格式为YYYY-MM-DD!")); try{ if(Factory.getIntance().doCreate(user)){ System.out.println("增加用户成功!"); }else{ System.out.println("增加用户失败!"); } }catch(Exception e){ e.printStackTrace(); } } public static void update(){ InputData in=new InputData(); User user=new User(); user.setId(in.getInt("请输入用户ID:","请输入整数!")); user.setName(in.getString("请输入姓名:"));; user.setPassword(in.getString("请输入密码:")); user.setSex(in.getString("请输入性别:")); user.setBirthday(in.getDate("请输入生日:","请输入格式为YYYY-MM-DD!")); try{ Factory.getIntance().doUpdate(user); }catch(Exception e){ e.printStackTrace(); } } public static void delete(){ InputData in=new InputData(); int id=0; id=in.getInt("请输入用户ID:","请输入整数!"); try{ if(Factory.getIntance().doDelete(id)){ System.out.println("删除用户成功!"); }else{ System.out.println("删除用户失败!"); } }catch(Exception e){ e.printStackTrace(); } } public static void findById(){ User user=new User(); InputData in=new InputData(); int id=0; id=in.getInt("请输入用户ID:","请输入整数!"); try{ user=Factory.getIntance().doFindById(id); }catch(Exception e){ e.printStackTrace(); } if(!user.isEmpty()){ System.out.println(user); }else{ System.out.println("无用户!"); } } public static void findAll(){ List<User> alluser=new ArrayList<User>(); InputData in=new InputData(); String keyWord=null; keyWord=in.getString("请输入关键字:"); try{ alluser=Factory.getIntance().doFindAll(keyWord); }catch(Exception e){ e.printStackTrace(); } if(alluser!=null){ Iterator it=alluser.iterator(); while(it.hasNext()){ System.out.println(it.next()); } }else{ System.out.println("无用户!"); } } }
8、连接数据库
package org.dataconnection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Connection; public class DataConnection { private static final String DRIVERNAME="org.gjt.mm.mysql.Driver"; private static final String DATABASEURL="jdbc:mysql://localhost:3306/useManager"; private static final String DATANAME="root"; private static final String DATAPASS="root"; public DataConnection() { try{ Class.forName(DRIVERNAME); }catch(ClassNotFoundException e){ e.printStackTrace(); } } public Connection GetConnection(){ Connection conn=null; try{ conn=DriverManager.getConnection(DATABASEURL,DATANAME,DATAPASS); }catch(SQLException e){ e.printStackTrace(); } return conn; } }
9、用户界面
package org.menu; import org.useroperate.UserOperate; import org.inputdata.InputData; public class Menu { public Menu(){ while(true){ this.show(); } } private void show(){ System.out.println("=======================用户管理系统=================================="); System.out.println("\t\t1.增加用户"); System.out.println("\t\t2.更改用户"); System.out.println("\t\t3.删除用户"); System.out.println("\t\t4.查找单个用户"); System.out.println("\t\t5.查找所用用户"); System.out.println("\t\t6.退出系统"); System.out.println("=======================用户管理系统=================================="); int ch=0; InputData in=new InputData(); ch=in.getInt("请选择菜单:","请输入整数!"); switch(ch){ case 1: UserOperate.insert(); break; case 2: UserOperate.update(); break; case 3: UserOperate.delete(); break; case 4: UserOperate.findById(); break; case 5: UserOperate.findAll(); break; default : System.exit(0); } } }
10、程序入口
package org.mysql; import java.sql.Connection; import java.sql.Statement; import java.sql.ResultSet; import java.sql.DriverManager; import java.sql.SQLException; import java.util.Date; import org.user.User; import org.inputdata.InputData; import org.factory.Factory; import org.useroperate.UserOperate; import org.menu.Menu; import org.dataconnection.DataConnection; public class MySQL{ public static void main(String [] args){ Menu m=new Menu(); } }
相关文章推荐
- 第十二篇 Android 系统电话管理机制一--工厂模式和代理模式
- 用C++编写一个简单的员工工资管理系统~
- Java编写ArrayBasic制作一个简单的酒店管理系统
- 通过JAVA编写一个简单的雇员管理系统小项目
- Java编写ArrayBasic制作一个简单的酒店管理系统
- Android 系统电话管理机制一--工厂模式和代理模式
- vueleopard--一个简单的'vue iview webpack'管理系统
- 通过学习学生信息管理系统软件,C程序中,如何设计和编写一个应用系统?
- [置顶] 用Java GUI做一个简单的管理系统
- 练习一个简单的学生管理系统,不成熟,但是综合性很强
- 使用C++与SFML编写一个简单的撞球游戏Part5——对象管理
- 一个简单工厂模式的小例子
- 【小项目】:使用shell编写一个简单的告警系统
- 一个简单的信息管理系统
- C# 实现一个简单的图书管理系统(无数据库)新手教程1
- jsp之简单的用户管理系统(4,mvc模式)
- 通过学习学生信息管理系统软件,C程序中,如何设计和编写一个应用系统
- Python实现简单的用户管理系统
- Java web----一个简单的客户管理系统(CRM)
- 面向对象写一个简单的学生管理系统