最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java使用三層架構(gòu)實現(xiàn)電影購票系統(tǒng)

 更新時間:2019年01月27日 09:57:47   作者:流云往事書  
這篇文章主要為大家詳細介紹了java使用三層架構(gòu)實現(xiàn)電影購票系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

使用三層架構(gòu)實現(xiàn)電影購票系統(tǒng),分用戶和管理員,用戶功能:展示電影,查找電影(模糊查詢),查看電影詳情,查找場次,購買影票,訂制座位,退訂影票等功能,界面美觀漂亮,邏輯嚴謹,附加電影評論功能,訂票超過五張打0.9折的打折功能。管理員功能:影院的增刪改查,場次的增刪改查,電影的增刪改查,影票管理等。

管理員賬號:admin  密碼:admin

下載地址:java實現(xiàn)電影購票系統(tǒng)

效果展示圖:

登錄界面:

用戶主界面:

查看熱門電影:

點擊電影進入查看詳情,可以看到該電影的所有評論,可以進行評論。

點擊想看電影進入場次界面,可通過影院名查詢場次,支持模糊查詢。

選好場次進入訂座購票界面,購買票并扣取相應(yīng)錢數(shù),顯示余額

返回主頁,查看我的影票,選擇影票并查看我的評論 ,如未評論可進行評論,評論過可進行修改評論,可退訂影票,退訂成功錢會返還給用戶。

再看查找電影功能,支持模糊查詢,也可點擊海報進入電影詳情

 咱們來展示下BaseDao的代碼:

import java.lang.reflect.Field;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
 
public class BaseDao {
 
 public static final String DRIVER = "com.mysql.jdbc.Driver";
 public static final String URL = "jdbc:mysql://localhost:3306/tickets";
 
 // 加載驅(qū)動,只需加載一次
 static {
 try {
 Class.forName(DRIVER);
 } catch (ClassNotFoundException e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
 }
 }
 
 // 獲得連接
 public Connection getConn() {
 Connection conn = null;
 
 try {
 conn = DriverManager.getConnection(URL, "root", "123456");
 } catch (SQLException e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
 }
 return conn;
 }
 
 // 關(guān)閉所有
 public void releaseAll(ResultSet rs, PreparedStatement pstmt, Connection conn) {
 
 try {
 if (rs != null) {
 rs.close();
 }
 if (pstmt != null) {
 pstmt.close();
 }
 if (conn != null) {
 conn.close();
 }
 } catch (SQLException e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
 }
 
 }
 
 // 增刪改 封裝
 public boolean operUpdate(String sql, List<Object> params) {
 Connection conn = null;
 PreparedStatement pstmt = null;
 int res = 0;
 
 // 獲得與數(shù)據(jù)庫的連接對象
 conn = getConn();
 
 try {
 
 pstmt = conn.prepareStatement(sql);
 
 if (params != null) {
 for (int i = 0; i < params.size(); i++) {
 
 pstmt.setObject(i + 1, params.get(i));
 
 }
 
 }
 // 增刪改的統(tǒng)一方法
 
 res = pstmt.executeUpdate();
 //返回的是sql在數(shù)據(jù)庫中影響的行數(shù)
 } catch (SQLException e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
 } finally {
 releaseAll(null, pstmt, conn);
 }
 
 return res > 0 ? true : false;
 
 }
 
 public <T> List<T> operQuery(String sql, List<Object> params, Class<T> cls) throws Exception {
 Connection conn = null;
 PreparedStatement pstmt = null;
 ResultSet rs = null;
 List<T> list = new ArrayList<T>();
 conn = getConn();
 
 try {
 pstmt = conn.prepareStatement(sql);
 
 if (params != null) {
 for (int i = 0; i < params.size(); i++) {
 
 pstmt.setObject(i + 1, params.get(i));
 
 }
 
 }
 // 增刪改的統(tǒng)一方法
 
 rs = pstmt.executeQuery();
 ResultSetMetaData rsmd = rs.getMetaData();
 while (rs.next()) {
 T m = cls.newInstance();
 
 for (int i = 0; i < rsmd.getColumnCount(); i++) {
 String col_name = rsmd.getColumnName(i + 1);
 
 Object value = rs.getObject(col_name);
 
 Field field;
 
 field = cls.getDeclaredField(col_name);
 
 field.setAccessible(true);
 field.set(m, value);
 }
 list.add(m);
 }
 }
 
 catch (SQLException e) {
 // TODO Auto-generated catch block
 e.printStackTrace();
 } finally {
 releaseAll(rs, pstmt, conn);
 }
 return list;
 
 }
 
}

該項目界面美觀,代碼封裝性良好,邏輯嚴密,僅供參考。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

兴宁市| 彭阳县| 沐川县| 多伦县| 和政县| 沅陵县| 高台县| 延庆县| 涞源县| 长兴县| 沙洋县| 鹿邑县| 固始县| 应城市| 呼玛县| 寿阳县| 淳化县| 长泰县| 宕昌县| 淮滨县| 莱阳市| 砀山县| 绥德县| 孝昌县| 任丘市| 大理市| 孙吴县| 田林县| 芮城县| 垫江县| 翁牛特旗| 邯郸县| 绥宁县| 株洲市| 贺州市| 柏乡县| 商河县| 聂拉木县| 九江市| 故城县| 婺源县|