程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> 利用jdbc實現的寵物信息管理系統,jdbc信息管理系統

利用jdbc實現的寵物信息管理系統,jdbc信息管理系統

編輯:MySQL綜合教程

利用jdbc實現的寵物信息管理系統,jdbc信息管理系統


一、需求:

利用jdbc實現對寵物的信息進行管理的一套系統

寵物信息:寵物ID,寵物類別,寵物名字,寵物性別,寵物年齡,寵物入庫日期

系統完成功能:實現對寵物信息的錄入,修改,刪除,查詢。

二、解決方案

一共創建了四個類:

1.一個寵物類PetMessage 裡面是寵物的信息  

2.一個是數據庫連接類DBUtil  裡面主要是完成數據連接功能   

3.一個是寵物管理類PetDAO  完成對寵物信息的增刪該查  

4.最後一個就是一個測試類PetTest 

完成對系統的測試

 

三、具體實現:

新建一個java項目,並導入需要用到的包。如下圖:

 

 

寵物類PetMessage

 1 package com.daliu.jdbc;
 2 
 3 /**
 4  * 寵物信息類
 5  *
 6  */
 7 public class PetMessage {
 8     
 9     //1.定義寵物的屬性
10     // 寵物信息:寵物ID,寵物類別,寵物名字,寵物性別,寵物年齡,寵物入庫日期
11     private int petId;
12     private String petSort;
13     private String petName;
14     private String petSex;
15     private int petAge;
16     private String petDate;
17     
18     //2.生成一個無參構造方法和有參構造方法
19     
20     public PetMessage(){}
21     
22     public PetMessage(int petId, String petSort, String petName, String petSex,
23             int petAge, String petDate) {
24         super();
25         this.petId = petId;
26         this.petSort = petSort;
27         this.petName = petName;
28         this.petSex = petSex;
29         this.petAge = petAge;
30         this.petDate = petDate;
31     }
32     
33     
34     //3.生成屬性的get,set方法
35     public int getPetId() {
36         return petId;
37     }
38     public void setPetId(int petId) {
39         this.petId = petId;
40     }
41     public String getPetSort() {
42         return petSort;
43     }
44     public void setPetSort(String petSort) {
45         this.petSort = petSort;
46     }
47     public String getPetName() {
48         return petName;
49     }
50     public void setPetName(String petName) {
51         this.petName = petName;
52     }
53     public String getPetSex() {
54         return petSex;
55     }
56     public void setPetSex(String petSex) {
57         this.petSex = petSex;
58     }
59     public int getPetAge() {
60         return petAge;
61     }
62     public void setPetAge(int petAge) {
63         this.petAge = petAge;
64     }
65     public String getPetDate() {
66         return petDate;
67     }
68     public void setPetDate(String petDate) {
69         this.petDate = petDate;
70     }
71 
72     //4.屬性的toString方法,並改進為自己所要的樣子
73     @Override
74     public String toString() {
75         return "PetMessage [petId=" + petId + ", petSort=" + petSort
76                 + ", petName=" + petName + ", petSex=" + petSex + ", petAge="
77                 + petAge + ", petDate=" + petDate + "]";
78     }
79 }

 

數據庫連接類DBUtil 

  1 package com.daliu.jdbc;
  2 
  3 import java.io.InputStream;
  4 import java.sql.Connection;
  5 import java.sql.SQLException;
  6 import java.util.Properties;
  7 
  8 import org.apache.commons.dbcp.BasicDataSource;
  9 
 10 /**
 11  * 使用連接池技術管理數據庫連接
 12  */
 13 public class DBUtil {
 14 
 15     // 數據庫連接池
 16     private static BasicDataSource dbcp;
 17 
 18     // 為不同線程管理連接
 19     private static ThreadLocal<Connection> tl;
 20 
 21     // 通過配置文件來獲取數據庫參數
 22     static {
 23         try {
 24             Properties prop = new Properties();
 25 
 26             InputStream is = DBUtil.class.getClassLoader().getResourceAsStream(
 27                     "com/daliu/jdbc/db.properties");
 28 
 29             prop.load(is);
 30             is.close();
 31 
 32             // 一、初始化連接池
 33             dbcp = new BasicDataSource();
 34 
 35             // 設置驅動 (Class.forName())
 36             dbcp.setDriverClassName(prop.getProperty("jdbc.driver"));
 37             // 設置url
 38             dbcp.setUrl(prop.getProperty("jdbc.url"));
 39             // 設置數據庫用戶名
 40             dbcp.setUsername(prop.getProperty("jdbc.user"));
 41             // 設置數據庫密碼
 42             dbcp.setPassword(prop.getProperty("jdbc.password"));
 43             // 初始連接數量
 44             dbcp.setInitialSize(Integer.parseInt(prop.getProperty("initsize")));
 45             // 連接池允許的最大連接數
 46             dbcp.setMaxActive(Integer.parseInt(prop.getProperty("maxactive")));
 47             // 設置最大等待時間
 48             dbcp.setMaxWait(Integer.parseInt(prop.getProperty("maxwait")));
 49             // 設置最小空閒數
 50             dbcp.setMinIdle(Integer.parseInt(prop.getProperty("minidle")));
 51             // 設置最大空閒數
 52             dbcp.setMaxIdle(Integer.parseInt(prop.getProperty("maxidle")));
 53             // 初始化線程本地
 54             tl = new ThreadLocal<Connection>();
 55         } catch (Exception e) {
 56             System.out.println("初始化失敗,請檢查配置文件是否符合!");
 57             e.printStackTrace();
 58         }
 59     }
 60 
 61     /**
 62      * 獲取數據庫連接
 63      * 
 64      * @return
 65      * @throws SQLException
 66      */
 67     public static Connection getConnection() throws SQLException {
 68         /*
 69          * 通過連接池獲取一個空閒連接
 70          */
 71         Connection conn = dbcp.getConnection();
 72         tl.set(conn);
 73         return conn;
 74     }
 75 
 76     /**
 77      * 關閉數據庫連接
 78      */
 79     public static void closeConnection() {
 80         try {
 81             Connection conn = tl.get();
 82             if (conn != null) {
 83                 /*
 84                  * 通過連接池獲取的Connection 的close()方法實際上並沒有將 連接關閉,而是將該鏈接歸還。
 85                  */
 86                 conn.close();
 87                 tl.remove();
 88             }
 89         } catch (Exception e) {
 90             System.out.println("釋放資源失敗!");
 91             e.printStackTrace();
 92             throw new RuntimeException(e);
 93         }
 94     }
 95 
 96     /**
 97      * 測試是否連接成功
 98      * 
 99      * @param args
100      * @throws SQLException
101      */
102     public static void main(String[] args) throws SQLException {
103         System.out.println(getConnection());
104     }
105 }

 

