写在前面的:一个人历时三周可算是完工了(本来有三个小伙伴,可他们才刚刚跟上老师讲课的节奏,so我变成了孤军奋战)。本来以为最多一周就可以完工的,结果这个项目还挺麻烦的。简单的说一下这个项目,本管理系统大致可分为三层Dao层、View层、Service层。Dao层运用的Mybatis和Oracle数据库完成的数据增删改查操作,难一点的操作就是分页、XML标签中的where和set标签以及涉及到了一点多表查询。Service层就是对view传进来的数据进行一个在Dao层的处理,如果有异常则抛出一个自定义的异常。View层就是一些界面,做的比较丑。。
//执行登陆操作
Login.login(name, passwd);
JOptionPane.showConfirmDialog(null, "登陆成功","温馨提示",JOptionPane.CLOSED_OPTION);
try {
Controller con = new ControllerService().selectcontroller(name);
//密码正确则进入主界面
//这里是从web容器中得来的思路,何不把用户这个对象当作session一样传入下一个界面。
new FrameView(con);
//关闭当前界面
frame.dispose();
} catch (Exception e) {
e.printStackTrace();
}
主界面中可以进行客户信息管理(增删改),商品信息管理(增删改),供应商信息管理(增删改),进货信息管理(增),库存退货信息管理(增),销售信息管理(增),顾客退货管理(增),查询客户信息,查询商品信息,查询供应商信息,查询销售信息,查询销售退货信息,进货信息查询,库存退货信息查询,销售排行榜,库存盘点,添加删除操作员,修改密码,修改角色。
//配置文件中的分页查询
<!-- 根据分页查询以及名字来查一条进货信息 -->
<select id="selectBuyGoodsByName" resultType="BuyGoods">
select *
from (
select rownum n,t.*
from h_buygoods t
where rownum <![CDATA[<]]> #{param3}
) a
where a.variety like #{param1} and a.n >= #{param2}
</select>
<!-- 更新商品 -->
<update id="updateComodity" parameterType="map">
update h_commodity
<set>
<if test="Small_name!=null">
Small_name=#{Small_name},
</if>
<if test="Brith_Place!=null">
Brith_Place=#{Brith_Place},
</if>
<if test="Work_Place!=null">
Work_Place=#{Work_Place},
</if>
<if test="Standard!=null">
Standard=#{Standard},
</if>
<if test="Package!=null">
Package=#{Package},
</if>
<if test="Bat_Number!=null">
Bat_Number=#{Bat_Number},
</if>
<if test="Approve_Number!=null">
Approve_Number=#{Approve_Number},
</if>
<if test="Pervisioner_all_name!=null">
Pervisioner_all_name=#{Pervisioner_all_name},
</if>
<if test="Remark!=null">
Remark=#{Remark},
</if>
</set>
where All_name=#{All_name}
</update>
总结一下:
1、早就想到了建表容易删表难,想要修改更难,所以一个项目在开始前一定要做好准备,后面想要修改真是太麻烦了。
2、Mybatis确实提高了很多效率,是一个不错的工具,提供的自己写sql语句很方便。
3、set标签和where标签 每一句set后面要记得”,” where句子中每一句前面写and或者or
4、我建得表中没有相互的连接,但是学的主键 外键有什么用呢?可能自己还没有想清楚一些知识。慢慢捉摸。
5、Dao层好多冗余的代码是不是可以简化一下呢,也需要后续慢慢捉摸。
6、判断一个输入框输入是否为空的方法,String s;
s==null||”“.equals(s);
锻炼了自己的数据库方面能力,挺好的,没有浪费了时间。这个项目满分是五分的话,可以给自己三分,加油。(项目源码以及其他上传到我的资源了)