1616 * @author Chezis P
1717 */
1818public interface KhoHangDAO {
19-
19+
2020 default List <MayTinh > getMayTinhData () {
2121 String SQL = "SELECT maMay, tenMay, soLuong, giaTien, tenCPU, tsRam, oCung FROM MayTinh" ;
2222 try (
23- Connection conn = ConnectorHelper .getConnection ();
24- Statement stm = conn .createStatement ();
25- ResultSet rs = stm .executeQuery (SQL )
26- )
27- {
23+ Connection conn = ConnectorHelper .getConnection (); Statement stm = conn .createStatement (); ResultSet rs = stm .executeQuery (SQL )) {
2824 List <MayTinh > mtList = new ArrayList <>();
2925 while (rs .next ()) {
3026 mtList .add (new MayTinh (
31- rs .getString ("maMay" ),
32- rs .getString ("tenMay" ),
27+ rs .getString ("maMay" ),
28+ rs .getString ("tenMay" ),
3329 rs .getInt ("soLuong" ),
34- rs .getBigDecimal ("giaTien" ),
35- rs .getString ("tenCPU" ),
36- rs .getString ("tsRam" ),
30+ rs .getBigDecimal ("giaTien" ),
31+ rs .getString ("tenCPU" ),
32+ rs .getString ("tsRam" ),
3733 rs .getFloat ("oCung" )));
3834 }
3935 return mtList ;
@@ -42,7 +38,7 @@ default List<MayTinh> getMayTinhData() {
4238 }
4339 return null ;
4440 }
45-
41+
4642 default int getMaxMaMay (String maMay ) {
4743 String SQL = "SELECT getMaxMaMay(?) as num" ;
4844 try (Connection conn = ConnectorHelper .getConnection (); PreparedStatement prstm = conn .prepareStatement (SQL )) {
@@ -58,7 +54,46 @@ default int getMaxMaMay(String maMay) {
5854 }
5955 return -1 ;
6056 }
61-
57+
58+ default ArrayList getSearchMayTinh (String keyword ) {
59+ String SQL = "SELECT * FROM MayTinh WHERE maMay LIKE ? OR tenMay LIKE ?; " ;
60+ try (Connection conn = ConnectorHelper .getConnection (); PreparedStatement prstm = conn .prepareStatement (SQL )) {
61+ String keywords = "%" + keyword + "%" ;
62+ prstm .setString (1 , keywords );
63+ prstm .setString (2 , keywords );
64+ ResultSet rs = prstm .executeQuery ();
65+
66+ ArrayList <MayTinh > mtList = new ArrayList <>();
67+ int countMayTinh = 0 ;
68+
69+ while (rs .next ()) {
70+ ++countMayTinh ;
71+ mtList .add (new MayTinh (
72+ rs .getString ("maMay" ),
73+ rs .getString ("tenMay" ),
74+ rs .getInt ("soLuong" ),
75+ rs .getBigDecimal ("giaTien" ),
76+ rs .getString ("tenCPU" ),
77+ rs .getString ("tsRam" ),
78+ rs .getFloat ("oCung" )));
79+ }
80+
81+ if ( countMayTinh == 0 ) {
82+ AnnounceDAO .announceWar ("Không tìm được máy nào với mã " + keyword + " !" );
83+ return null ;
84+ }
85+
86+ AnnounceDAO .announceInfo ("Tìm được " + countMayTinh + " máy tính với mã " + keyword );
87+
88+ return mtList ;
89+
90+ } catch (SQLException ex ) {
91+ ex .printStackTrace ();
92+ }
93+
94+ return null ;
95+ }
96+
6297 default List <MayTinh > getSortMayTinh (String sortOption ) {
6398 String SQL = "" ;
6499
@@ -77,59 +112,53 @@ default List<MayTinh> getSortMayTinh(String sortOption) {
77112 SQL = "SELECT * FROM MayTinh ORDER BY giaTien DESC" ;
78113 break ;
79114 default :
80- SQL = "SELECT * FROM MayTinh" ;
115+ SQL = "SELECT * FROM MayTinh" ;
81116 break ;
82117 }
83118
84-
85119 try (
86- Connection conn = ConnectorHelper .getConnection ();
87- Statement stm = conn .createStatement ();
88- ResultSet rs = stm .executeQuery (SQL )
89- ) {
120+ Connection conn = ConnectorHelper .getConnection (); Statement stm = conn .createStatement (); ResultSet rs = stm .executeQuery (SQL )) {
90121 List <MayTinh > mtList = new ArrayList <>();
91122 while (rs .next ()) {
92123 mtList .add (new MayTinh (
93- rs .getString ("maMay" ),
94- rs .getString ("tenMay" ),
95- rs .getInt ("soLuong" ),
96- rs .getBigDecimal ("giaTien" ),
97- rs .getString ("tenCPU" ),
98- rs .getString ("tsRam" ),
99- rs .getFloat ("oCung" ))
124+ rs .getString ("maMay" ),
125+ rs .getString ("tenMay" ),
126+ rs .getInt ("soLuong" ),
127+ rs .getBigDecimal ("giaTien" ),
128+ rs .getString ("tenCPU" ),
129+ rs .getString ("tsRam" ),
130+ rs .getFloat ("oCung" ))
100131 );
101132 }
102133 return mtList ;
103134 } catch (SQLException ex ) {
104135 ex .printStackTrace ();
105- return null ;
136+ return null ;
106137 }
107138 }
108-
139+
109140 default List getAllmaMayDAO () {
110141 String SQL = "CALL GetAllMaMay; " ;
111142 try (Connection conn = ConnectorHelper .getConnection (); Statement stm = conn .createStatement (); ResultSet rs = stm .executeQuery (SQL )) {
112143 List <String > maMayList = new ArrayList <>();
113-
114- while ( rs .next () ) {
144+
145+ while (rs .next ()) {
115146 maMayList .add (rs .getString ("maMay" ));
116147 }
117-
148+
118149 return maMayList ;
119-
150+
120151 } catch (SQLException ex ) {
121152 ex .printStackTrace ();
122153 }
123154 return null ;
124155 }
125-
156+
126157 default boolean addMayTinhDAO (String maMay , String tenMay , int soLuong , BigDecimal giaTien , String tenCPU , String tsRam , float oCung ) {
127-
158+
128159 String SQL = "INSERT INTO MayTinh(maMay, tenMay, soLuong, giaTien, tenCPU, tsRam, oCung) VALUES (?, ?, ?, ?, ?, ?, ?)" ;
129160 try (
130- Connection conn = ConnectorHelper .getConnection ();
131- PreparedStatement prstm = conn .prepareStatement (SQL );
132- ) {
161+ Connection conn = ConnectorHelper .getConnection (); PreparedStatement prstm = conn .prepareStatement (SQL );) {
133162 prstm .setString (1 , maMay );
134163 prstm .setString (2 , tenMay );
135164 prstm .setInt (3 , soLuong );
@@ -147,14 +176,12 @@ default boolean addMayTinhDAO(String maMay, String tenMay, int soLuong, BigDecim
147176 return false ;
148177 }
149178 }
150-
179+
151180 default boolean updateMayTinhDAO (String maMay , String tenMay , int soLuong , BigDecimal giaTien , String tenCPU , String tsRam , float oCung ) {
152-
181+
153182 String SQL = "UPDATE MayTinh SET tenMay = ?, soLuong = ?, giaTien = ?, tenCPU = ?, tsRam = ?, oCung = ? WHERE maMay = ?" ;
154183 try (
155- Connection conn = ConnectorHelper .getConnection ();
156- PreparedStatement prstm = conn .prepareStatement (SQL );
157- ) {
184+ Connection conn = ConnectorHelper .getConnection (); PreparedStatement prstm = conn .prepareStatement (SQL );) {
158185 prstm .setString (7 , maMay );
159186 prstm .setString (1 , tenMay );
160187 prstm .setInt (2 , soLuong );
@@ -172,14 +199,12 @@ default boolean updateMayTinhDAO(String maMay, String tenMay, int soLuong, BigDe
172199 return false ;
173200 }
174201 }
175-
202+
176203 default boolean deleteMayTinhDAO (String maMay ) {
177-
204+
178205 String SQL = "DELETE FROM MayTinh WHERE maMay = ?" ;
179206 try (
180- Connection conn = ConnectorHelper .getConnection ();
181- PreparedStatement prstm = conn .prepareStatement (SQL );
182- ) {
207+ Connection conn = ConnectorHelper .getConnection (); PreparedStatement prstm = conn .prepareStatement (SQL );) {
183208 prstm .setString (1 , maMay );
184209 prstm .executeUpdate ();
185210 return true ;
@@ -192,5 +217,4 @@ default boolean deleteMayTinhDAO(String maMay) {
192217 }
193218 }
194219
195-
196220}
0 commit comments