this.executeQueryForObject("PayOrderDO.getOrderByPayOrderId", payOrderId, dr);
1 Eclipse Tomcat插件。
url:在Eclipse中部署tomcat
2 看有能力写一个 Docbook写一个插件,能对Java,Sql语法高亮。
3 在PowerCmd中启动,选择的参数是:/P $(Dir)
4 mvn eclipse:eclipse 会有错误,
-DdownloadJavadocs=true,将会下载javadoc和每个jar文件配合。
-DdownloadSources=true,将会下载java源文件和每个jar文件配合。
5 早上发布pamirs-service完成后,系统抛异常,经确认后发现用户中心jar包版本升级导致。
原因:本次用户中心jar包升级为1.3.0 ,但是由于原来的包中 包含了 1.2.0 ,发布时候直接覆盖,并没有去删除原来的版本,
导致用户中心的 两个版本的jar包同时存在,使得系统出现异常。
8 使用sqlmap连接数据库
给BaseSqlMap基类一个SqlMapSupport类,包装了DataSource,SqlMapClient等东西。
9 SqlMap的xml文档的编写。
sqlmap的xml中,要小小心resultClass,resultMap,等几个参数的配置,其实相当简单的。
11 建立测试环境遇到的问题。
Oracle的Url:jdbc:oracel:thin:@localhost:1521:tccenter
从类路径中得到Spring的配置文件的方法,FileSystemXmlApplicationContext是从当前Main的运行目录开始算的。
ApplicationContext context = new ClassPathXmlApplicationContext("/spring-persistence.xml");
Sql-map的配置
sql-map.xml配置SqlMap配置
在sql-map的<sql-map>元素,再配具体的操作
12 DBA命令
建表的表空间是什么?
create user tccenter identified by tccenter;
drop user tccenter;
grand dba[connect,resource] to tccenter;
13 SqlMap-config.xml
<settings cacheModelsEnabled="false" enhancementEnabled="false" lazyLoadingEnabled="false" maxRequests="3000" maxSessions="3000" maxTransactions="3000" useStatementNamespaces="false"/> Setting的几个参数的意义。 <sql-map resource=" "/> <!--typeAlias用来简写--> <typeAlias alias="order" type="testdomain.Order"/>
18 sql-map-data.xml
<sqlMap namespace="Person"> <select id="getPerson" resultClass="examples.domain.Person"> SELECT PER_ID as id, PER_FIRST_NAME as firstName, PER_LAST_NAME as lastName, PER_BIRTH_DATE as birthDate, PER_WEIGHT_KG as weightInKilograms, PER_HEIGHT_M as heightInMeters FROM PERSON WHERE PER_ID = #value# </select> </sqlMap>
select sysdate from dual;
select sysdate from dual;
查询
java代码:
this.executeQueryForObject("PayOrderDO.getOrderByPayOrderId", payOrderId, dr);
xml配置:
<select id="PayOrderDO.getPayOrderByOutOrderId" resultMap="PayOrderMap"> <![CDATA[SELECT pay_order_id,total_fee,commision_fee,title, FROM tc_pay_order WHERE out_pay_id = #value# and rownum<2]]> </select>
创建
java代码:
this.executeUpdate("PayOrderDAO.insertPayOrder", payOrder, dr);
<insert id="PayOrderDAO.insertPayOrder" parameterClass="com.taobao.tc.domain.dataobject.PayOrderDO"> <![CDATA[ insert into tc_pay_order(pay_order_id, total_fee, commission_fee)values(#payOrderId#,#totalFee#,#commissionFee#) ]]> </insert>
更新
java代码:
Map<String, Object> map = new HashMap<String, Object>(); map.put("payOrderId", payOrderId); map.put("adjustFee", adjustFee); int count = this.executeUpdate("PayOrderDAO.updatePayOrderPriceInfo", map, dr);
xml配置:
<update id="PayOrderDAO.updatePayOrderPriceInfo"> <![CDATA[ UPDATE tc_pay_order SET adjust_fee=#adjustFee#, ]]> <isGreaterThan property="actualTotalFee" compareValue="0"> actual_total_fee=#actualTotalFee#, </isGreaterThan> <![CDATA[ gmt_modified = sysdate WHERE pay_order_id = #payOrderId# and pay_status = #payStatus# ]]> </update>
得到Sequence
Java代码:
executeQueryForObject("PayOrderDAO.getOrderSeq",null, dr);
Xml配置:
<select id="PayOrderDAO.getOrderSeq" resultClass="long"> select seq_tc_pay_order_id.nextval from dual </select>
20 ResultMap,目的是将一个ResultSet转换成一个JavaBean,然后返回给调用者,
<resultMap class="example.Person" id="PersonMap"> <result column="working_place" property="workingPlace" /> </resultMap>
21 OSCache是分布式Cache,EhCache是个很简单的集中式Cache
22 ToStringBuilder的用法。
ToStringBuilder.reflectionToString(person, ToStringStyle.SHORT_PREFIX_STYLE)
//下面这种用法很少用。 new ToStringBuilder(person).append("name", person.getName() //如果对安全限制不严,private的属性可以通过reflect得到。 Field[] fields = clazz.getDeclaredFields(); //可以访问Private的字段 AccessibleObject.setAccessible(fields, true); StringBuilder sb = new StringBuilder(); sb.append("["); for (Field f : fields) { Object value = f.get(person); sb.append(f.getName()).append("=").append(value+","); }
23 用sys/oracle as sysdba连接上去
可以用shutdown immediate,startup来关闭和开启数据库。
24 show parameter;查看参数。
新建一个数据库,然后用sys登录进去,建可访问用户和表空间。
connect sys/change_on_install as sysdba;
connect system/manager as sysdba;
连接到SQLPLUS不登录,sqlplus/nolog
25 启动iSQL plus
isqlplusctl start
http://localhost:5560/isqlplus
26 10g企业管理器
查看企业管理器状态 emctl status dbconsole
启动10g企业管理器 emctl start dbconsole
http://localhost:5560/em
27 linux的Profile文件有什么用
28 Oracle的静态参数文件,pfile,记录了常见的Oracle的启动参数。
位置在ORACLE_HOME/database/initOracle9i下面。
名字是init%db_name%.ora
29 Oracle动态参数文件,目的是在不重启数据库的前提下修改参数。
30 spool命令的目的是的将标准输出,输出到文件中去。
用法是:
spool c:\sql\trace_log.log;
show parameter;
spool off;
31 Oracle启动有三种方式
a statup nomount 在创建时启动,只创建实例而不打开任何数据库文件
b statup mount 在对数据库维护期间使用,
c statup open 99%的时间启动。
32 重做(Redo)控制文件的作用。
33 将数据库状态设为只读,比如将Standby数据库设为只读,供后台查询数据库使用。
alter database read only;
alter database read write;
34 catalog.sql 创建基本数据字典表。
Oracle很多的信息都可以从数据字典表中得到,相当与当前数据库的Metadata
DDL 数据库定义语言 建库,建表
DCL 数据库控制语言 建用户,赋给权限。
DML 数据库操作语言 insert, delete, 这种。