Java_用户管理程序(使用mysql数据库)
2014-07-16 22:56
459 查看
·Java的初步学习终于告一段落,使用以下的用户管理程序来为自己暂时的Java学习画一个句号吧。(书中附带光盘中也有相关源代码)
IUserDAO.java:
IUserDAOImpl.java:
IUserDAOProxy.java:
DateBaseConnection.java:
DAOfactroy.java:
Menu.java:
UserOperate.java:
TestUserAdmin.java:
InputData.java:
User.java:
ps:数据库创建脚本:
运行效果:
这份代码给了我很大的启发,希望对大家也有所帮助。
IUserDAO.java:
package org.sjs.user.admin.dao; import java.util.List; import org.sjs.user.admin.vo.*; public interface IUserDAO { //表示数据库的增加操作 public boolean doCreate(User user) throws Exception; public boolean doUpdate(User user) throws Exception; //通过ID删除 public boolean doDelete(int id) throws Exception; //通过ID查询 public User findById(int id) throws Exception; //查询的时候,将返回一组对象 public List<User> findAll(String keyWord) throws Exception; }
IUserDAOImpl.java:
package org.sjs.user.admin.dao.impl; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; import java.util.List; import org.sjs.user.admin.dao.IUserDAO; import org.sjs.user.admin.vo.User; public class IUserDAOImpl implements IUserDAO { private Connection conn = null; public IUserDAOImpl(Connection connection){ this.conn = connection; } @Override //增加用户信息 (参数为 某一个用户!!) public boolean doCreate(User user) throws Exception { boolean flag = false; PreparedStatement pstmt = null ; String sql = "INSERT INTO user(name,sex,birthday) VALUES(?,?,?)"; try{ pstmt = this.conn.prepareStatement(sql); //所有内容从User中取得!!! pstmt.setString(1,user.getName()); pstmt.setString(2,user.getSex()); pstmt.setDate(3,new java.sql.Date(user.getBirthday().getTime())); if(pstmt.executeUpdate()>0){ flag = true; }else{ flag = false; } }catch(Exception e){ throw e ; }finally{ //不管如何,最终肯定 要执行数据库的关闭操作 if(pstmt!=null){ pstmt.close(); } } return flag; } @Override //删除用户信息(参数为 id) public boolean doDelete(int id) throws Exception { boolean flag = false; PreparedStatement pstmt = null ; String sql = "DELETE FROM user WHERE id=?"; try{ pstmt = this.conn.prepareStatement(sql); pstmt.setInt(1,id); if(pstmt.executeUpdate()>0){ flag = true; }else{ flag = false; } }catch(Exception e){ throw e ; }finally{ //不管如何,最终肯定 要执行数据库的关闭操作 if(pstmt!=null){ pstmt.close(); } } return flag; } @Override //更新用户信息(参数为某一个用户!更改id为某特定值的信息) public boolean doUpdate(User user) throws Exception { boolean flag = false; PreparedStatement pstmt = null ; String sql = "UPDATe user SET name=?,sex=?,birthday=? WHERE id=?"; try{ pstmt = this.conn.prepareStatement(sql); //所有内容从User中取得!!! pstmt.setString(1,user.getName()); pstmt.setString(2,user.getSex()); pstmt.setDate(3,new java.sql.Date(user.getBirthday().getTime())); pstmt.setInt(4,user.getId()); if(pstmt.executeUpdate()>0){ flag = true; }else{ flag = false; } }catch(Exception e){ throw e ; }finally{ //不管如何,最终肯定 要执行数据库的关闭操作 if(pstmt!=null){ pstmt.close(); } } return flag; } @Override //查找用户信息(通过参数id查找!) public User findById(int id) throws Exception { User user = null; PreparedStatement pstmt = null ; String sql = "SELECT id,name,sex,birthday FROM user WHERE id=?"; try{ pstmt = this.conn.prepareStatement(sql); //所有内容从User中取得!!! pstmt.setInt(1,id); ResultSet rs = pstmt.executeQuery(); while(rs.next()){ user = new User(); 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(pstmt!=null){ pstmt.close(); } } return user; } @Override //查找用户信息(通过参数关键字查找!) public List<User> findAll(String keyWord) throws Exception { List<User> all = new ArrayList<User>(); PreparedStatement pstmt = null ; String sql = "SELECT id,name,sex,birthday FROM user WHERE name LIKE ? OR sex LIKE ? OR birthday LIKE ?"; try{ pstmt = this.conn.prepareStatement(sql); //所有内容从User中取得!!! pstmt.setString(1,"%" + keyWord + "%"); pstmt.setString(2,"%" + keyWord + "%"); pstmt.setString(3,"%" + keyWord + "%"); ResultSet rs = pstmt.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)); all.add(user); //所有的内容,向集合中插入! } rs.close(); }catch(Exception e){ throw e ; }finally{ //不管如何,最终肯定 要执行数据库的关闭操作 if(pstmt!=null){ pstmt.close(); } } return all; } }
IUserDAOProxy.java:
package org.sjs.user.admin.dao.proxy; import java.util.List; import org.sjs.user.admin.dao.IUserDAO; import org.sjs.user.admin.dao.impl.IUserDAOImpl; import org.sjs.user.admin.dbc.DateBaseConnection; import org.sjs.user.admin.vo.User; public class IUserDAOProxy implements IUserDAO { private DateBaseConnection dbc = null; private IUserDAO dao = null; public IUserDAOProxy(){ this.dbc = new DateBaseConnection(); this.dao = new IUserDAOImpl(this.dbc.getConnection()); } @Override public boolean doCreate(User user) throws Exception { boolean flag = true; try{ flag = this.dao.doCreate(user); }catch(Exception e){ throw e; }finally{ this.dbc.close(); } // TODO Auto-generated method stub return flag; } @Override public boolean doUpdate(User user) throws Exception { boolean flag = true; try{ flag = this.dao.doUpdate(user); }catch(Exception e){ throw e; }finally{ this.dbc.close(); } // TODO Auto-generated method stub return flag; } @Override public boolean doDelete(int id) throws Exception { boolean flag = true; try{ flag = this.dao.doDelete(id); }catch(Exception e){ throw e; }finally{ this.dbc.close(); } // TODO Auto-generated method stub return flag; } @Override public User findById(int id) throws Exception { User user = null; try{ user = this.dao.findById(id); }catch(Exception e){ throw e; }finally{ this.dbc.close(); } // TODO Auto-generated method stub return user; } @Override public List<User> findAll(String keyWord) throws Exception { List<User> all =null; try{ all = this.dao.findAll(keyWord); }catch(Exception e){ throw e; }finally{ this.dbc.close(); } // TODO Auto-generated method stub return all; } }
DateBaseConnection.java:
/** * */ package org.sjs.user.admin.dbc; import java.sql.*; public class DateBaseConnection { public static final String DBDRIVER = "org.gjt.mm.mysql.Driver"; public static final String DBURL = "jdbc:mysql://localhost:3306/mldn?characterEncoding=utf8"; public static final String DBUSER = "root"; public static final String DBPASS = "mysqladmin"; private Connection conn = null; public DateBaseConnection(){ //设置驱动 try { Class.forName(DBDRIVER) ; } catch (ClassNotFoundException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } //连接数据库 try { conn = DriverManager.getConnection(DBURL,DBUSER,DBPASS); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public Connection getConnection(){ return this.conn; } //关闭数据库 public void close(){ if(this.conn!=null){ try { this.conn.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }
DAOfactroy.java:
package org.sjs.user.admin.factory; import org.sjs.user.admin.dao.IUserDAO; import org.sjs.user.admin.dao.proxy.IUserDAOProxy; public class DAOfactroy { public static IUserDAO getIUserDAOInstance(){ return new IUserDAOProxy(); } }
Menu.java:
package org.sjs.user.admin.menu; import org.sjs.user.admin.operate.UserOperate; import org.sjs.user.admin.util.InputData; public class Menu { public Menu(){ while(true){ this.show(); } } public void show(){ System.out.println("---------人员管理系统---------"); System.out.println(" 1.增加用户"); System.out.println(" 2.修改用户"); System.out.println(" 3.删除用户"); System.out.println(" 4.查询单个用户"); System.out.println(" 5.查询全部用户"); System.out.println(" 6.退出系统"); InputData input = new InputData(); int ch = input.getInt("\n请选择: ","请输入正确的选项!"); switch(ch){ case 1:{ UserOperate.insert(); break; } case 2:{ UserOperate.update(); break; } case 3:{ UserOperate.delete(); break; } case 4:{ UserOperate.findId(); break; } case 5:{ UserOperate.findAll(); break; } case 6:{ System.exit(1); break; } default:{ System.out.println("请选择正确的选项!"); break; } } } }
UserOperate.java:
package org.sjs.user.admin.operate; import java.util.Iterator; import java.util.List; import org.sjs.user.admin.factory.DAOfactroy; import org.sjs.user.admin.util.InputData; import org.sjs.user.admin.vo.User; public class UserOperate { public static void insert(){ User user = new User(); InputData input = new InputData(); user.setName(input.getString("请输入姓名:")); user.setSex(input.getString("请输入性别:")); user.setBirthday(input.getDate("请输入生日:","内容必须是日期(yyyy-mm-dd)")); try { DAOfactroy.getIUserDAOInstance().doCreate(user); } catch (Exception e) { e.printStackTrace(); } } public static void update(){ InputData input = new InputData(); int id = input.getInt("请输入要查询的编号:","编号必须是数字"); User user = null; try { user = DAOfactroy.getIUserDAOInstance().findById(id); } catch (Exception e) { e.printStackTrace(); } if(user != null){ user.setName(input.getString("请输入姓名(原姓名:" + user.getName() + "):")); user.setSex(input.getString("请输入性别(原姓名:" + user.getSex() + "):")); user.setBirthday(input.getDate("请输入生日(原姓名:" + user.getBirthday() + "):","内容必须是日期(yyyy-mm-dd)")); try { DAOfactroy.getIUserDAOInstance().doUpdate(user); } catch (Exception e) { e.printStackTrace(); } }else{ System.out.println("输入的编号不存在!"); } } public static void delete(){ InputData input = new InputData(); int id = input.getInt("请输入要删除的用户编号:","编号必须是数字"); try { DAOfactroy.getIUserDAOInstance().doDelete(id); } catch (Exception e) { e.printStackTrace(); } } public static void findId(){ InputData input = new InputData(); int id = input.getInt("请输入要查询的编号:","编号必须是数字"); User user = null; try { user = DAOfactroy.getIUserDAOInstance().findById(id); } catch (Exception e) { e.printStackTrace(); } if(user != null){ System.out.println(user); }else{ System.out.println("输入的编号不存在!"); } } public static void findAll(){ InputData input = new InputData(); String keyWord = input.getString("请输入要查询的关键字:"); List<User> allUser = null; try { allUser = DAOfactroy.getIUserDAOInstance().findAll(keyWord); } catch (Exception e1) { // TODO Auto-generated catch block e1.printStackTrace(); } Iterator<User> iter = allUser.iterator(); while(iter.hasNext()){ User user = iter.next(); System.out.println(user); } } }
TestUserAdmin.java:
package org.sjs.user.admin.test; import org.sjs.user.admin.menu.Menu; public class TestUserAdmin { public static void main(String args[]){ new Menu(); } }
InputData.java:
package org.sjs.user.admin.util; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class InputData { private BufferedReader buf = null; public InputData(){ this.buf = new BufferedReader(new InputStreamReader(System.in)); } public int getInt(String info,String err){ int i = 0; boolean flag = true; while(flag){ String str = this.getString (info); if(str.matches("\\d+")){ i = Integer.parseInt(str); flag = false; }else{ System.out.println(err); } } return i; } public String getString(String info){ String str = null; System.out.println(info); try { str = this.buf.readLine(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } return str; } public Date getDate(String info,String err){ Date date = null; boolean flag = true; while(flag){ String str = this.getString (info); if(str.matches("\\d{4}-\\d{2}-\\d{2}")){ try { date = new SimpleDateFormat("yyyy-mm-dd").parse(str); flag = false; } catch (ParseException e) { e.printStackTrace(); } }else{ System.out.println(err); } } return date; } }
User.java:
/** * */ package org.sjs.user.admin.vo; import java.util.Date; public class User { private int id; 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 String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } private String name ; private String sex ; private Date birthday ; public static void main(String[] args) { // TODO Auto-generated method stub } public String toString(){ return "姓名:" + this.name + " 性别:" + this.sex + " 生日:" + this.birthday; } }
ps:数据库创建脚本:
DROP TABLE user ; CREATE TABLE user( id INT AUTO_INCREMENT PRIMARY KEY , name VARCHAR(50) NOT NULL , sex VARCHAR(10) NOT NULL , birthday DATE );
运行效果:
这份代码给了我很大的启发,希望对大家也有所帮助。
相关文章推荐
- 字符串处理是许多程序中非常重要的一部分,它们可以用于文本显示,数据表示,查找键和很多目的.在Unix下,用户可以使用正则表达式的强健功能实现这些 目的,从Java1.4起,Java核心API就引入了java.util.regex程序包,它是一种有价值的基础
- Cent OS Pureftpd 使用Mysql数据库进行管理用户
- 使用“成员资格管理用户”以及“Forms 身份验证提供程序”保护需要授权才能访问的资源
- 7.使用JAVA程序连接至MySQL数据库
- 使用 Lotus Notes 和 Eclipse 管理和运行 Java 程序
- 使用comm在java程序中管理本地端口
- 如何使用java程序备份和恢复MySql数据库?
- 使用 SecurityManager 和 Policy File 管理 Java 程序的权限
- 使用数组制作简易的用户管理系统【java】
- 【mysql】备份篇2:使用java程序定期备份mysql数据库
- Java使用cookie和session管理用户状态
- MySQL数据库使用——MySQL用户管理
- Java入门小程序,使用Java转换用户输入字母为大写如何避开中文?
- 使用comm在java程序中管理本地端口
- 在Java程序中使用Oracle外部用户
- Rhino 是一个完全使用Java语言编写的开源JavaScript实现。Rhino通常用于在Java程序中,为最终用户提供脚本化能力。它被作为J2SE 6上的默认Java脚本化引擎。
- JPCAP:使用Java来sniffer网络数据包(包含例子程序)
- 如何使用 SUS 执行修补程序管理
- 使用Wrapper来将Java程序转化为NT系统服务(转)
- C Java PHP Perl Python 的程序代码美化工具(Pretty Print Program/Source Code Beautifier)使用