文章目录
【注意事项】
每次修改都需要对修改工程的maven的Lifecycle进行先clean再install
1. saas-export - 添加company
页面展示:
export_system_service
子工程编写测试类编写测试添加方法
export_system_service\src\test\java\com\xgf\service\company\TestCompanyService.java
//测试save保存添加
@Test
public void test02(){
//1. 将表单数据通过companyService正确写入到数据库(全参构造器),id有UUID随机产生
// public Company(String id, String name, Date expirationDate, String address, String licenseId, String representative, String phone, String companySize, String industry, String remarks, Integer state, Double balance, String city) //构造器
Company company = new Company(null,"test02",new Date(),"address1","licenseId","representative","phone","companySize","industry","remarks",0,100.0,"city");
//保存
companyService.saveCompany(company);
}
export_system_service
子工程service接口和实现类
ICompanyService
void saveCompany(Company company);
CompanyServiceImpl
,通过UUID来生成id
@Override
public void saveCompany(Company company) {
//当前数据库的id不是自增长的。
//id类似于af4acb2e-c227-44bb-a3e8-3b64237d0ad4 生成uuid 全球唯一
String id = UUID.randomUUID().toString();
company.setId(id);
companyDao.save(company);
}
export_dao
子工程dao接口及其映射
ICompanyDao
void save(Company company);
ICompanyDao.xml
<insert id="save" parameterType="company">
insert into ss_company
(
id ,
name ,
expiration_date ,
address ,
license_id ,
representative ,
phone ,
company_size ,
industry ,
remarks ,
state ,
balance ,
city
)
values
(
#{id },
#{name },
#{expirationDate },
#{address },
#{licenseId },
#{representative },
#{phone },
#{companySize },
#{industry },
#{remarks },
#{state },
#{balance },
#{city}
)
</insert>
- 测试增加save方法,添加成功
运行结果:
Parameters: e5183d55-dd66-4974-b377-b469cfe39851(String), test02(String), 2020-10-29 17:21:42.222(Timestamp), address1(String), licenseId(String), representative(String), phone(String), companySize(String), industry(String), remarks(String), 0(Integer), 100.0(Double), city(String)
Updates: 1
export_web_manager
子工程编写controller
CompanyController
//${path}/company/add 技巧1:表单的name值对应实体类的变量名
@RequestMapping(path="/add",method = RequestMethod.POST)
public String add(Company company){
l.info("add company="+company);
companyService.saveCompany(company);
return "redirect:/company/toList";//跳转到列表页面
}
//打开添加页面,点击跳转添加页面显示在指定的iframe上
@RequestMapping(path="/toAdd",method = RequestMethod.GET)
public String toAdd(){
return "company/company-add";
}
company-add.jsp
页面参数name需要和类的属性名称一致(自动绑定)
<!--增加公司信息-->
<div class="panel panel-default">
<div class="panel-heading">企业信息</div>
<form id="editForm" action="${path}/company/add" method="post">
<input type="hidden" name="id" value="${company.id}">
<div class="row data-type" style="margin: 0px">
<div class="col-md-2 title">企业名称</div>
<div class="col-md-4 data">
<input type="text" class="form-control" placeholder="企业名称" name="name" value="${company.name}">
</div>
<div class="col-md-2 title">营业执照</div>
<div class="col-md-4 data">
<input type="text" class="form-control" placeholder="营业执照" name="licenseId" value="${company.licenseId}">
</div>
<div class="col-md-2 title">所在城市</div>
<div class="col-md-4 data">
<input type="text" class="form-control" placeholder="所在地" name="city" value="${company.city}">
</div>
<div class="col-md-2 title">企业地址</div>
<div class="col-md-4 data">
<input type="text" class="form-control" placeholder="企业地址" name="address" value="${company.address}">
</div>
<div class="col-md-2 title">法人代表</div>
<div class="col-md-4 data">
<input type="text" class="form-control" placeholder="法人代表" name="representative" value="${company.representative}">
</div>
<div class="col-md-2 title">联系电话</div>
<div class="col-md-4 data">
<input type="text" class="form-control" placeholder="联系电话" name="phone" value="${company.phone}">
</div>
<div class="col-md-2 title">公司规模</div>
<div class="col-md-4 data">
<input type="text" class="form-control" placeholder="公司规模" name="companySize" value="${company.companySize}">
</div>
<div class="col-md-2 title">所属行业</div>
<div class="col-md-4 data">
<input type="text" class="form-control" placeholder="所属行业" name="industry" value="${company.industry}">
</div>
<div class="col-md-2 title">状态</div>
<div class="col-md-4 data">
<select class="form-control select2" name="state" style="width: 100%;">
<option value="0" ${company.state==0 ? 'selected':''}>未审核</option>
<option value="1" ${company.state==1 ? 'selected':''}>已审核</option>
</select>
<input type="text" class="form-control" placeholder="状态" name="state" value="${company.state}">
</div>
<div class="col-md-2 title">余额</div>
<div class="col-md-4 data">
<input type="text" class="form-control" placeholder="余额" name="balance" value="${company.balance}">
</div>
<div class="col-md-2 title rowHeight2x">备注</div>
<div class="col-md-10 data rowHeight2x">
<textarea class="form-control" rows="3" name="remarks">${company.remarks}</textarea>
</div>
</div>
</form>
</div>
<!--添加公司信息/-->
<!--工具栏-->
<div class="box-tools text-center">
<button type="button" onclick='document.getElementById("editForm").submit()' class="btn bg-maroon">保存</button>
<button type="button" class="btn bg-default" onclick="history.back(-1);">返回</button>
</div>
2. saas-export - 查询company
export_system_service
子工程编写测试类编写测试查询方法
TestCompanyService
//测试查询所有
@Test
public void test01(){
//1. 编写了业务逻辑的测试
//ICompanyService companyService = new CompanyServiceImpl();
List<Company> list = companyService.findAll();
System.out.println(list);
}
export_system_service
子工程service接口和实现类
ICompanyService
List<Company> findAll();
CompanyServiceImpl
@Autowired
ICompanyDao companyDao;
public List<Company> findAll() {
return companyDao.findAll();
}
export_dao
子工程dao接口及其映射
ICompanyDao
List<Company> findAll();
ICompanyDao.xml
<!-- 数据库表字段名(列名)与类的成员变量不一致的解决办法
1. sql语句通过 as取别名,与类的成员变量一致
2. 使用mybatis的resultMap映射实现(column表的列名,property类的属性名映射
-->
<resultMap id="companyMap" type="company">
<id column="id" property="id"/>
<result column="expiration_date" property="expirationDate"/>
<result column="license_id" property="licenseId"/>
<result column="company_size" property="companySize"/>
</resultMap>
<select id="findAll" resultMap="companyMap">
select
*
from ss_company
</select>
-
测试增加findAll方法,查询成功
-
export_web_manager
子工程编写controller
CompanyController
//查询 1 打开列表页面
@RequestMapping(path="/toList",method = RequestMethod.GET)
public String toList(Model model){
//调service获取数据
List<Company> list = iCompanyService.findAll();
l.info("toList list="+list);
model.addAttribute("list",list);
//将数据发到页面,使用标签
return "company/company-list";
}
company-list.jsp
使用foreach与el表达式来显示数据
<!-- 数据表格 -->
<div class="table-box">
<!--工具栏-->
<div class="pull-left">
<div class="form-group form-inline">
<div class="btn-group">
<button type="button" class="btn btn-default" title="新建" onclick='location.href="${path}/company/toAdd"'><i class="fa fa-file-o"></i> 新建</button>
<button type="button" class="btn btn-default" title="删除" onclick='deleteById()'><i class="fa fa-trash-o"></i> 删除</button>
<button type="button" class="btn btn-default" title="刷新" onclick="window.location.reload();"><i class="fa fa-refresh"></i> 刷新</button>
</div>
</div>
</div>
<div class="box-tools pull-right">
<div class="has-feedback">
<input type="text" class="form-control input-sm" placeholder="搜索">
<span class="glyphicon glyphicon-search form-control-feedback"></span>
</div>
</div>
<!--工具栏/-->
<!--数据列表-->
<table id="dataList" class="table table-bordered table-striped table-hover dataTable">
<thead>
<tr>
<th class="" style="padding-right:0px;">
</th>
<th class="sorting">企业名称</th>
<th class="sorting">所在地</th>
<th class="sorting">地址</th>
<th class="sorting">企业法人</th>
<th class="sorting">联系方式</th>
<th class="sorting">所属行业</th>
<th class="sorting">状态</th>
<th class="sorting">余额</th>
<th class="text-center">操作</th>
</tr>
</thead>
<tbody>
<c:forEach items="${pi.list}" var="item">
<tr>
<%-- 隐藏域 通过id进行更新删除数据 --%>
<td><input name="ids" value="${item.id}" type="checkbox"></td>
<td>
${item.name}
</td>
<td>${item.city}</td>
<td>${item.address}</td>
<td>${item.representative}</td>
<td>${item.phone}</td>
<td>${item.industry}</td>
<td>${item.state ==0?'未审核':'已审核'}</td>
<td class="text-center">${item.balance}</td>
<td class="text-center">
<button type="button" class="btn bg-olive btn-xs" onclick='location.href="${path}/company/toEdit?id=${item.id}"'>编辑</button>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
3. saas-export - 删除company
export_system_service
子工程编写测试类编写测试删除方法
TestCompanyService
//测试按照UUID生成的id进行删除
@Test
public void test03(){
//删除
String id = "8ca554e3-0a46-4909-bbf9-ec6a84c17cd9";
companyService.deleteById(id);
}
export_system_service
子工程service接口和实现类
ICompanyService
void deleteById(String id);
CompanyServiceImpl
@Override
public void deleteById(String id) {
iCompanyDao.deleteById(id);
}
export_dao
子工程dao接口及其映射
ICompanyDao
void deleteById(String id);
ICompanyDao.xml
<delete id="deleteById" parameterType="string">
delete from ss_company where id = #{id}
</delete>
-
测试增加delete方法,删除成功
-
export_web_manager
子工程编写controller
CompanyController
//${path}/company/delete?id="+id
@RequestMapping(path="/delete",method = RequestMethod.GET)
public String delete(String id){
l.info("delete id="+id);
companyService.deleteById(id);
return "redirect:/company/toList";//跳转到列表页面
}
这里暂时只删除一个
<script>
function deleteById() {
var id = getCheckId()
if(id) {
if(confirm("你确认要删除此条记录吗?")) {
location.href="${path}/company/delete?id="+id;
}
}else{
alert("请勾选待处理的记录,且每次只能勾选一个")
}
}
</script>
4. saas-export - 修改company 回显
export_system_service
子工程编写测试类编写测试修改方法
TestCompanyService
//通过id修改更新数据
@Test
public void test05(){
//
String id = "7f2a7416-2ffc-4f8d-bb90-3e79f2b87170";
//查询
Company company = companyService.findById(id);
l.info(company+"7f2a7416-2ffc-4f8d-bb90-3e79f2b87170");
//模拟修改数据
if(company != null){
company.setCity("北京");
company.setName("test05修改name");
l.info(company+" ");
//将修改后的数据保存到数据库
companyService.updateCompany(company);
}else {
l.info("没有查询到指定id的company");
}
}
export_system_service
子工程service接口和实现类
ICompanyService
//修改查询
Company findById(String id);
//更新数据
void updateCompany(Company company);
CompanyServiceImpl
@Override
public Company findById(String id) {
Company company = iCompanyDao.findById(id);
return company;
}
@Override
public void updateCompany(Company company) {
//调用dao操作数据库
iCompanyDao.update(company);
}
export_dao
子工程dao接口及其映射
ICompanyDao
Company findById(String id);
void update(Company company);
ICompanyDao.xml
修改需要先通过id查询,然后再进行修改
<select id="findById" parameterType="string" resultType="company">
select
id,
name ,
expiration_date as expirationDate ,
address,
license_id as licenseId ,
representative ,
phone ,
company_size as companySize ,
industry ,
remarks ,
state,
balance ,
city
from ss_company
where id = #{id}
</select>
<update id="update" parameterType="company">
update ss_company
set name = #{name },
expiration_date= #{expirationDate},
address = #{address },
license_id = #{licenseId },
representative = #{representative },
phone = #{phone },
company_size = #{companySize },
industry = #{industry },
remarks = #{remarks },
state = #{state },
balance = #{balance },
city = #{city }
where id = #{id}
</update>
-
测试增加update方法,修改信息成功
-
export_web_manager
子工程编写controller
CompanyController
5.1 编写修改回显,点击修改跳转回显页面
company-update.jsp
@RequestMapping(path="/toEdit",method = RequestMethod.GET)
public String toEdit(){
return "company/company-update";
}
<!--企业信息-->
<div class="panel panel-default">
<div class="panel-heading">企业信息</div>
<form id="editForm" action="${path}/company/update" method="post">
<input type="hidden" name="id" value="${company.id}">
<div class="row data-type" style="margin: 0px">
<div class="col-md-2 title">企业名称</div>
<div class="col-md-4 data">
<input type="text" class="form-control" placeholder="企业名称" name="name" value="${company.name}">
</div>
<div class="col-md-2 title">营业执照</div>
<div class="col-md-4 data">
<input type="text" class="form-control" placeholder="营业执照" name="licenseId" value="${company.licenseId}">
</div>
<div class="col-md-2 title">所在城市</div>
<div class="col-md-4 data">
<input type="text" class="form-control" placeholder="所在地" name="city" value="${company.city}">
</div>
<div class="col-md-2 title">企业地址</div>
<div class="col-md-4 data">
<input type="text" class="form-control" placeholder="企业地址" name="address" value="${company.address}">
</div>
<div class="col-md-2 title">法人代表</div>
<div class="col-md-4 data">
<input type="text" class="form-control" placeholder="法人代表" name="representative" value="${company.representative}">
</div>
<div class="col-md-2 title">联系电话</div>
<div class="col-md-4 data">
<input type="text" class="form-control" placeholder="联系电话" name="phone" value="${company.phone}">
</div>
<div class="col-md-2 title">公司规模</div>
<div class="col-md-4 data">
<input type="text" class="form-control" placeholder="公司规模" name="companySize" value="${company.companySize}">
</div>
<div class="col-md-2 title">所属行业</div>
<div class="col-md-4 data">
<input type="text" class="form-control" placeholder="所属行业" name="industry" value="${company.industry}">
</div>
<div class="col-md-2 title">状态</div>
<div class="col-md-4 data">
<select class="form-control select2" name="state" style="width: 100%;">
<option value="0" ${company.state==0 ? 'selected':''}>未审核</option>
<option value="1" ${company.state==1 ? 'selected':''}>已审核</option>
</select>
<input type="text" class="form-control" placeholder="状态" name="state" value="${company.state}">
</div>
<div class="col-md-2 title">余额</div>
<div class="col-md-4 data">
<input type="text" class="form-control" placeholder="余额" name="balance" value="${company.balance}">
</div>
<div class="col-md-2 title rowHeight2x">备注</div>
<div class="col-md-10 data rowHeight2x">
<textarea class="form-control" rows="3" name="remarks">${company.remarks}</textarea>
</div>
</div>
</form>
</div>
<!--工具栏-->
<div class="box-tools text-center">
<button type="button" onclick='document.getElementById("editForm").submit()' class="btn bg-maroon">保存</button>
<button type="button" class="btn bg-default" onclick="history.back(-1);">返回</button>
</div>
<!--工具栏/-->
5.2 更新company
CompanyController
//${path}/company/update.do
@RequestMapping(path="/update",method = RequestMethod.POST)
public String update(Company company){ //表单的参数名要与实体类的变量名一样。
l.info("update company="+company);
iCompanyService.updateCompany(company);
return "redirect:/company/toList.do";//跳转到列表页面
}