开始开发后台管理系统,理清了需求后,接下来就开始动工了,开工大吉!
一 安装工具
安装Jdk,安装Tomcat,安装编辑器工具eclipse,这些安装过程基本没有什么问题,按照网上的安装步骤很快就装完啦。
二 搭建开发环境
搭建一个java web的开发环境,看起来很简单的需求,但是在网上找了无敌雷的一个视频教程后发现这样是最麻烦的,然后请教了一个同事,就直接在eclipse中新建javaweb项目,然后进行简单的配置,这些网上都有,建成后的项目目录如下:
因为准备的是前后端分离的开发模式,其实主要关注的还是src文件夹,这里面是所有后台开发的接口。
项目搭建成功后引入了一些jar包(没有用maven,所以很多地方都需要自己添加jar),主要的是springmvc和spring的一些包,还有一些日志文件和转换json需要的jar包,这个依据个人口味自行添加。总之框架搭建起来,然后配置好tomcat的服务,这些对于善于解决问题的我来说(机智)总算解决啦。
三 建数据库
在自己本机安装了mysql,然后自己建库建表,在程序中写了一个测试连接的添加流程。测试通过!(其实这个中间遇到了很多问题,但都自己一一度娘解决了。。。)
四 开始开发
根据模块,新建实体类,写一些操作数据库的方法,写service,然后在controller中调用调通,经过上面的数据库测试连接后这些流程都差不多,最难的地方应该是卡在了如何用对象操作数据库部分了,折腾了好久。下面贴出最主要但是当时也头疼的一段通用代码以供之后参考:
@Repository
public class UserDAO {
@Resource
private SessionFactory sessionFactory;
private Session getSession() {
return sessionFactory.getCurrentSession();
}
public User getUserById(String id) {
return (User) this.getSession().createQuery("from User where id = ?").setParameter(0, id).uniqueResult();
}
public void addUser(User user) throws Exception {
this.getSession().save(user);
}
public void updateUser(User user)throws Exception {
this.getSession().update(user);
}
@SuppressWarnings("unchecked")
public List<UserList> searchUserByParam(String param) throws Exception {
String sql = "SELECT * FROM (select a.uid,a.username,a.password,a.role,b.rId,b.rType,b.rName from users a ,user_role b where a.role = b.rId) AS alldata where username like '%"+param+"%' or rName LIKE '%"+param+"%'";
List<UserList> ulist = (List<UserList>) this.getSession().createSQLQuery(sql)
.addScalar("uid", StandardBasicTypes.STRING)
.addScalar("username", StandardBasicTypes.STRING)
.addScalar("password", StandardBasicTypes.STRING)
.addScalar("role", StandardBasicTypes.INTEGER)
.addScalar("rId", StandardBasicTypes.INTEGER)
.addScalar("rType", StandardBasicTypes.STRING)
.addScalar("rName", StandardBasicTypes.STRING)
.setResultTransformer(Transformers.aliasToBean(UserList.class)).list();
return ulist;
}
public void deleteUserById(String id) throws Exception {
this.getSession().createQuery("delete User where id = ?").setParameter(0, id).executeUpdate();
}
@SuppressWarnings("unchecked")
public List<UserList> getUsers() throws Exception {
/*return (List<User>) this.getSession().createCriteria(User.class).list();*/
String sql = "select * from users a,user_role b where a.role = b.rId";
return this.getSession().createSQLQuery(sql)
.addScalar("uid", StandardBasicTypes.STRING)
.addScalar("username", StandardBasicTypes.STRING)
.addScalar("password", StandardBasicTypes.STRING)
.addScalar("role", StandardBasicTypes.INTEGER)
.addScalar("rId", StandardBasicTypes.INTEGER)
.addScalar("rType", StandardBasicTypes.STRING)
.addScalar("rName", StandardBasicTypes.STRING)
.setResultTransformer(Transformers.aliasToBean(UserList.class)).list();
}
}
五 测试
测试的问题因为没有写前端页面,所以请教了一下大乖同学,说是postman可以用来进行接口测试,所以就安装了一个chrome插件进行测试,中间工具不熟悉导致请求的json数据格式总是不对,最后仔细研究一下,总算知道了每个选项的意思
六 获奖感言
后台开发过程花费了3天左右的时间,成就感满满,以前在学校培训的那些经历也算是基础,所以理解起来也不难,好的开端是成功的一半(发现自己总是打鸡血)哈哈。