用到的技术 oracle数据库+mybatis+spring+js+angularjs+jquery+html
在angularjs框架下,oracle,ka,service,controller,HTML五层数据传输。ng-controller对所属HTML页面的控制,index.html内套所含页面,index引入js程序和公共HTML,app.js控制跳转路由。
oracle数据库部分:
存储过程:
1.提前编译好的,运行速度快(密集访问才能体现)
2.把所有对数据库的操作全融合进存储过程里,前台只要建立一条通信通道就可以了
3.公司有自己的书写规范,前五个固定参数和两个游标rc1\rc2
SQL语句:
一些技巧,merge into,字符串操作,COLUMN_VALUE,database link导入数据,转义字符等等。
mybatis:
三种方式
第一种最常用:
commandcontroller.js→commandservice.js→opp-command-service.xml→opp-command-bex.xml→mapper-command.xml→oracle数据库
commandcontroller.js:
CommandService.getfenzuygbh($sessionStorage.cmdfz[idx].FZBH).then(function(data){
$scope.ygbhs = data.answers[0];
});
commandservice.js:
service.getfenzuygbh = function(fzbh) {
var params = {
service: '18001414',
v_fzbh: fzbh
}
return myHttp.post({
req: params
);
}
opp-command-service.xml:
<service service_code="18001414" service_name="获取分组员工编号">
<businesses>
<service_business business_code="getfenzuygbh" business_method=""
serial_no="1" business_name="获取分组员工编号" business_type="1" />
</businesses>
</service>
opp-command-bex.xml:
<bex bex_code="getfenzuygbh" bex_type="4" page_mode="0" bex_cate="1" attr1="getfenzuygbh"></bex>
mapper-command.xml:
如果是普通SQL:
<select id="getfenzuygbh" parameterType="hashmap" resultType="java.util.HashMap">
select * from t_ygzcy where fzbh = ${v_fzbh}
</select>
如果是存储过程:
<select id="getfenzuygbh" statementType="CALLABLE" parameterType="hashmap" resultType="java.util.HashMap">
<![CDATA[ call up_mid_10000001(${v_ygbh},
0,
NULL,
'',
${v_jgid},
-1,
#{RC1,mode=OUT,jdbcType=CURSOR,javaType=java.sql.ResultSet,resultMap=ProcResultMap},
#{RC2,mode=OUT,jdbcType=CURSOR,javaType=java.sql.ResultSet,resultMap=ProcResultMap})
]]>
</select>
第二种:
commandcontroller.js→commandservice.js→opp-command-service.xml→command-atom.xml→CommandAtom.java→opp-command-bex.xml→mapper-command.xml→oracle数据库
使用java代码编辑逻辑部分,代替存储过程。
commandcontroller.js,commandservice.js与上面写法一样。
opp-command-service.xml;
<service service_code="18001405" service_name="saveCommand新建指令">
<businesses>
<service_business business_code="saveCommandAtom" business_method=""
serial_no="1" business_name="saveCommandAtom" business_type="3" />
</businesses>
</service>
command-atom.xml:
<atom atom_code="saveCommandAtom" atom_name="saveCommandAtom"
atom_class="com.sz.business.atom.customer.CommandAtom"
atom_method="saveCommand" attr1="" attr2=""/>
CommandAtom.java:
//逻辑代码就不写了,只写调用代码
int iRetCode = FrameDao.doBexCall("saveCommand", params, result);
iRetCode = FrameDao.doBexCall("saveCmdJsr", map, result);
iRetCode = FrameDao.doBexCall("saveCmdFj", map, result);
opp-command-bex.xml,mapper-command.xml与上面一样:
<bex bex_code="saveCommand" bex_type="4" page_mode="0"
bex_cate="1" attr1="saveCommand"></bex>
<bex bex_code="saveCmdJsr" bex_type="4" page_mode="0"
bex_cate="1" attr1="saveCmdJsr"></bex>
<bex bex_code="saveCmdFj" bex_type="4" page_mode="0"
bex_cate="1" attr1="saveCmdFj"></bex>
<insert id="saveCommand" parameterType="hashmap">
insert into .......
</insert>
<insert id="saveCmdJsr" parameterType="hashmap">
insert into .......
</insert>
<insert id="saveCmdFj" parameterType="hashmap">insert into ....... </insert>
js:
angularjs:
jquery:
进公司以来的经历
Lucene
CRM
东兴
平安移动app
银河移动crm
前端熟悉过程
功能逻辑实现
数据传递过程
数据库部分书写
我的未来期望,对框架很好奇,想深入的去了解一个产品从无到有的全过程,目前仅仅是在表面用
贴吧的每日学习记录,博客的各种技术记录。自己无法解决的勤于去问
和别人相比,我的努力还远远不够