第一次java web项目作业实现客户信息管理系统
开发环境:1:MYSQL 5.4
2:myeclipse 10.1
3:apache-tomcat-7.0.91-windows-x64
实现的功能如下:
1)功能分析
通过了解用户的需求,得出以下的系统功能。
(1)添加客户信息功能。
将用户录入的客户信息保存起来,其中包括客户姓名、客户类型、供求产品以及建立客户
关系时间。
(2)查询客户信息功能。
在查询客户信息功能中包括按客户姓名、客户类型、供求产品以及建立客户时间段组合查
询,查询结果以列表形式显示,并实现分页功能。
(3)修改客户信息功能。
对指定的客户信息进行修改。
(4)删除客户信息功能。
对指定的客户信息进行删除,删除客户信息前要进行删除信息确认。
(5)登录与注册功能。
一:第一步,先建立所需的数据库
外加用户数据库
二:测试MySQL与myeclipse的连接
视图切换到 Database
参考
这里是引用
三:创建所需的jsp页面
四:创建所需要的的类
(1)数据库连接
(2)数据类
(3)Servlet类
五:功能分析
最基本的增删改查功能自不必多说,最主要的是查询的时候是组合查询,需要在数据库操作进行特殊处理,思路是利用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");