天天看點

JDBC項目——汽車租賃項目業務流程總結

-一、需求分析

-二、概要設計

-三、詳細設計

    1.添加車輛

    2.實作租車業務

    3.實作還車業務

    資料層代碼

-一、需求分析與資料表設計

需求圖:

<a href="https://s1.51cto.com/wyfs02/M00/07/34/wKiom1nEyPCiv6hyAAJH0lmmZA0317.png" target="_blank"></a>

發現類:

    01.moto類(汽車父類):

        01.1:bus類(客車類)

        01.2:car類(轎車類)

        01.3:truck類(卡車類)

    02.mototype類(汽車類型類)

    03.使用者類:軟體系統的使用者,登入該系統 管理的 人,比如:管理者、業務經理等。

    04.客戶類:租車的人。

    05.公司類:用于處理租車換車業務流程的人。

資料庫設計:

<a href="https://s1.51cto.com/wyfs02/M01/07/35/wKiom1nEzmKQO6VEAAI0x96Nd14181.png" target="_blank"></a>

實作各車的資訊錄入

<a href="https://s5.51cto.com/wyfs02/M02/A5/E6/wKioL1nE01ex5_gkAAB_b7VOqWo940.png" target="_blank"></a>

    一個問題:卡車跟大巴和轎車錄入是不一樣的,是以在業務層需要判斷是什麼車型,但這樣代碼比較臃腫,不利于擴充,不是面向對象程式設計。

    解決:采用面向對象的特點(繼承和多态),在moto類建立錄入車資訊的方法,這樣轎車客車大巴繼承moto類就可以有自己的錄入車資訊的方法。

代碼示範:

moto類:

