使用DAO模式开发宠物管理系统---hellokitty

宠物有狗和企鹅。

狗的属性有:编号、名称、亲密值、健康值、品种、所属主人编号。

企鹅的属性有:编号、名称、亲密值、健康值、性别、所属主人编号。

该系统中主人可以领养宠物,主人的属性有:编号、用户名、密码、姓名、地址、电话。

要求将狗和企鹅的数据保存到同一张表中除所属主人编号、品种、性别外,其余列均不允许为空。主人编号为空表示该宠物未被人领养。

创建宠物表与主人表,狗和企鹅、主人各初始化5条以上的记录用于测试。

编写程序实现以下功能:

1. 主人可以登录到系统中完成下列操作:

2. 主人可以查看当前系统中未被领养的宠物

3. 主人可以领养宠物

4. 主人可以查看自己已领养的所有宠物的信息

5. 主人可以根据编号查询宠物信息

6. 主人可以弃养自己已领养的宠物

7. 退出系统

 我是java的初学者,中间代码也有可能有错误的,或是不够简洁的。。。

 

 

辅助类

  1 package test;
  2
  3 /**
  4  * DAO模式
  5  * 第一步 辅助类
  6  *
  7  * @author acer
  8  *
  9  */
 10 import java.io.File;
 11 import java.sql.Connection;
 12 import java.sql.DriverManager;
 13 import java.sql.PreparedStatement;
 14 import java.sql.ResultSet;
 15 import java.sql.SQLException;
 16 import java.util.Iterator;
 17 import java.util.List;
 18
 19 import org.dom4j.Document;
 20 import org.dom4j.Element;
 21 import org.dom4j.io.SAXReader;
 22
 23 /**
 24  *
 25  * JDBC编程步骤:
 26  * 1  加载驱动  Class.forName("字符串")
 27  * 2 建立Connection对象
 28  * 3 通过Connetion创建PreparedStatement对象
 29  * 4 执行SQL语句
 30  * 5 处理结果
 31  * 6 释放资源
 32  * @author acer
 33  *
 34  */
 35 public class JdbcUtil {
 36
 37     private static String driver;// 驱动
 38     private static String url;// 连接字符串
 39     private static String user;// 用户名
 40     private static String password;// 密码
 41
 42     private static Connection conn;// Connection对象
 43     private static PreparedStatement ptmt;// PreparedStatement对象
 44     private static ResultSet rs;// ResultSet对象
 45
 46     /* 加载数据库驱动 */
 47     static {
 48         try {
 49             loadDatabase();
 50         } catch (Exception e1) {
 51             e1.printStackTrace();
 52         }
 53         try {
 54             Class.forName(driver);
 55         } catch (ClassNotFoundException e) {
 56             throw new RuntimeException(e);
 57         }
 58     }
 59
 60     private JdbcUtil() {
 61
 62     }
 63
 64     /**
 65      * 读取配置文件
 66      *
 67      * @throws Exception
 68      */
 69
 70     private static void loadDatabase() throws Exception {
 71         // 创建SAXReader对象
 72         SAXReader reader = new SAXReader();
 73         // 创建Document对象
 74         Document document = reader.read(new File("src/test/database.xml"));
 75         List list = document.selectNodes("/database/driver");
 76         // 迭代
 77         Iterator it = list.iterator();
 78         while (it.hasNext()) {
 79             Element item = (Element) it.next();
 80             driver = item.getText();
 81         }
 82
 83         list = document.selectNodes("/database/url");
 84         it = list.iterator();
 85         while (it.hasNext()) {
 86             Element item = (Element) it.next();
 87             url = item.getText();
 88         }
 89
 90         list = document.selectNodes("/database/user");
 91         it = list.iterator();
 92         while (it.hasNext()) {
 93             Element item = (Element) it.next();
 94             user = item.getText();
 95         }
 96
 97         list = document.selectNodes("/database/password");
 98         it = list.iterator();
 99         while (it.hasNext()) {
100             Element item = (Element) it.next();
101             password = item.getText();
102         }
103     }
104
105     /**
106      * 获取数据库连接
107      *
108      * @return 连接对象
109      */
110     public static Connection getConnection() {
111         try {
112             return conn = DriverManager.getConnection(url, user, password);
113         } catch (SQLException e) {
114             throw new RuntimeException(e);
115         }
116     }
117
118     /**
119      * 释放ResultSet资源
120      *
121      * @param rs
122      */
123     public static void close(ResultSet rs) {
124         try {
125             if (null != rs)
126                 rs.close();
127         } catch (SQLException e) {
128             throw new RuntimeException(e);
129         }
130     }
131
132     /**
133      * 释放PreparedStatement资源
134      *
135      * @param ptmt
136      */
137     public static void close(PreparedStatement ptmt) {
138         try {
139             if (null != ptmt)
140                 ptmt.close();
141         } catch (SQLException e) {
142             throw new RuntimeException(e);
143         }
144     }
145
146     /**
147      * 释放Connection资源
148      *
149      * @param conn
150      */
151     public static void close(Connection conn) {
152         try {
153             if (null != conn)
154                 conn.close();
155         } catch (SQLException e) {
156             throw new RuntimeException(e);
157         }
158     }
159
160     /**
161      * 释放所有资源
162      */
163     public static void close() {
164         try {
165             if (null != rs && !rs.isClosed()) {
166                 rs.close();
167             }
168             rs = null;
169         } catch (SQLException e) {
170             throw new RuntimeException(e);
171         } finally {
172             try {
173                 if (null != ptmt && !ptmt.isClosed()) {
174                     ptmt.close();
175                 }
176                 ptmt = null;
177             } catch (SQLException e) {
178                 throw new RuntimeException(e);
179             } finally {
180                 try {
181                     System.out.println(conn);
182                     if (null != conn && !conn.isClosed()) {
183                         conn.close();
184                     }
185                     conn = null;
186                 } catch (SQLException e) {
187                     throw new RuntimeException(e);
188                 }
189             }
190         }
191     }
192
193     /**
194      * 执行增删改
195      *
196      * @param sql
197      *            待执行的SQL语句
198      * @param params
199      *            SQL语句中?占位符的参数
200      * @return 受影响的行数
201      */
202     public static int executeUpdate(String sql, Object... params) {
203         try {
204             if (null == conn)
205                 getConnection();
206             ptmt = conn.prepareStatement(sql);
207             if (null != params) { // 为SQL语句中?占位符设置参数
208                 for (int i = 0; i < params.length; i++) {
209                     ptmt.setObject(i + 1, params[i]);
210                 }
211             }
212             int cnt = ptmt.executeUpdate();
213             return cnt;
214         } catch (SQLException e) {
215             throw new RuntimeException(e);
216         }
217     }
218
219     /**
220      * 执行查询操作
221      *
222      * @param sql
223      * @param params
224      * @return 查询出来的结果集
225      */
226     public static ResultSet executeQuery(String sql, Object... params) {
227         try {
228             ptmt = conn.prepareStatement(sql);
229             if (null != params) {
230                 for (int i = 0; i < params.length; i++) { // 为每个?占位符设置参数
231                     ptmt.setObject(i + 1, params[i]);
232                 }
233             }
234             return rs = ptmt.executeQuery();
235         } catch (SQLException e) {
236             throw new RuntimeException("执行查询操作失败", e);
237         }
238     }
239
240     /**
241      * 查询
242      */
243     public static ResultSet executeQuery(String sql) {
244
245         try {
246             ptmt = conn.prepareStatement(sql);
247         } catch (SQLException e1) {
248             e1.printStackTrace();
249         }
250         try {
251             return rs = ptmt.executeQuery();
252         } catch (SQLException e) {
253             e.printStackTrace();
254         }
255         return rs;
256
257     }
258
259 }
  1 package test;
  2
  3 import java.sql.ResultSet;
  4 import java.util.Scanner;
  5
  6 import test.dao.PetDao;
  7 import test.dao.impl.PetDaoMySQLImpl;
  8 import test.entity.Master;
  9 import test.entity.Pet;
 10
 11 /**
 12  * 用户的能力
 13  * @author acer
 14  *
 15  */
 16 public class MasterManger {
 17     /**
 18      * 登录主菜单
 19      * @throws Exception
 20      */
 21     public void frist() throws Exception{
 22         Scanner input = new Scanner(System.in);
 23         System.out.println("欢迎来到宠物上世界!");
 24         System.out.println("请选择。。。。。\n1 登录    2 注册   3退出");
 25         int choose = input.nextInt();
 26         switch(choose){
 27         case 1:
 28             login();
 29             break;
 30         case 2:
 31             register();
 32             break;
 33         case 3:
 34             System.exit(0);
 35         }
 36     }
 37     /**
 38      *
 39      * 新用户注册
 40      * @throws Exception
 41      */
 42     public void register() throws Exception{
 43         Scanner input=new Scanner(System.in);
 44         System.out.print("请注册你的用户名:");
 45         String username = input.next();
 46         System.out.print("请注册你的密码:");
 47         String password = input.next();
 48         System.out.print("请注册你的名字:");
 49         String name = input.next();
 50         System.out.print("请注册你的地址:");
 51         String address = input.next();
 52         System.out.print("请注册你的电话号码:");
 53         int phone = input.nextInt();
 54         Master master=new Master(username,password,name,address,phone);
 55         //保存到数据库中
 56         PetDao dao=new PetDaoMySQLImpl();
 57         int cnt=dao.save(master);
 58         System.out.println("注册成功!\n您可以登录了!!!");
 59         login();
 60     }
 61
 62
 63     /**
 64      * 主人登录
 65      * @throws Exception
 66      */
 67     public void login() throws Exception{
 68         Scanner input = new Scanner(System.in);
 69         System.out.print("请输入你的用户名:");
 70         String username= input.next();
 71         System.out.print("请输入你的密码:");
 72         String password = input.next();
 73         String sql="select * from master where username=? and password=?";
 74         JdbcUtil.getConnection();
 75         //执行查询
 76         ResultSet rs=JdbcUtil.executeQuery(sql,username,password);
 77         if(rs.next()){
 78             System.out.println("主人登录成功!");
 79             System.out.println("主人的基本信息:");
 80             System.out.println("编码:"+rs.getInt("id")+"\n姓名:"+rs.getString("name")+
 81                     "\n地址:"+rs.getString("address")+"\n电话:"+rs.getInt("phone"));
 82             menu();
 83         }
 84         else{
 85             System.out.println("1 用户名或密码错误");
 86             System.out.println("2 还是您还没有注册呢!");
 87             int start=input.nextInt();
 88             if(start==1){
 89                  login() ;
 90             }
 91             else if(start==2){
 92                 register();
 93             }
 94
 95         }
 96     }
 97
 98     /**
 99      * 4 根据id号查询宠物信息
100      * @throws Exception
101      */
102
103    public void findPetById() throws Exception{
104        Scanner input=new Scanner(System.in);
105        System.out.println("请输入你查询的宠物id号:");
106        int id=input.nextInt();
107        String sql="select * from pet where id=?";
108        JdbcUtil.getConnection();
109        ResultSet rs=JdbcUtil.executeQuery(sql, id);
110        System.out.println("这是你查找的宠物信息!!");
111        if(rs.next()){
112            if(rs.getString("gender").equals("无")){
113                  System.out.println("宠物狗");
114                  System.out.println("编号:"+rs.getInt("id")+"\t名字:"+rs.getString("name")+"\t亲密值:"
115              +rs.getInt("love")+"\t健康值:"+rs.getInt("health")+"\t品种:"+rs.getString("varietiess"));
116              }
117              else{
118                  System.out.println("\n宠物企鹅");
119                  System.out.println("编号:"+rs.getInt("id")+"\t名字:"+rs.getString("name")+"\t亲密值:"
120                          +rs.getInt("love")+"\t健康值:"+rs.getInt("health")+"\t性别:"+rs.getString("gender"));
121              }
122        }
123
124
125
126    }
127
128    /**
129     * 1 查询所有没有被领养的宠物
130     * @throws Exception
131     */
132
133     public void findAllNoMaster() throws Exception{
134         String sql="select * from pet where masterId=0";
135         JdbcUtil.getConnection();
136         ResultSet rs=JdbcUtil.executeQuery(sql);
137          System.out.println("这些是还没有被领养的宠物");
138     while(rs.next()){
139          if(rs.getString("gender").equals("无")){
140              System.out.println("宠物狗");
141              System.out.println("编号:"+rs.getInt("id")+"\t名字:"+rs.getString("name")+"\t亲密值:"
142          +rs.getInt("love")+"\t健康值:"+rs.getInt("health")+"\t品种:"+rs.getString("varietiess"));
143          }
144          else{
145              System.out.println("\n宠物企鹅");
146              System.out.println("编号:"+rs.getInt("id")+"\t名字:"+rs.getString("name")+"\t\t亲密值:"
147                      +rs.getInt("love")+"\t健康值:"+rs.getInt("health")+"\t性别:"+rs.getString("gender"));
148          }
149      }
150
151
152     }
153
154     /**
155      * 2 查询自己所养的宠物
156      * @throws Exception
157      */
158
159     public void myPet() throws Exception{
160         Scanner input = new Scanner(System.in);
161         System.out.println("请输入你的ID号:");
162         int id=input.nextInt();
163         String sql="select * from pet where masterId=?";
164         JdbcUtil.getConnection();
165         ResultSet rs = JdbcUtil.executeQuery(sql,id);
166          System.out.println("这是您的宠物信息!!");
167          while(rs.next()){
168              if(rs.getString("gender").equals("无")){
169                  System.out.println("宠物狗");
170                  System.out.println("编号:"+rs.getInt("id")+"\t名字:"+rs.getString("name")+"\t亲密值:"
171              +rs.getInt("love")+"\t健康值:"+rs.getInt("health")+"\t品种:"+rs.getString("varietiess"));
172              }
173              else{
174                  System.out.println("宠物企鹅");
175                  System.out.println("编号:"+rs.getInt("id")+"\t名字:"+rs.getString("name")+"\t\t亲密值:"
176                          +rs.getInt("love")+"\t健康值:"+rs.getInt("health")+"\t性别:"+rs.getString("gender"));
177              }
178          }
179     }
180
181
182     /**
183      * 领养宠物
184      */
185     public void adoptPet(){
186
187         Scanner input = new Scanner(System.in);
188         System.out.println("请输入你的编号:");
189         int id=input.nextInt();
190         System.out.println("请输入你要领养宠物的编号:");
191         int num=input.nextInt();
192         Pet pet=new Pet(id,num);
193         PetDao dao=new PetDaoMySQLImpl();
194         int cnt=dao.adoptPet(pet);
195
196         if(cnt==1){
197         System.out.println("领养成功!!");
198         }else{
199             System.out.println("领养失败!");
200         }
201     }
202
203     /**
204      * 弃养自己的宠物
205      */
206
207     public void updatePet(){
208         Scanner input = new Scanner(System.in);
209         System.out.println("请输入你要弃养宠物的名字:");
210         String name=input.next();
211         System.out.println("请确认你所弃养的宠物编号:");
212         int id=input.nextInt();
213         Pet pet=new Pet(name,id);
214         PetDao dao=new PetDaoMySQLImpl();
215         int cnt=dao.updatePet(pet);
216         if(cnt==1){
217         System.out.println("就这样放弃了您的宠物!!!");
218         }else{
219             System.out.println("弃养宠物失败!");
220         }
221
222     }
223
224   /**
225    *
226    * 功能主菜单
227  * @throws Exception
228    */
229     public void menu() throws Exception{
230         Scanner input =new Scanner(System.in);
231         System.out.println("\n请选择。。。");
232         while (true){
233         System.out.println("1 查看当前系统中未被领养的宠物\n2 查看自己已领养的所有宠物的信息\n3"
234                 + " 根据编号查询宠物信息\n4 弃养自己已领养的宠物\n5 可以领养宠物\n6 退出系统");
235         int choose=input.nextInt();
236         switch(choose){
237         case 1:
238             findAllNoMaster();
239             break;
240         case 2:
241              myPet();
242             break;
243         case 3:
244             findPetById();
245             break;
246         case 4:
247              myPet();
248              updatePet();
249             break;
250         case 5:
251             findAllNoMaster();
252             adoptPet();
253             break;
254         case 6:
255             System.exit(0);
256         }
257         }
258     }
259
260
261
262
263 }
测试类

1 package test;
2
3 public class Test {
4   public static void main(String[] args) throws Exception {
5       MasterManger u=new MasterManger();
6        u.frist();
7   }
8 }

实体类

 1 package test.entity;
 2 /**
 3  * 第二步  实体
 4  * 宠物类
 5  * @author acer
 6  *
 7  */
 8 public class Pet {
 9
10     private int id;//编号
11     private String name;//名称
12     private int love;//亲密值
13     private int health;//健康值
14     private int masterId;//所属主人编号
15     public Pet() {
16         super();
17     }
18     public Pet(int id, String name, int love, int health, int masterId) {
19         super();
20         this.id = id;
21         this.name = name;
22         this.love = love;
23         this.health = health;
24         this.masterId = masterId;
25     }
26
27     public Pet(int masterId) {
28         super();
29         this.masterId = masterId;
30     }
31
32     public Pet(String name) {
33         super();
34         this.name = name;
35     }
36
37     public Pet(int masterId, int id ) {
38         super();
39         this.id = id;
40         this.masterId = masterId;
41     }
42     public int getId() {
43         return id;
44     }
45     public void setId(int id) {
46         this.id = id;
47     }
48     public String getName() {
49         return name;
50     }
51     public void setName(String name) {
52         this.name = name;
53     }
54     public int getLove() {
55         return love;
56     }
57     public void setLove(int love) {
58         this.love = love;
59     }
60     public int getHealth() {
61         return health;
62     }
63     public void setHealth(int health) {
64         this.health = health;
65     }
66     public int getMasterId() {
67         return masterId;
68     }
69     public void setMasterId(int masterId) {
70         this.masterId = masterId;
71     }
72
73
74     public Pet(String name,int id ) {
75         super();
76         this.id = id;
77         this.name = name;
78     }
79     @Override
80     public String toString() {
81         return "Pet [id=" + id + ", name=" + name + ", love=" + love
82                 + ", health=" + health + ", masterId=" + masterId + "]";
83     }
84
85
86 }

 

 1 package test.entity;
 2 /**
 3  * 宠物狗
 4  * @author acer
 5  *
 6  */
 7 public class Dogs extends Pet {
 8     public String varieties;//品种
 9
10     public Dogs(){
11     }
12
13     public Dogs(int id, String name, int love, int health, int masterId,
14             String varieties) {
15         super(id, name, love, health, masterId);
16         this.varieties = varieties;
17     }
18
19     public String getVarieties() {
20         return varieties;
21     }
22
23     public void setVarieties(String varieties) {
24         this.varieties = varieties;
25     }
26
27     @Override
28     public String toString() {
29         return "Dogs [varieties=" + varieties + "+ super.toString() + ";
30     }
31
32
33 }
  1 package test.entity;
  2 /**
  3  * 主人类
  4  * @author acer
  5  *
  6  */
  7 public class Master {
  8
  9     private int id;
 10     private String username;
 11     private String password;
 12     private String name;
 13     private String address;
 14     private int phone;
 15
 16     public Master(int id) {
 17         super();
 18         this.id = id;
 19     }
 20
 21     public Master(String username, String password, String name,
 22             String address, int phone) {
 23         super();
 24         this.username = username;
 25         this.password = password;
 26         this.name = name;
 27         this.address = address;
 28         this.phone = phone;
 29     }
 30
 31     public Master(int id, String username, String password, String name,
 32             String address, int phone) {
 33         super();
 34         this.id = id;
 35         this.username = username;
 36         this.password = password;
 37         this.name = name;
 38         this.address = address;
 39         this.phone = phone;
 40     }
 41
 42     public int getId() {
 43         return id;
 44     }
 45
 46     public void setId(int id) {
 47         this.id = id;
 48     }
 49
 50     public String getUsername() {
 51         return username;
 52     }
 53
 54     public void setUsername(String username) {
 55         this.username = username;
 56     }
 57
 58     public String getPassword() {
 59         return password;
 60     }
 61
 62     public void setPassword(String password) {
 63         this.password = password;
 64     }
 65
 66     public String getName() {
 67         return name;
 68     }
 69
 70     public void setName(String name) {
 71         this.name = name;
 72     }
 73
 74     public String getAddress() {
 75         return address;
 76     }
 77
 78     public void setAddress(String address) {
 79         this.address = address;
 80     }
 81
 82     public int getPhone() {
 83         return phone;
 84     }
 85
 86     public void setPhone(int phone) {
 87         this.phone = phone;
 88     }
 89
 90     @Override
 91     public String toString() {
 92         return "Master [id=" + id + ", username=" + username + ", password="
 93                 + password + ", name=" + name + ", address=" + address
 94                 + ", phone=" + phone + "]";
 95     }
 96
 97
 98
 99
100
101
102 }
 1 package test.entity;
 2 /**
 3  * 企鹅类
 4  * @author acer
 5  *
 6  */
 7 public class Penguin extends Pet{
 8     private String gender;
 9     public Penguin(){
10
11     }
12     public Penguin(int id, String name, int love, int health, int masterId,
13             String gender) {
14         super(id, name, love, health, masterId);
15         this.gender = gender;
16     }
17     public String getGender() {
18         return gender;
19     }
20     public void setGender(String gender) {
21         this.gender = gender;
22     }
23     @Override
24     public String toString() {
25         return "Penguin [gender=" + gender + "" + super.toString()
26                 + "]";
27     }
28
29
30 }