寵物管理類PetDAO 

  1 package com.daliu.jdbc;
  2 
  3 import java.sql.Connection;
  4 import java.sql.ResultSet;
  5 import java.sql.SQLException;
  6 import java.sql.Statement;
  7 
  8 /**
  9  * 寵物信息操作類
 10  * 
 11  */
 12 public class PetDAO {
 13 
 14     // 1.增添寵物信息
 15     public static void doAdd(PetMessage pet) {
 16 
 17         // (1)通過寵物信息類獲得寵物信息的定義
 18         int petId = pet.getPetId();
 19         String petSort = pet.getPetSort();
 20         String petName = pet.getPetName();
 21         String petSex = pet.getPetSex();
 22         int petAge = pet.getPetAge();
 23         String petDate = pet.getPetDate();
 24 
 25         // (2)與數據庫連接
 26         Connection con = null;
 27         try {
 28             con = DBUtil.getConnection();
 29         } catch (SQLException e1) {
 30             e1.printStackTrace();
 31         }
 32         
 33         
 34         // (3)創建會話,執行sql語句
 35         try {
 36             Statement stmt = con.createStatement();
 37             // 定義sql語句
 38             String sqlString = "insert into petmessage(petid,petsort,petname,petsex,petage,petdate) values("
 39                     + pet.getPetId()
 40                     + ",'"
 41                     + pet.getPetSort()
 42                     + "','"
 43                     + pet.getPetName()
 44                     + "','"
 45                     + pet.getPetSex()
 46                     + "',"
 47                     + pet.getPetAge() 
 48                     + ",'" 
 49                     + pet.getPetDate() + "');";
 50             
 51             // (4)執行sql語句
 52             stmt.execute(sqlString);
 53             
 54             //(5)給出相應的提示
 55             System.out.println("********************");
 56             System.out.println("寵物添加成功!(^o^)");
 57             System.out.println("********************");
 58             
 59             //(6)最後釋放資源
 60             DBUtil.closeConnection();
 61             
 62             
 63         } catch (SQLException e) {
 64             // TODO 自動生成 catch 塊
 65             System.out.println("增加失敗!");
 66             e.printStackTrace();
 67 
 68         }
 69     }
 70 
 71     //2. 根據寵物ID刪除寵物信息
 72     public static void doDeleteWithId(PetMessage pet) {
 73         
 74         //1.獲得改寵物的信息
 75         int petId = pet.getPetId();
 76         String petSort = pet.getPetSort();
 77         String petName = pet.getPetName();
 78         String petSex = pet.getPetSex();
 79         int petAge = pet.getPetAge();
 80         String petDate = pet.getPetDate();
 81 
 82         // 2.建立數據庫連接
 83         Connection con = null;
 84         try {
 85             con = DBUtil.getConnection();
 86         } catch (SQLException e1) {
 87             e1.printStackTrace();
 88         }
 89         //3. 建立會話 ,執行sql語句
 90         try {
 91             Statement stmt = con.createStatement();
 92             // 定義sql語句
 93             String sqlString = "delete from petmessage where petid="
 94                     + pet.getPetId() + ";";
 95             
 96             // 執行sql語句
 97             stmt.execute(sqlString);
 98             
 99             //給出相應的提示
100             System.out.println("********************");
101             System.out.println("寵物刪除成功!(^o^)");
102             System.out.println("********************");
103             
104             //關閉資源
105             DBUtil.closeConnection();
106             
107         } catch (SQLException e) {
108             // TODO 自動生成 catch 塊
109             System.out.println("根據寵物ID刪除寵物信息失敗!");
110             e.printStackTrace();
111         }
112     }
113 
114     // 3.根據寵物名字刪除寵物信息
115     public static void doDeleteWithName(PetMessage pet) {
116         
117         //(1)獲取寵物的信息
118         int petId = pet.getPetId();
119         String petSort = pet.getPetSort();
120         String petName = pet.getPetName();
121         String petSex = pet.getPetSex();
122         int petAge = pet.getPetAge();
123         String petDate = pet.getPetDate();
124 
125         // (2)建立數據庫連接
126         Connection con = null;
127         try {
128             con = DBUtil.getConnection();
129         } catch (SQLException e1) {
130             e1.printStackTrace();
131         }
132         // (3)建立會話,執行sql語句
133         try {
134             Statement stmt = con.createStatement();
135             // 定義sql語句
136             String sqlString = "delete from petmessage where petName="
137                     + pet.getPetName() + ";";
138             // 執行sql語句
139             stmt.execute(sqlString);
140             //給出提示
141             System.out.println("********************");
142             System.out.println("寵物刪除成功!(^o^)");
143             System.out.println("********************");
144             //關閉資源
145             DBUtil.closeConnection();
146             
147         } catch (SQLException e) {
148             // TODO 自動生成 catch 塊
149             System.out.println("根據寵物名字刪除寵物信息失敗!");
150             e.printStackTrace();
151         }
152     }
153 
154     // 4.根據寵物ID修改寵物信息
155     public static void doUpdateWithID(PetMessage pet) {
156         //(1)獲取寵物信息
157         int petId = pet.getPetId();
158         String petSort = pet.getPetSort();
159         String petName = pet.getPetName();
160         String petSex = pet.getPetSex();
161         int petAge = pet.getPetAge();
162         String petDate = pet.getPetDate();
163 
164         // (2)建立數據庫連接
165         Connection con = null;
166         try {
167             con = DBUtil.getConnection();
168         } catch (SQLException e1) {
169             e1.printStackTrace();
170         }
171         // (3)建立會話,執行sql語句
172         try {
173             Statement stmt = con.createStatement();
174             // 定義sql語句
175             String sqlString = "update petmessage set petName='"
176                     + pet.getPetName() + "' where petId=" + pet.getPetId()
177                     + ";";
178             // 執行sql語句
179             stmt.execute(sqlString);
180             //給出相應的提示
181             System.out.println("**********************");
182             System.out.println("寵物信息修改成功!(^o^)");
183             System.out.println("**********************");
184             //關閉資源
185             DBUtil.closeConnection();
186         } catch (SQLException e) {
187             // TODO 自動生成 catch 塊
188             System.out.println("根據寵物ID修改寵物信息失敗");
189             e.printStackTrace();
190         }
191     }
192 
193     // 5.根據寵物名字修改寵物信息
194     public static void doUpdateWithName(PetMessage pet) {
195         //(1)獲取寵物信息
196         int petId = pet.getPetId();
197         String petSort = pet.getPetSort();
198         String petName = pet.getPetName();
199         String petSex = pet.getPetSex();
200         int petAge = pet.getPetAge();
201         String petDate = pet.getPetDate();
202 
203         // (2)建立數據庫連接
204         Connection con = null;
205         try {
206             con = DBUtil.getConnection();
207         } catch (SQLException e1) {
208             e1.printStackTrace();
209         }
210         // (3)建立會話,執行sql語句
211         try {
212             Statement stmt = con.createStatement();
213             // 定義sql語句
214             String sqlString = "update petmessage set petAge='"
215                     + pet.getPetAge() + "' where petName=" + pet.getPetName()
216                     + ";";
217             // 執行sql語句
218             stmt.execute(sqlString);
219             //給出相應的提示
220             System.out.println("**********************");
221             System.out.println("寵物信息修改成功!(^o^)");
222             System.out.println("**********************");
223             //關閉資源
224             DBUtil.closeConnection();
225         } catch (SQLException e) {
226             // TODO 自動生成 catch 塊
227             System.out.println("據寵物名字修改寵物信息失敗");
228             e.printStackTrace();
229         }
230     }
231 
232     // 6.按ID查詢寵物信息
233     public static void doSelectWithId(PetMessage pet) {
234         //(1)獲取寵物信息
235         int petId = pet.getPetId();
236         String petSort = pet.getPetSort();
237         String petName = pet.getPetName();
238         String petSex = pet.getPetSex();
239         int petAge = pet.getPetAge();
240         String petDate = pet.getPetDate();
241         // (2)建立數據庫連接
242         Connection con = null;
243         try {
244             con = DBUtil.getConnection();
245         } catch (SQLException e1) {
246             // TODO Auto-generated catch block
247             e1.printStackTrace();
248         }
249         try {
250             // (3)創建語句對象
251             Statement stmt = con.createStatement();
252             // (4)定義sql語句
253             String sqlString = "select * from petMessage where petId="
254                     + pet.getPetId() + ";";
255             //(5) 創建結果集 並執行sql語句
256             ResultSet rs = stmt.executeQuery(sqlString);
257             //(6)對結果集進行解析
258             System.out.println("查詢結果如下:");
259             while (rs.next()) {
260                 System.out.println("寵物ID: " + rs.getInt("petId") + "   寵物種類:"
261                         + rs.getString("petSort") + "   寵物名字:"
262                         + rs.getString("petName") + "   寵物性別:"
263                         + rs.getString("petSex") + "   寵物年齡:"
264                         + rs.getInt("petAge") + "   寵物入庫時間:"
265                         + rs.getString("petDate"));
266             }
267             
268             //(7)關閉相應的資源
269             DBUtil.closeConnection();
270         } catch (SQLException e) {
271             // TODO 自動生成 catch 塊
272             System.out.println("按ID查詢寵物信息失敗");
273             e.printStackTrace();
274         }
275     }
276 
277     // 7.按名字查詢寵物信息
278     public static void doSelectWithName(PetMessage pet) {
279         //(1)獲取寵物信息
280         int petId = pet.getPetId();
281         String petSort = pet.getPetSort();
282         String petName = pet.getPetName();
283         String petSex = pet.getPetSex();
284         int petAge = pet.getPetAge();
285         String petDate = pet.getPetDate();
286         // (2)建立數據庫連接
287         Connection con = null;
288         try {
289             con = DBUtil.getConnection();
290         } catch (SQLException e1) {
291             // TODO Auto-generated catch block
292             e1.printStackTrace();
293         }
294         try {
295             // (3)創建語句對象
296             Statement stmt = con.createStatement();
297             //(4) 定義sql語句
298             String sqlString = "select * from petMessage where petName='"
299                     + pet.getPetName() + "';";
300             // (5)創建結果集 並執行sql語句
301             ResultSet rs = stmt.executeQuery(sqlString);
302             // (6)對結果集進行解析
303             System.out.println("查詢結果如下:");
304             while (rs.next()) {
305                 System.out.println("寵物ID: " + rs.getInt("petId") + "   寵物種類:"
306                         + rs.getString("petSort") + "   寵物名字:"
307                         + rs.getString("petName") + "   寵物性別:"
308                         + rs.getString("petSex") + "   寵物年齡:"
309                         + rs.getInt("petAge") + "   寵物入庫時間:"
310                         + rs.getString("petDate"));
311             }
312             // (7)關閉所以對象
313             DBUtil.closeConnection();
314         } catch (SQLException e) {
315             // TODO 自動生成 catch 塊
316             System.out.println("按名字查詢寵物信息失敗!");
317             e.printStackTrace();
318         }
319     }
320 }

 

測試類PetTest 

 1 package com.daliu.jdbc;
 2 
 3 public class PetTest {
 4     public static void main(String[] args) {
 5 
 6         // 測試數據
 7         // PetMessage pet=new
 8         // PetMessage(1,"leopard","小豹子","female",5,"2014-12-19");
 9         // PetMessage pet1=new
10         // PetMessage(1,"Dog","小狗狗","female",6,"2014-12-20");
11         // PetMessage pet2=new
12         // PetMessage(1,"Cat","小咪咪","female",7,"2014-12-21");
13         // PetMessage pet3=new
14         // PetMessage(1,"mouse","小老鼠","female",8,"2014-12-22");
15         // PetMessage pet4=new
16         // PetMessage(1,"elephant","大象","female",9,"2014-12-23");
17         // PetMessage pet5=new
18         // PetMessage(1,"swan","天鵝","female",10,"2014-12-24");
19 
20         // 功能測試:
21 
22         // ****1.增添寵物信息 ********
23         // PetDAO.doAdd(pet);
24         // PetDAO.doAdd(pet1);
25         // PetDAO.doAdd(pet2);
26         // PetDAO.doAdd(pet3);
27         // PetDAO.doAdd(pet4);
28         // PetDAO.doAdd(pet5);
29 
30         // ****2. 根據寵物ID刪除寵物信息 ********
31         PetMessage pet = new PetMessage(1, "leopard", "小豹子", "female", 5,
32                 "2014-12-19");
33         pet.setPetId(1);
34         PetDAO.doSelectWithId(pet);
35 
36         // ****3.根據寵物名字查詢寵物信息 ********
37         // PetMessage pet = new PetMessage(1, "leopard", "小豹子", "female", 5,
38         // "2014-12-19");
39         // pet.setPetName("小老鼠");
40         // PetDAO.doSelectWithName(pet);
41 
42         // ****4.根據寵物ID修改寵物信息****
43         // PetDAO.doUpdateWithID(pet);
44 
45         // ****5.根據寵物名字修改寵物信息****
46         // PetDAO.doUpdateWithName(pet);
47 
48         // ****6.根據寵物ID修改寵物信息****
49         // PetDAO.doDeleteWithId(pet);
50         // ****7.根據寵物名字修改寵物信息****
51         // PetDAO.doDeleteWithName(pet);
52     }
53 }

 

一些測試效果:

 

 

SQL腳本:

 1 create database PegSystem;
 2 
 3 use PegSystem;
 4 
 5 create table pet(
 6 
 7     #private int petId;
 8     #private String petSort;
 9     
10     #private String petName;
11     #private String petSex;
12     #private int petAge;
13     #private String petDate;
14 
15     petId int(7),
16     petSort varchar(20),
17     petName varchar(20),
18     petAge int(4),
19     petDate  varchar(20)
20 );
21 
22 #select * from pet;
23 
24 rename table pet to petMessage;
25 
26 #select * from petMessage;
27 
28 alter table  petMessage add( petsex varchar(20));
29 
30 desc petMessage;
31 
32 select * from petMessage;

 

配置文件:

1 jdbc.driver=com.mysql.jdbc.Driver
2 jdbc.url=jdbc:mysql://localhost:3306/PegSystem
3 jdbc.user=root
4 jdbc.password=123456
5 initsize=1
6 maxactive=1
7 maxwait=5000
8 maxidle=1
9 minidle=1

 

轉載請標明來自:http://www.cnblogs.com/liuhongfeng/p/4173775.html

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved