第一次java web项目作业实现客户信息管理系统

开发环境:1:MYSQL 5.4

2:myeclipse 10.1

3:apache-tomcat-7.0.91-windows-x64

实现的功能如下:

1)功能分析

通过了解用户的需求,得出以下的系统功能。

(1)添加客户信息功能。

将用户录入的客户信息保存起来,其中包括客户姓名、客户类型、供求产品以及建立客户

关系时间。

(2)查询客户信息功能。

在查询客户信息功能中包括按客户姓名、客户类型、供求产品以及建立客户时间段组合查

询,查询结果以列表形式显示,并实现分页功能。

(3)修改客户信息功能。

对指定的客户信息进行修改。

(4)删除客户信息功能。

对指定的客户信息进行删除,删除客户信息前要进行删除信息确认。

(5)登录与注册功能。

一:第一步,先建立所需的数据库

java用户部门 javaweb用户管理系统_mvc


外加用户数据库

java用户部门 javaweb用户管理系统_java_02

二:测试MySQL与myeclipse的连接
视图切换到 Database
参考

这里是引用

三:创建所需的jsp页面

java用户部门 javaweb用户管理系统_mvc_03


四:创建所需要的的类

(1)数据库连接

java用户部门 javaweb用户管理系统_mysql_04


(2)数据类

java用户部门 javaweb用户管理系统_mvc_05


(3)Servlet类

java用户部门 javaweb用户管理系统_mvc_06


五:功能分析

最基本的增删改查功能自不必多说,最主要的是查询的时候是组合查询,需要在数据库操作进行特殊处理,思路是利用if语句判断,str.append()函数修改sql语句。

再一个难点就是分页查询,利用servlet进行控制,结合sql语句中的limt属性就能实现分页

Servlet部分代码

int start=0;
		int count=5;
		 try {
	            start = Integer.parseInt(request.getParameter("start"));
	        } catch (NumberFormatException e) {
	            // 当浏览器没有传参数start时
	        }
	 
	        int next = start + count;
	        int pre = start - count;
	 
	        int total = connection.getTotal();//得到数据从条数
	 
	        int last;// 假设总数是50,是能够被5整除的,那么最后一页的开始就是45
	        if (0 == total % count)
	            last = total - count;
	     // 假设总数是51,不能够被5整除的,那么最后一页的开始就是50
	        else
	            last = total - total % count;
	 
	        pre = pre < 0 ? 0 : pre;
	        next = next > last ? last : next;
	 
	        request.setAttribute("next", next);
	        request.setAttribute("pre", pre);
	        request.setAttribute("last", last);

数据库操作部分代码

//按条件查询信息,并实现分页查询
		public static ArrayList<Info> getinfo(String cname,String leixing,String chanpin,String ctime,int start,int count){
			ArrayList<Info> ul=new ArrayList<Info>();
			
			StringBuilder sql=new StringBuilder("select * from tb_customer where 1=1");
			if(!cname.equals(""))
				sql.append(" and customer_Name='"+cname+"'");
			if(!leixing.equals(""))
				sql.append(" and customer_Type='"+leixing+"'");
			if(!chanpin.equals(""))
				sql.append(" and customer_Info='"+chanpin+"'");
			if(!ctime.equals(""))
				sql.append(" and customer_Date='"+ctime+"'");
			open();
			try {
				sql.append(" limit ?,?");
				System.out.print(sql.toString());
				PreparedStatement ps =(PreparedStatement) con.prepareStatement(sql.toString());
	            ps.setInt(1, start);
	            ps.setInt(2, count);
	            rs = ps.executeQuery();
				while(rs.next()){
					Info c_info=new Info();
					c_info.setCid(rs.getInt(1));
					c_info.setCname(rs.getString(2));
					c_info.setLeixing(rs.getString(3));
					c_info.setChanpin(rs.getString(4));
					c_info.setCtime(rs.getString(5));
					c_info.setCtel(rs.getString(6));
					c_info.setCmobile(rs.getString(7));
					ul.add(c_info);
				}
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				System.out.print("查询出错!!");
			}
			
			close();
			return ul;
			
		}

六:部署运行。

总结:一个很简单的实例,仅仅就是为了实现增删改查,但是在实现的过程中也是遇到了不少的问题,值得一提的是在没有利用过滤器的情况下,如果前段传来的是中文,那么就要利用下面的语句将中文转码。

String cname=new String(request.getParameter("cname").getBytes("ISO-8859-1"),"utf-8");