DAO接口

 1 package test.dao;
 2 /**
 3  * 第三步: DAO接口
 4  */
 5 import java.sql.ResultSet;
 6 import test.entity.Master;
 7 import test.entity.Pet;
 8
 9 public interface PetDao {
10     /**
11      * 用于注册新的用户
12      * @param master
13      * @return
14      */
15
16     int save(Master master);
17     /**
18      * 2 查看没有被领养的宠物
19      *
20      * @return 宠物
21      */
22     ResultSet noMasterPet();
23
24     /**
25      * 根据编号查询宠物信息
26      */
27     ResultSet getPetById(int id);
28     /**
29      * 查看自己的宠物
30      */
31     ResultSet myPet(int id);
32     /**
33      * 领养宠物
34      */
35     int adoptPet(Pet pet);
36     /**
37      *
38      * 弃养自己的宠物
39      */
40     int updatePet(Pet pet);
41      }

DAO接口实现类

 1 package test.dao.impl;
 2
 3 /**
 4  * 第四步  DAO接口实现类
 5  *
 6  */
 7 import java.sql.ResultSet;
 8
 9 import test.JdbcUtil;
10 import test.dao.PetDao;
11 import test.entity.Master;
12 import test.entity.Pet;
13
14 public class PetDaoMySQLImpl implements PetDao {
15     /**
16      * 注册 成功
17      */
18     @Override
19     public int save(Master master) {
20         // 1 SQL语句
21         String sql = "insert into master(username,password,name,address,phone) values (?,?,?,?,?)";
22         // 2 建立连接
23         JdbcUtil.getConnection();
24         // 3 执行操作
25         int cnt = JdbcUtil.executeUpdate(sql, master.getUsername(),
26                 master.getPassword(), master.getName(), master.getAddress(),
27                 master.getPhone());
28         // 4 释放资源
29         JdbcUtil.close();
30         return cnt;
31     }
32
33     /**
34      * 没有被领养的宠物 成功
35      */
36     @Override
37     public ResultSet noMasterPet() {
38         String sql = "select * from pet where masterId =0";
39         JdbcUtil.getConnection();
40         ResultSet rs = JdbcUtil.executeQuery(sql);
41         JdbcUtil.close();
42         return rs;
43     }
44
45     /**
46      * 根据id号查找宠物 成功
47      */
48     @Override
49     public ResultSet getPetById(int id) {
50         String sql = "select * form pet where id=?";
51         JdbcUtil.getConnection();
52         ResultSet rs = JdbcUtil.executeQuery(sql, id);
53         JdbcUtil.close();
54         return rs;
55     }
56
57     /**
58      * 查询自己的宠物 成功
59      *
60      */
61     @Override
62     public ResultSet myPet(int id) {
63         String sql = "select * from pet where masterId=?";
64         JdbcUtil.getConnection();
65         ResultSet rs = JdbcUtil.executeQuery(sql, id);
66         JdbcUtil.close();
67         return rs;
68
69     }
70
71     /**
72      * 领养宠物
73      *
74      */
75     @Override
76     public int adoptPet(Pet pet) {
77         String sql = "update pet set masterId=? where id=?";
78         JdbcUtil.getConnection();
79         int cnt = JdbcUtil.executeUpdate(sql, pet.getMasterId(), pet.getId());
80         JdbcUtil.close();
81         return cnt;
82     }
83
84     /**
85      *
86      * 弃养自己的宠物
87      */
88     @Override
89     public int updatePet(Pet pet) {
90         String sql = "update pet set masterId=0 WHERE name=? and id=?";
91         JdbcUtil.getConnection();
92         int cnt = JdbcUtil.executeUpdate(sql, pet.getName(), pet.getId());
93         JdbcUtil.close();
94         return cnt;
95     }
96
97 }

数据库内容

 1 create table pet(
 2 id int not null primary key auto_increment,
 3 name varchar(50) not null,
 4 love int not null,
 5 health  int not null,
 6 varietiess varchar(20),
 7 gender varchar(10),
 8 masterId int
 9 );
10
11 create table master(
12 id int not null primary key auto_increment,
13 username varchar(50) not null,
14 password varchar(50) not null,
15 name varchar(50) not null,
16 address varchar(100) not null,
17 phone int not null
18 );
19
20 insert into pet values (null,'小狗one',90,90,'牧羊犬','无',1);
21 insert into pet values (null,'小狗two',90,90,'牧羊犬','无',2);
22 insert into pet values (null,'小狗three',90,90,'牧羊犬','无',3);
23 insert into pet values (null,'小狗four',90,90,'牧羊犬','无',0);
24 insert into pet values (null,'小狗five',90,90,'牧羊犬','无',0);
25 insert into pet values (null,'小狗six',90,90,'牧羊犬','无',0);
26
27 insert into pet values (null,'企鹅1',89,89,'无','男',1);
28 insert into pet values (null,'企鹅2',89,89,'无','女',0);
29 insert into pet values (null,'企鹅3',89,89,'无','男',0);
30 insert into pet values (null,'企鹅4',89,89,'无','女',0);
31 insert into pet values (null,'企鹅5',89,89,'无','男',2);
32
33 insert into master values (null,'one','one1','张三','四川成都',4914676);
34 insert into master values (null,'two','two2','李四','四川成都',4914671);
35 insert into master values (null,'three','three3','王五','四川成都',4914672);
36 insert into master values (null,'four','four4','小明','四川成都',4914673);
37 insert into master values (null,'five','five5','小鬼','四川成都',4914674);

 

时间: 2024-10-24 18:41:22

使用DAO模式开发宠物管理系统---hellokitty的相关文章

Hibernate和Spring的延迟加载和DAO模式

Hibernate和延迟加载 Hibernate对象关系映射提供了两种对象初始化模式:延迟加载和非延迟加载.非延迟加载在加载时获取对象本身以及它关联的所有对象.这可能导致在获取一个实例时,执行成百上千的select语句.当使用双向关联时,这个问题被放大,常常出现初始化请求时,整个数据库都被载入.显然检查每个对象的关系,并手工删除他们会费点事,但最终我们可能会因此丢失使用ORM工具的优势.一个明细的解决方式是使用hibernate提供的延迟载入机制.这种初始化策略在类成员被访问时只载入它的一个对象

C/S模式开发中如何利用WebBrowser控件制作导航窗体

原文:C/S模式开发中如何利用WebBrowser控件制作导航窗体 转自: CSDN 相信不少同学们都做过MIS系统的开发,今天这里不讨论B/S模式开发的问题.来谈谈winform开发.用过市面上常见进销存系统的同学肯定知道,在进入系统之后一般在mdi窗体中系统自动打开一个导航子窗体.将一些常见的功能以非常直观的图形展示给用户.观察市面上的此类产品,该功能基本是所有mdi窗体开发的管理系统中必备的功能窗体.下面我们就来分析一下如何在.net中实现这个功能.幸好我上次做了一个类似的系统,里面也用到

熟悉DAO模式的用法

今天主要是使用DAO模式. DAO模式通过对业务层提供数据抽象层接口,实现了以下目标:  1. 数据存储逻辑的分离 通过对数据访问逻辑进行抽象,为上层机构提供抽象化的数据访问接口.业务层无需关心具体的select,insert,update操作,这样,一方面避免 了业务代码中混杂JDBC调用语句,使得业务落实实现更加清晰,另一方面,由于数据访问几口语数据访问实现分离,也使得开发人员的专业划分 成为可能.某些精通数据库操作技术的开发人员可以根据接口提供数据库访问的最优化实现,而精通业务的开发人员则

Spring 与 Hibernate 的延迟加载和 Dao 模式

Hibernate 与延迟加载: Hibernate 对象关系映射提供延迟的与非延迟的对象初始化.非延迟加载在读取一个对象的时候会将与这个对象所有相关的其他对象一起读取出来.这有时会导致成百的(如果不是成千的话) select 语句在读取对象的时候执行.这个问题有时出现在使用双向关系的时候,经常会导致整个数据库都在初始化的阶段被读出来了.当然,你可以不厌其烦地检查每一个对象与其他对象的关系,并把那些最昂贵的删除,但是到最后,我们可能会因此失去了本想在 ORM 工具中获得的便利. 一个明显的解决方

求解答 模式-DAO模式增删改查问题求解答

问题描述 DAO模式增删改查问题求解答 @Test public void testSave() throws Exception { EmployeeDAO dao = new EmployeeDAO(); Employee e = new Employee(); e.setName("John"); e.setSalary(200); e.setAge(22); //调用方法 是properties类的方法 过时 添加方法 dao.save(e); 解决方案 不知道你在问什么 解决

codefirst-EF环境,CodeFirst模式开发,同项目多个数据库,如何设定自动数据迁移

问题描述 EF环境,CodeFirst模式开发,同项目多个数据库,如何设定自动数据迁移 如题,我的整个工程比较复杂,有多个数据库,统一放在名为DataBase的类库项目下,供其他项目调用. 我的应用项目也有好几个,我想对每个项目单独设置自动迁移数据,现在发现有困难. 因为每次启动一个数据迁移,都是在同一个Migrations文件夹下,这个没有给我自定义名字的地方.并且启动文件都是Configuration.cs这个类,也没有给我自定义名字的地方. 也就是说,我一次只能设定一个数据库进行自动迁移.

sqlserver2005-关于MVC+Jsp模式学生成绩管理系统中src下servlet和bean的设置问题

问题描述 关于MVC+Jsp模式学生成绩管理系统中src下servlet和bean的设置问题 <%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" %> 无标题文档 /jsp:useBean <% if(stu_id==null){response.sendRedirect("login.jsp"

java开发-IE浏览器 浏览器模式和文档模式 开发中调试版本兼容问题

问题描述 IE浏览器 浏览器模式和文档模式 开发中调试版本兼容问题 我现在电脑安装的是ie10,当我在开发中想测试页面是否兼容10以下的版本时,是通过切换浏览器模式至低版本,还是切换文档模式至低版本,还是同时都切换,并保持一致. 希望用IE开发的老工程师回答,感激. 解决方案 装一个IETester,IETester是一个免费的WebBrowser控件,让您有渲染和IE8的JavaScript引擎,IE7和IE 6在Windows 7,Vista和XP的IE5.5中,以及在同一进程中安装的IE浏

android launcher-android访客模式开发launcher加载

问题描述 android访客模式开发launcher加载 各位哥哥姐姐,最近在开发一个功能,访客模式,在源码上面修改,就是不想让其他人看到一些应用,把一些应用屏蔽掉,我的思路是根据不同的解锁图案来加载不同的launcher数据库,我在launcherprovider的基础上又新建了一个内容提供者,请问各位,在解锁后如何切换不同的数据库呢?也就是重新加载,刚研究源码一段时间,不太清楚在哪控制,请各位指教啊!谢谢了! 解决方案 http://blog.csdn.net/wh_19910525/art