交易三期619任務

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包同時存在,使得系統出現異常。

Confluence上的問題

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, 這種。

 

 

 

 


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章