<code>public</code> <code>abstract</code> <code>class</code> <code>Moto {</code>

<code>    </code><code>private</code> <code>String mno;              </code><code>//車牌号</code>

<code>    </code><code>private</code> <code>int</code> <code>seatCount;       </code>

<code>    </code><code>private</code> <code>MotoType mtype;            </code>

<code>    </code> 

<code>    </code><code>//這裡省略get\set方法</code>

<code>    </code><code>public</code> <code>Moto(MotoType mtype,String mno,</code><code>int</code> <code>seatCount){</code>

<code>        </code><code>this</code><code>.mno = mno;</code>

<code>        </code><code>this</code><code>.seatCount = seatCount;</code>

<code>        </code><code>this</code><code>.mtype = mtype;</code>

<code>    </code><code>}</code>

<code>    </code><code>/**</code>

<code>     </code><code>* 把目前對象存儲到資料庫中</code>

<code>     </code><code>* @throws Exception</code>

<code>     </code><code>*/</code>

<code>    </code><code>public</code> <code>void</code> <code>saveDB() </code><code>throws</code> <code>Exception{</code>

<code>        </code><code>CompanyDao dao = </code><code>new</code> <code>CompanyDao();</code>

<code>        </code><code>try</code> <code>{</code>

<code>            </code><code>dao.addMoto(</code><code>this</code><code>);</code>

<code>        </code><code>} </code><code>catch</code> <code>(Exception e) {</code>

<code>            </code><code>e.printStackTrace();</code>

<code>        </code><code>}</code><code>finally</code><code>{</code>

<code>            </code><code>dao.closeConnection();</code>

<code>        </code><code>}</code>

<code>}</code>

car類:可以直接使用moto類中的方法

<code>public</code> <code>class</code> <code>Car </code><code>extends</code> <code>Moto{</code>

<code>    </code><code>public</code> <code>Car(MotoType mtype,String mno) {</code>

<code>        </code><code>super</code><code>(mtype,mno, </code><code>5</code><code>);</code>

truck類:重寫了moto類的saveDB()方法

<code>public</code> <code>class</code> <code>Truck </code><code>extends</code> <code>Moto{</code>

<code>    </code><code>private</code> <code>int</code> <code>dun;</code>

<code>    </code><code>private</code> <code>double</code> <code>priceEachDun;            </code><code>//每噸每天的單價</code>

<code>    </code><code>public</code> <code>int</code> <code>getDun() {</code>

<code>        </code><code>return</code> <code>dun;</code>

<code>    </code><code>public</code> <code>double</code> <code>getPriceEachDun() {</code>

<code>        </code><code>return</code> <code>priceEachDun;</code>

<code>    </code><code>public</code> <code>void</code> <code>setPriceEachDun(</code><code>double</code> <code>priceEachDun) {</code>

<code>        </code><code>this</code><code>.priceEachDun = priceEachDun;    </code>

<code>    </code><code>public</code> <code>Truck(MotoType mtype, String mno, </code><code>int</code> <code>seatCount,</code><code>int</code> <code>dun) {</code>

<code>        </code><code>super</code><code>(mtype, mno, seatCount);</code>

<code>        </code><code>this</code><code>.dun = dun;      </code>

<code>    </code><code>public</code> <code>double</code> <code>getDayMoney() {</code>

<code>        </code><code>return</code> <code>priceEachDun*dun;</code>

<code>     </code><code>* 把目前對象存儲到資料庫中  ----------重寫</code>

<code>    </code><code>@Override</code>

<code>            </code><code>dao.beginTransaction();</code>

<code>            </code><code>TruckEntity truckEntity = </code><code>new</code> <code>TruckEntity();</code>

<code>            </code><code>truckEntity.setMno(</code><code>this</code><code>.getMno());</code>

<code>            </code><code>truckEntity.setDun(dun);</code>

<code>            </code><code>truckEntity.setPriceEachDun(priceEachDun);</code>

<code>            </code><code>dao.addTruck(truckEntity);</code>

<code>            </code><code>dao.commit();</code>

<code>            </code><code>dao.rollback();</code>

<code>            </code><code>throw</code> <code>e;</code>

在業務邏輯層方法就很簡單了:

<code>private</code> <code>List&lt;Moto&gt; motos;</code>

<code>/**</code>

<code>* 添加汽車</code>

<code>* @param moto</code>

<code>* @throws Exception</code>

<code>*/</code>

<code>public</code> <code>void</code> <code>addMoto(Moto moto) </code><code>throws</code> <code>Exception{</code>

<code>    </code><code>if</code><code>(moto != </code><code>null</code> <code>){          </code>

<code>        </code><code>moto.saveDB();                      </code><code>//OO多态</code>

<code>        </code><code>motos.add(moto);</code>

<code>    </code><code>}</code><code>else</code><code>{</code>

<code>        </code><code>throw</code> <code>new</code> <code>Exception(</code><code>"入參moto錯誤"</code><code>);</code>

<code>    </code><code>}      </code>

2.實作租車業務

圖解:

<a href="https://s2.51cto.com/wyfs02/M01/A5/E6/wKioL1nE1NrReZ66AAFU_AKkhqM429.png" target="_blank"></a>

    注意:由于整個租車過程包含多個表的修改,比如加入兩個訂單在差不多時間操作同一輛車,肯定會有一個訂單有問題,這是就需要保證事務的一緻性和完整性。

在業務邏輯層的代碼就可以:

<code>public</code> <code>class</code> <code>RentCompany {</code>

<code>    </code><code>private</code> <code>String name; </code>

<code>    </code><code>private</code> <code>List&lt;Moto&gt; motos;               </code><code>//待租賃的汽車</code>

<code>    </code><code>public</code> <code>String getName() {</code>

<code>        </code><code>return</code> <code>name;</code>

<code>    </code><code>}  </code>

<code>    </code><code>public</code> <code>List&lt;Moto&gt; getMotos() {</code>

<code>        </code><code>return</code> <code>motos;</code>

<code>    </code><code>public</code> <code>RentCompany(String name){</code>

<code>        </code> 

<code>        </code><code>this</code><code>.name = name;</code>

<code>        </code><code>motos = </code><code>new</code> <code>ArrayList&lt;Moto&gt;(</code><code>50</code><code>);</code>

<code>     </code><code>* 汽車租賃</code>

<code>     </code><code>* @param motos</code>

<code>     </code><code>* @param client</code>

<code>     </code><code>* @param rentinfo</code>

<code>     </code><code>* @return            租賃成功,傳回訂單号</code>

<code>    </code><code>public</code> <code>String rent(List&lt;Moto&gt; motos,TClient client,TRentInfo rentinfo) </code><code>throws</code> <code>Exception{</code>

<code>        </code><code>String rentno = </code><code>null</code><code>;</code>

<code>        </code><code>if</code><code>(motos != </code><code>null</code> <code>&amp;&amp; client != </code><code>null</code> <code>&amp;&amp; rentinfo!= </code><code>null</code><code>){</code>

<code>            </code><code>CompanyDao dao = </code><code>new</code> <code>CompanyDao();</code>

<code>            </code><code>try</code> <code>{</code>

<code>                </code><code>dao.beginTransaction();                                 </code><code>//開啟事務</code>

<code>                </code><code>//添加客戶資料       </code>

<code>                </code><code>dao.addTClient(client);</code>

<code>                </code><code>//添加汽車租賃資訊</code>

<code>                </code><code>rentno = dao.addRentInfo(rentinfo);</code>

<code>                </code><code>//添加租賃明細</code>

<code>                </code><code>for</code><code>(Moto moto : motos){</code>

<code>                    </code><code>TRentDetail rentDetail = getTRentDetail(rentno,moto);</code>

<code>                    </code><code>dao.addRentDetail(rentDetail);</code>

<code>                </code><code>}          </code>

<code>                </code><code>dao.commit();                                         </code><code>//送出事務  </code>

<code>            </code><code>} </code><code>catch</code> <code>(Exception e) {</code>

<code>                </code><code>dao.rollback();                                       </code><code>//復原事務</code>

<code>                </code><code>rentno = </code><code>null</code><code>;</code>

<code>                </code><code>throw</code> <code>e;</code>

<code>            </code><code>}</code><code>finally</code><code>{</code>

<code>                </code><code>dao.closeConnection();</code>

<code>            </code><code>}      </code>

<code>        </code><code>}</code><code>else</code><code>{         </code>

<code>            </code><code>throw</code> <code>new</code> <code>Exception(</code><code>"入參錯誤,請檢查"</code><code>);</code>

<code>        </code><code>}      </code>

<code>        </code><code>return</code> <code>rentno;</code>

<code>    </code><code>private</code> <code>TRentDetail getTRentDetail(String rentno,Moto moto){</code>

<code>        </code><code>TRentDetail detail = </code><code>new</code> <code>TRentDetail();</code>

<code>        </code><code>detail.setMno(moto.getMno());</code>

<code>        </code><code>detail.setRentno(rentno);</code>

<code>        </code><code>detail.setDaymoney(moto.getDayMoney());</code>

<code>        </code><code>return</code> <code>detail;</code>

3.實作還車業務

業務流程:計算租金總額、添加還車資訊、給訂單寫入租金總額、設定車輛資訊

<code>* 還車,計算租賃的總價</code>

<code>* @return</code>

<code>public</code> <code>double</code> <code>rentBack(String rentno) </code><code>throws</code> <code>Exception{</code>

<code>    </code><code>double</code> <code>allMoney = </code><code>0</code><code>;</code>

<code>    </code><code>if</code><code>(rentno != </code><code>null</code><code>){</code>

<code>                </code><code>dao.beginTransaction();</code>

<code>            </code><code>//計算租金總額</code>

<code>            </code><code>allMoney = dao.countAllPayMoney(rentno);</code>

<code>            </code><code>//添加還車資訊</code>

<code>            </code><code>dao.addRentBackInfo(rentno);</code>

<code>            </code><code>//給訂單寫入租金總額</code>

<code>            </code><code>dao.writeAllPayMoney(rentno, allMoney);</code>

<code>            </code><code>//設定車輛的狀态</code>

<code>            </code><code>dao.setRentBackMotoState(rentno);</code>

<code>            </code><code>dao.commit();              </code>

<code>        </code><code>}          </code>

<code>        </code><code>throw</code> <code>new</code> <code>Exception(</code><code>"入參錯誤"</code><code>);</code>

<code>    </code><code>return</code> <code>allMoney;      </code>

對應dao層代碼:

basedao

<code>public</code> <code>class</code> <code>BaseDao {</code>

<code>    </code><code>protected</code> <code>Connection conn;       </code>

<code>    </code><code>public</code> <code>Connection getConn() {</code>

<code>        </code><code>return</code> <code>conn;</code>

<code>    </code><code>public</code> <code>void</code> <code>setConn(Connection conn) {</code>

<code>        </code><code>this</code><code>.conn = conn;</code>

<code>    </code><code>public</code> <code>void</code> <code>openConnection() </code><code>throws</code> <code>ClassNotFoundException,SQLException{</code>

<code>            </code><code>//通過反射技術,對oracel的驅動對象進行類的加載 (其實是在做類型檢查)</code>

<code>            </code><code>//在類的加載時,會調用OracleDriver中的靜态代碼塊和靜态變量初始化</code>

<code>        </code><code>if</code><code>(</code><code>this</code><code>.conn == </code><code>null</code> <code>|| </code><code>this</code><code>.conn.isClosed()){</code>

<code>            </code><code>Class.forName(</code><code>"oracle.jdbc.driver.OracleDriver"</code><code>);  </code>

<code>            </code><code>conn = DriverManager.getConnection(</code><code>"jdbc:oracle:thin:@10.0.19.252:1521:orcl"</code><code>,</code><code>"testdb"</code><code>,</code><code>"1111"</code><code>);</code>

<code>        </code><code>}  </code>

<code>    </code><code>public</code> <code>void</code> <code>beginTransaction() </code><code>throws</code> <code>Exception{</code>

<code>        </code><code>this</code><code>.openConnection();</code>

<code>        </code><code>if</code><code>(</code><code>this</code><code>.conn != </code><code>null</code><code>){           </code>

<code>            </code><code>this</code><code>.conn.setAutoCommit(</code><code>false</code><code>);                      </code><code>//手動送出模式</code>

<code>    </code><code>public</code> <code>void</code> <code>commit() </code><code>throws</code> <code>Exception{</code>

<code>        </code><code>if</code><code>(</code><code>this</code><code>.conn != </code><code>null</code><code>){</code>

<code>            </code><code>this</code><code>.conn.commit();</code>

<code>    </code><code>public</code> <code>void</code> <code>rollback() </code><code>throws</code> <code>Exception{</code>

<code>            </code><code>this</code><code>.conn.rollback();</code>

<code>    </code><code>public</code> <code>void</code> <code>closeConnection() {</code>

<code>                </code><code>this</code><code>.conn.close(); </code>

<code>                </code><code>e.printStackTrace();</code>

<code>            </code><code>}</code>

<code>public</code> <code>class</code> <code>CompanyDao </code><code>extends</code> <code>BaseDao{</code>

<code>     </code><code>* 根據訂單号,計算需要的租金總額</code>

<code>     </code><code>* @param rentno</code>

<code>     </code><code>* @return</code>

<code>    </code><code>public</code> <code>double</code> <code>countAllPayMoney(String rentno) </code><code>throws</code> <code>Exception{</code>

<code>        </code><code>double</code> <code>allMoney = </code><code>0</code><code>;</code>

<code>        </code><code>double</code> <code>dayMoneys = </code><code>0</code><code>;</code>

<code>        </code><code>String sql = </code><code>" select  sum(daymoney) dayMoneys from trentinfo r,trentdetail d where r.rentno = d.rentno"</code>

<code>                    </code><code>+ </code><code>" and r.rentno=?"</code><code>;</code>

<code>        </code><code>PreparedStatement ps = </code><code>this</code><code>.conn.prepareStatement(sql);</code>

<code>        </code><code>ps.setString(</code><code>1</code><code>,rentno);</code>

<code>        </code><code>ResultSet rs = ps.executeQuery();</code>

<code>        </code><code>while</code><code>(rs.next()){</code>

<code>            </code><code>dayMoneys = rs.getDouble(</code><code>"dayMoneys"</code><code>);</code>

<code>        </code><code>RentinfoDto rentinfo = getRentInfo(rentno);</code>

<code>        </code><code>int</code> <code>days = (</code><code>int</code><code>)((</code><code>new</code> <code>Date()).getTime() - rentinfo.getRentBeginDate().getTime())/(</code><code>24</code><code>*</code><code>3600</code><code>*</code><code>1000</code><code>) + </code><code>1</code><code>;</code>

<code>         </code> 

<code>        </code><code>allMoney = dayMoneys*days;</code>

<code>        </code><code>return</code> <code>allMoney;</code>

<code>     </code><code>* 根據訂單編号,傳回訂單資訊</code>

<code>    </code><code>public</code> <code>RentinfoDto getRentInfo(String rentno) </code><code>throws</code> <code>Exception{</code>

<code>        </code><code>RentinfoDto rentinfo = </code><code>null</code><code>;</code>

<code>        </code><code>String sql = </code><code>" select r.rentno,r.clno,r.eno,r.operator,r.rentbengindate,r.diyamoney,r.payallmoney, b.backdate  "</code> <code>+</code>

<code>                </code><code>" from trentinfo r left join  trentback b on  r.rentno = b.rentno and r.rentno=?"</code><code>;</code>

<code>            </code><code>rentinfo = </code><code>new</code> <code>RentinfoDto();</code>

<code>            </code><code>rentinfo.setBackDate(rs.getDate(</code><code>"backdate"</code><code>));</code>

<code>            </code><code>rentinfo.setClno(rs.getString(</code><code>"clno"</code><code>));</code>

<code>            </code><code>rentinfo.setDiyaMoney(rs.getDouble(</code><code>"diyamoney"</code><code>));</code>

<code>            </code><code>rentinfo.setEno(rs.getString(</code><code>"eno"</code><code>));</code>

<code>            </code><code>rentinfo.setOperator(rs.getString(</code><code>"operator"</code><code>));</code>

<code>            </code><code>rentinfo.setPayAllMoney(rs.getDouble(</code><code>"payallmoney"</code><code>));</code>

<code>            </code><code>rentinfo.setRentBeginDate(rs.getDate(</code><code>"rentbengindate"</code><code>));</code>

<code>            </code><code>rentinfo.setRentno(rs.getString(</code><code>"rentno"</code><code>));</code>

<code>        </code><code>return</code> <code>rentinfo;</code>

<code>     </code><code>* 還車時,給訂單寫入租金總額</code>

<code>     </code><code>* @param allMoney</code>

<code>    </code><code>public</code> <code>void</code> <code>writeAllPayMoney(String rentno,</code><code>double</code> <code>allMoney) </code><code>throws</code> <code>Exception{</code>

<code>        </code><code>String sql = </code><code>"update trentinfo set payallmoney=? where rentno=?"</code><code>;</code>

<code>        </code><code>ps.setDouble(</code><code>1</code><code>, allMoney);</code>

<code>        </code><code>ps.setString(</code><code>2</code><code>, rentno);</code>

<code>        </code><code>ps.executeUpdate();</code>

<code>        </code><code>ps.close();</code>

<code>     </code><code>* 添加還車資訊</code>

<code>    </code><code>public</code> <code>void</code> <code>addRentBackInfo(String rentno) </code><code>throws</code> <code>Exception{</code>

<code>        </code><code>String sql = </code><code>"insert into trentback values(?,?)"</code><code>;</code>

<code>        </code><code>ps.setString(</code><code>1</code><code>, rentno);</code>

<code>        </code><code>ps.setTimestamp(</code><code>2</code><code>,</code><code>new</code> <code>java.sql.Timestamp(</code><code>new</code> <code>Date().getTime()));</code>

<code>     </code><code>* 還車時,設定所有訂單中的車輛狀态為'01'</code>

<code>    </code><code>public</code> <code>void</code> <code>setRentBackMotoState(String rentno) </code><code>throws</code> <code>Exception{</code>

<code>        </code><code>String sql = </code><code>"select d.mno  from trentinfo r,trentdetail d where r.rentno = d.rentno and r.rentno=?"</code><code>;</code>

<code>            </code><code>String mno = rs.getString(</code><code>"mno"</code><code>);</code>

<code>            </code><code>updateRentBackMotoState(mno);</code>

<code>        </code><code>rs.close();</code>

<code>        </code><code>ps.close();      </code>

<code>    </code><code>public</code> <code>void</code> <code>updateRentBackMotoState(String mno) </code><code>throws</code> <code>Exception{</code>

<code>        </code><code>String sql = </code><code>"update tmoto set state='01' where mno=?"</code><code>;</code>

<code>        </code><code>ps.setString(</code><code>1</code><code>, mno);</code>

<code>        </code><code>ps.executeUpdate();        </code>

<code>     </code><code>* 添加客戶資料</code>

<code>    </code><code>public</code> <code>void</code> <code>addTClient(TClient client) </code><code>throws</code> <code>Exception{</code>

<code>        </code><code>//查詢客戶是否存在</code>

<code>        </code><code>boolean</code> <code>bRet = isHaveClient(client.getTel());</code>

<code>        </code><code>if</code><code>(!bRet){</code>

<code>            </code><code>//添加客戶資料   </code>

<code>            </code><code>String sql = </code><code>"insert into tclient values(?,?,?,?,?)"</code><code>;</code>

<code>            </code><code>this</code><code>.openConnection();</code>

<code>            </code><code>PreparedStatement ps = </code><code>this</code><code>.conn.prepareStatement(sql);</code>

<code>            </code><code>ps.setString(</code><code>1</code><code>, client.getTel());</code>

<code>            </code><code>ps.setString(</code><code>2</code><code>, client.getCname());</code>

<code>            </code><code>ps.setString(</code><code>3</code><code>, client.getCid());</code>

<code>            </code><code>ps.setString(</code><code>4</code><code>, client.getTel());</code>

<code>            </code><code>ps.setString(</code><code>5</code><code>, client.getAddress());</code>

<code>            </code><code>ps.executeUpdate();</code>

<code>            </code><code>ps.close();</code>

<code>     </code><code>* 通過手機号,查詢指定使用者是否存在</code>

<code>     </code><code>* @param tel</code>

<code>    </code><code>private</code> <code>boolean</code> <code>isHaveClient(String tel) </code><code>throws</code> <code>Exception{</code>

<code>        </code><code>boolean</code> <code>bRet = </code><code>false</code><code>;</code>

<code>        </code><code>String sql = </code><code>"select * from tclient where tel=?"</code><code>;</code>

<code>        </code><code>ps.setString(</code><code>1</code><code>, tel);</code>

<code>            </code><code>bRet = </code><code>true</code><code>;</code>

<code>        </code><code>return</code> <code>bRet;</code>

<code>     </code><code>* @param rentinfo </code>

<code>     </code><code>* @return     傳回訂單号</code>

<code>    </code><code>public</code> <code>String addRentInfo(TRentInfo rentinfo) </code><code>throws</code> <code>Exception{</code>

<code>        </code><code>String sql = </code><code>"insert into trentinfo values(?,?,?,?,?,?,?)"</code><code>;</code>

<code>        </code><code>SimpleDateFormat sd = </code><code>new</code> <code>SimpleDateFormat(</code><code>"yyyyMMdd"</code><code>);</code>

<code>        </code><code>String rentno = </code><code>"rno-"</code> <code>+ sd.format(</code><code>new</code> <code>Date()) + </code><code>"-"</code> <code>+ (</code><code>new</code> <code>Date()).getTime();</code>

<code>        </code><code>ps.setString(</code><code>2</code><code>, rentinfo.getClno());</code>

<code>        </code><code>ps.setString(</code><code>3</code><code>, rentinfo.getEno());</code>

<code>        </code><code>ps.setString(</code><code>4</code><code>, rentinfo.getOperator());</code>

<code>        </code><code>ps.setDate(</code><code>5</code><code>, </code><code>new</code> <code>java.sql.Date(rentinfo.getRentBeginDate().getTime()));</code>

<code>        </code><code>ps.setDouble(</code><code>6</code><code>, rentinfo.getDiyaMoney());</code>

<code>        </code><code>ps.setDouble(</code><code>7</code><code>, rentinfo.getPayAllMoney());</code>

<code>     </code><code>* 添加租賃明細</code>

<code>     </code><code>* @param rentDetail</code>

<code>    </code><code>public</code> <code>void</code> <code>addRentDetail(TRentDetail rentDetail) </code><code>throws</code> <code>Exception{</code>

<code>        </code><code>//添加明細</code>

<code>        </code><code>String sql = </code><code>"insert into TRentDetail values(seq_rentdetail_id.nextval,?,?,?)"</code><code>;</code>

<code>        </code><code>ps.setString(</code><code>1</code><code>, rentDetail.getRentno());</code>

<code>        </code><code>ps.setString(</code><code>2</code><code>, rentDetail.getMno());</code>

<code>        </code><code>ps.setDouble(</code><code>3</code><code>,rentDetail.getDaymoney());</code>

<code>        </code><code>ps.close();    </code>

<code>        </code><code>//修改汽車狀态值</code>

<code>        </code><code>updateMotoStateByRent(rentDetail.getMno());</code>

<code>     </code><code>* 修改汽車狀态值,從未出租改為出租中</code>

<code>     </code><code>* @param moto</code>

<code>    </code><code>private</code> <code>void</code> <code>updateMotoStateByRent(String mno) </code><code>throws</code> <code>Exception{</code>

<code>       </code><code>String sql = </code><code>"update tmoto set state='02' where mno=? and state='01'"</code><code>;</code>

<code>       </code><code>this</code><code>.openConnection();</code>

<code>       </code><code>PreparedStatement ps = </code><code>this</code><code>.conn.prepareStatement(sql);</code>

<code>       </code><code>ps.setString(</code><code>1</code><code>, mno);</code>

<code>       </code><code>int</code> <code>iRet = ps.executeUpdate();</code>

<code>       </code><code>if</code><code>(iRet==</code><code>0</code><code>){</code>

<code>           </code><code>throw</code> <code>new</code> <code>MotoRentFailException( mno+ </code><code>",該車已被别人租用,請重新選擇"</code><code>);</code>

<code>       </code><code>}</code>

<code>       </code><code>ps.close();</code>

<code>     </code><code>* 添加汽車單表資料</code>

<code>    </code><code>public</code> <code>void</code> <code>addMoto(Moto moto) </code><code>throws</code> <code>Exception{</code>

<code>        </code><code>String sql = </code><code>"insert into tmoto values(?,?,?,?)"</code><code>;</code>

<code>        </code><code>ps.setString(</code><code>1</code><code>,moto.getMno());</code>

<code>        </code><code>ps.setString(</code><code>2</code><code>,moto.getMtype().getTno());</code>

<code>        </code><code>ps.setInt(</code><code>3</code><code>, moto.getSeatCount());</code>

<code>        </code><code>ps.setString(</code><code>4</code><code>, MotoState.PREPARED_RENT);</code>

<code>     </code><code>* 添加卡車單表資料</code>

<code>     </code><code>* @param truck</code>

<code>    </code><code>public</code> <code>void</code> <code>addTruck(TruckEntity truck) </code><code>throws</code> <code>Exception{</code>

<code>        </code><code>String sql = </code><code>"insert into truck values(?,?,?)"</code><code>;</code>

<code>        </code><code>ps.setString(</code><code>1</code><code>, truck.getMno());</code>

<code>        </code><code>ps.setInt(</code><code>2</code><code>, truck.getDun());</code>

<code>        </code><code>ps.setDouble(</code><code>3</code><code>, truck.getPriceEachDun());</code>

版權聲明:原創作品,如需轉載,請注明出處。否則将追究法律責任

本文轉自 叫我北北 51CTO部落格,原文連結:http://blog.51cto.com/qinbin/1967828