oracle:
thin:
@127.0.0.1:
1521:
orcl"
userId="mars"password="mars">
--domain生成位置-->
--数据库映射文件生成位置-->
-- enableSubPackages:
是否让schema作为包的后缀 -->
--DAO生成位置-->
--type:
XMLMAPPER,ANNOTATEDMAPPER-->
--数据库表-->
运行bulid-mybatis.xml文件
xmlversion="1.0"encoding="UTF-8"?
>
自动生成domain文件
com.newheyd.practice.domain.Practice.javacom.newheyd.practice.domain.PracticeExample.java
自动生成dao文件
com.newheyd.practice.dao.PracticeMapper.java
PracticeMapperextendsIMapperDAO接口继承IMapper接口DAO中的接口实现类即可自动被mybatis注册
自动生成数据库映射文件config.mapper.practice.PracticeMapper.xml
service
service接口
packagecom.newheyd.practice.service;
publicinterfaceIPracticeService{
publicintinsert(Practicepractice);
publicintupdate(Practicepractice);
publicintdelete(PracticeExamplepracticeExample);
publicListselect(PracticeExamplepracticeExample);
publicintcount(PracticeExamplepracticeExample);
publicPracticeselectByPrimaryKey(Longi);
…..//根据项目需求自行添加方法
}
service接口实现类
packagecom.newheyd.practice.service.impl;
@Service
publicclassPracticeServiceImplextendsBaseServiceimplementsIPracticeService{
@Resource
privatePracticeMapperpracticeMapper=null;
@Override
publicintinsert(Practicepractice){
returnpracticeMapper.insert(practice);
}
@Override
publicintupdate(Practicepractice){
intresult=practiceMapper.updateByPrimaryKeySelective(practice);
returnresult;
}
@Override
publicintdelete(PracticeExamplepracticeExample){
intresult=practiceMapper.deleteByExample(practiceExample);
returnresult;
}
@Override
publicListselect(PracticeExamplePracticeExample){
returnpracticeMapper.selectByExample(PracticeExample);
}
@Override
publicintcount(PracticeExamplePracticeExample){
intresult=practiceMapper.countByExample(PracticeExample);
returnresult;
}
@Override
publicPracticeselectByPrimaryKey(Longid){
returnpracticeMapper.selectByPrimaryKey(id);
}
}
controller
packagecom.newheyd.practice.controller;
@Controller
@RequestMapping("/practice")
publicclasspracticeControllerextendsBaseController{
@Resource
privatefinalIPracticeServicepracticeService=null;
@RequestMapping("/list")
@ResponseBody
publicResultlist(StringtestName,StringtestUser,Pagepage){
PracticeExamplepracticeExample=newPracticeExample();
Criteriac=practiceExample.or();
if((testName!
=null)&&!
("".equals(testName))){
c.andTestNameLike(testName);
}
if((testUser!
=null)&&!
("".equals(testUser))){
c.andTestUserLike(testUser);
}
practiceExample.setOrderByClause("pra.iddesc");
practiceExample.setPage(page);//将分页类set入查询条件类,若不set则无分页
Listlist=practiceService.select(practiceExample);
//System.out.println(list.size());
returnnewListResult(page.getTotalRecord(),list);
}
@RequestMapping("/save")
@ResponseBody
publicResultsave(@RequestBodyPracticepractice){
practice.setTestName(practice.getTestName());
practice.setTestUser(getCurrentUser().getName());
practice.setTestState(practice.getTestName());
practice.setTestDate(newDate());
practiceService.insert(practice);
returnnewOperResult(true,"保存成功!
");
}
@RequestMapping("/update")
@ResponseBody
publicResultupdate(@RequestBodyPracticepractice){
if(practice.getId()!
=null){
practiceService.update(practice);
}
returnnewOperResult(true,"更新成功!
");
}
@RequestMapping("/delete")
@ResponseBody
publicResultdelete(@RequestBodyListids)throwsMarsException{
PracticeExamplepracticeExample=newPracticeExample();
practiceExample.or().andIdIn(ids);
practiceService.delete(practiceExample);
returnnewOperResult(true,"删除成功!
");
}
}
方法介绍
list:
列表查询,参数:
查询条件,page对象
save:
添加保存,参数:
新增的对象
update:
修改保存,参数:
修改的对象
delete:
删除,参数:
删除的对象ID
(3)前台代码编写(ExtJS4)
1.model
Ext.define('MARS.model.practice.PracticeModel',{
extend:
'Ext.data.Model',
fields:
[{
name:
'id',
type:
'Long',
sortable:
true
},{
name:
'testName',
type:
'string',
sortable:
true
},{
name:
'testDate',
type:
'Date',
convert:
function(value){
vard=null;
if(value!
=null){
d=newDate();
d.setTime(value);
}
returnd;
}
},{
name:
'testUser',
type:
'String',
sortable:
true
},{
name:
'testState',
type:
'String',
sortable:
true
}
]
}
)
2.store
Ext.define('MARS.store.practice.PracticeStore',{
extend:
'MARS.store.BaseStore',
model:
'MARS.model.practice.PracticeModel'
});
view
添加页面
Ext.define('MARS.view.pratice.PracticeAdd',{
extend:
'Ext.form.Panel',
alias:
'widget.practiceadd',
buttonAlign:
'center',
frame:
true,
defaultType:
'textfield',
items:
[{
name:
'testName',
fieldLabel:
'测试名称',
afterLabelTextTpl:
'*',
allowBlank:
false
},{
name:
'testUser',
fieldLabel:
'测试用户',
afterLabelTextTpl:
'*',
allowBlank:
false
},{
name:
'testState',
fieldLabel:
'测试状态',
afterLabelTextTpl:
'*',
allowBlank:
false
},
{
xtype:
'datefield',
name:
'testDate',
fieldLabel:
'测试时间',
format:
'Y-m-d',
editable:
false
}
],
buttons:
[{
text:
'提交',
formBind:
true,//所有验证都通过后才可点击
disabled:
true,
action:
'create'
},{
text:
'重置',
handler:
function(){
this.up('form').getForm().reset();
}
}]
});
编辑页面
Ext.define('MARS.view.practice.PracticeEdit',{
extend:
'Ext.panel.Panel',
alias:
'widget.practiceedit',
buttonAlign:
'center',
frame:
true,
defaultType:
'textfield',
items:
[{
xtype:
'hidden',
name:
'id'
},{
name:
'testName',
fieldLabel:
'测试名称',
afterLabelTextTpl:
'*',
allowBlank:
false
//表单项只读
},{
name:
'testUser',
fieldLabel:
'测试用户',
afterLabelTextTpl:
'*',
allowBlank:
false
},{
name:
'testState',
fieldLabel:
'测试状态',
afterLabelTextTpl:
'*',
allowBlank:
false
},{
xtype:
'datefield',
name:
'testDate',
fieldLabel:
'测试时间',
format:
'Y-m-d',
editable:
false
}
],
buttons:
[{
text:
'提交',
formBind:
true,//所有验证都通过后才可点击
disabled:
true,
action:
'update'
},{
text:
'重置',
handler:
function(){
this.up('form').getForm().reset();
}
}]
});
展示页面
Ext.define('MARS.view.practice.practiceView',{
extend:
'Ext.panel.Panel',
alias:
'widget.practiceview',
buttonAlign:
'center',
frame:
true,
items:
[{
xtype:
'fieldset',
title:
'基本信息',
items:
[{
xtype:
'hidden',
name: