栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java高级06:对搭建项目的继续完善

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java高级06:对搭建项目的继续完善

一、企业中项目开发的步骤

1.需求分析(准确)、需求挖掘(扩展):对接客户的

2.原型设计(Axure、html、jpg):给客户展示并讨论的

3.项目经理进行任务分配(团队精神)

4.底层架构(项目经理)、项目研发(团队正式写代码) 

5.上传到测试环境下(测试环境和生产环境一样,会有测试人员对代码进行单元黑盒白盒···测试,写好自己的程序说明书给测试人员)

6.部署项目到云端生产环境下(项目正式结束,客户开始使用)

二、项目实战 1.数据库的搭建

新建一个系统用户表(记得写注释)

2.mapper里新建一个xml

右键mapper-》copy qualified name(复制路径加名)-》粘贴到如图红框

加一个.

右键xml自己-》copy(复制名称)-》粘贴到.后面

去掉后缀名.xml





	
	
		select id,loginname,password,username,age,sex,tel,email,wxnum,pic from sys_user_info 
	


3.model里新建一个实体类

model-》new -》class-》名字是刚刚xml去掉Mapper

里面写所有表中的所有属性,和自动生成getset方法和重写

package com.demo.model;

public class SysUsersInfo {
	private String id;
	private String loginname;
	private String password;
	private String username;
	private String age;
	private String sex;
	private String tel;
	private String email;
	private String wxnum;
	private String pic;
	public SysUsersInfo(String id, String loginname, String password, String username, String age, String sex,
			String tel, String email, String wxnum, String pic) {
		super();
		this.id = id;
		this.loginname = loginname;
		this.password = password;
		this.username = username;
		this.age = age;
		this.sex = sex;
		this.tel = tel;
		this.email = email;
		this.wxnum = wxnum;
		this.pic = pic;
	}
	public SysUsersInfo() {
		super();
		// TODO Auto-generated constructor stub
	}
	public String getId() {
		return id;
	}
	public void setId(String id) {
		this.id = id;
	}
	public String getLoginname() {
		return loginname;
	}
	public void setLoginname(String loginname) {
		this.loginname = loginname;
	}
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getAge() {
		return age;
	}
	public void setAge(String age) {
		this.age = age;
	}
	public String getSex() {
		return sex;
	}
	public void setSex(String sex) {
		this.sex = sex;
	}
	public String getTel() {
		return tel;
	}
	public void setTel(String tel) {
		this.tel = tel;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public String getWxnum() {
		return wxnum;
	}
	public void setWxnum(String wxnum) {
		this.wxnum = wxnum;
	}
	public String getPic() {
		return pic;
	}
	public void setPic(String pic) {
		this.pic = pic;
	}
}
4.mapper里新建一个接口

mapper-》new -》interface-》名字和刚刚xml同名

package com.demo.mapper;

import java.util.List;

import com.demo.model.SysUsersInfo;

public interface SysUsersInfoMapper {
	//实现xml里的方法
	public List findAll();
}
 5.写service

service-》new -》interface-》名字是刚刚xml去掉Mapper+Service

 里面是mapper里的方法直接复制

package com.demo.service;

import java.util.List;

import com.demo.model.SysUsersInfo;

public interface SysUsersInfoService {
	//mapper里的方法直接复制
	public List findAll();
}
 6.创建实现类

serviceImpl-》new -》class-》名字是刚刚xml去掉Mapper+Service+Impl

继承自SysUsersInfoService

package com.demo.serviceImpl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.demo.mapper.SysUsersInfoMapper;
import com.demo.model.SysUsersInfo;
import com.demo.service.SysUsersInfoService;
//说明这是一个业务类
@Service
public class SysUsersInfoServiceImpl implements SysUsersInfoService{

	//注入
	@Autowired
	//容器-不仅有临时存储还有实例化等功能
	private SysUsersInfoMapper mapper;
	
	
	@Override
	public List findAll() {
		return mapper.findAll();
	}

}
 7.写controller

controller-》new -》class-》名字是刚刚xml去掉Mapper+Controller

package com.demo.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import com.demo.service.SysUsersInfoService;

@Controller
//声明
public class SysUsersInfoController {
	@Autowired
	//注入和service建立关系
	private SysUsersInfoService service;
	
	//映射关系
	@RequestMapping(value="sys_user_info_view")
	public String sys_user_info_view(){
		
		return "";
	}
}
8.创建jsp

 先在主页旁边创建一个文件夹

再在文件夹里创建jsp

右键-》new-》other-》jsp 

9.测试

controller里

package com.demo.controller;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import com.demo.model.SysUsersInfo;
import com.demo.service.SysUsersInfoService;

@Controller
//声明
public class SysUsersInfoController {
	@Autowired
	//注入和service建立关系
	private SysUsersInfoService service;
	
	//映射关系
	@RequestMapping(value="sys_user_info_view")
	public String sys_user_info_view(HttpServletRequest request){//request方法
		List list = service.findAll();
		request.setAttribute("list", list);//request方法将list给界面
		return "sys_user_info/view";//地址,记得框架里去掉了.jsp
	}
}

地址为controller里value里+action

http://localhost:8080/cc_projectDemo1029/sys_user_info_view.action

10.导入html模板

步骤:

(1)将jsp里的内容替换成模板的

(2)注意修改css和lib和js等的路径

(3)根据需要删减更改页面内容

(4)引入核心包方便遍历数据库中数据

 (5)实现展示功能:

(6)图片地址及连接

 

三、继续实现添加功能 1.SysUsersInfoMapper.xml里

 2.SysUsersInfoMapper.java里

 3.SysUsersInfoService.java直接复制

4. SysUsersInfoServiceImpl.java里

5.SysUsersInfoController.java里先写一个跳转

 6.处理jsp页面 (1)处理css、js、lib地址 (2)修改页面--验证是否为空required="" lay-verify="loginname"是h5中方法,可写在input里

                  autocomplete="off" >

或者用ajax

首先在button里写type提交类型为submit

 然后在form里οnsubmit="return check_from()"提交表单时先到check_from()方法中

开始写check_from()方法,放在scrip里 

(3)修改页面--清除缓存autocomplete="off"

                  autocomplete="off" >

(4)修改页面--提交成功lay-filter="add" lay-submit=""可写在增加按钮处


        增加

(5)修改页面-form表单提交方式为method="post" (6)SysUsersInfoController里正式写增加方法

首先导入写好的CreateUUID方法随机生成id

package com.demo.common;

import java.util.UUID;
//创建随机ID
public class CreateUUID {

	public static String getuuid() {
		return UUID.randomUUID().toString().replaceAll("-", "");
	}
}

使用方法:

//随机id
String id=CreateUUID.getuuid();

然后使用java中的流来处理图片上传

//流来处理文件上传
		//MultipartFile pic接受前端的二进制流
		String path=request.getServletContext().getRealPath("/upload");//接受地址
		File dir = new File(path);//创建流
		dir.mkdirs();//没有对应路径创建文件夹
		String srcName=pic.getOriginalFilename();//获取文件名字
		File dest = new File(dir,srcName);//dir是指向文件,srcName是上传的文件
		//上传
		pic.transferTo(dest);//把异常抛出
		//文件名字存储到数据库中
		s.setPic(srcName);

最后把整个s存储到数据库

//最后把整个s存储到数据库
		boolean b=service.add(s);
		if(b){
			request.setAttribute("msg", "success");
		}else{
			request.setAttribute("msg", "error");
		}

整体controller

package com.demo.controller;

import java.io.File;
import java.io.IOException;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;

import com.demo.common.CreateUUID;
import com.demo.model.SysUsersInfo;
import com.demo.service.SysUsersInfoService;

@Controller
//声明
public class SysUsersInfoController {
	@Autowired
	//注入和service建立关系
	private SysUsersInfoService service;
	
	//映射关系//针对数据库里用户表进行查询
	@RequestMapping(value="sys_user_info_view")
	public String sys_user_info_view(HttpServletRequest request){//request方法
		List list = service.findAll();
		request.setAttribute("list", list);//request方法将list给界面
		return "sys_user_info/view";//地址,记得框架里去掉了.jsp
	}
	
	//预添加界面//针对数据库里用户表进行预创建方法
	@RequestMapping(value="sys_user_info_pre_add")
	public String sys_user_info_pre_add(HttpServletRequest request){//request方法
		return "sys_user_info/add";//地址,记得框架里去掉了.jsp
	}
	
	//正式添加的方法,创建数据
	@RequestMapping(value="sys_user_info_add")
	public String sys_user_info_add(HttpServletRequest request,SysUsersInfo s,MultipartFile pic) throws IllegalStateException, IOException{//request方法
		//随机id
		String id=CreateUUID.getuuid();
		s.setId(id);
		
		//流来处理文件上传
		//MultipartFile pic接受前端的二进制流
		String path=request.getServletContext().getRealPath("/upload");//接受地址
		File dir = new File(path);//创建流
		dir.mkdirs();//没有对应路径创建文件夹
		String srcName=pic.getOriginalFilename();//获取文件名字
		File dest = new File(dir,srcName);//dir是指向文件,srcName是上传的文件
		//上传
		pic.transferTo(dest);//把异常抛出
		//文件名字存储到数据库中
		s.setPic(srcName);
		
		//最后把整个s存储到数据库
		boolean b=service.add(s);
		if(b){
			request.setAttribute("msg", "success");
		}else{
			request.setAttribute("msg", "error");
		}
		
		
		return "sys_user_info/add";//地址,记得框架里去掉了.jsp
	}
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/583741.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号