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