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

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 宠物有狗和企鹅。 狗的属性有:编号、名称、亲密值、健康值、品种、所属主人编号。 企鹅的属性有:编号、名称、亲密值、健康值、性别、所属主人编号。 该系统中主人可以领养宠物,主人的属性有:编号、用户名、密码、姓名、地址、电话。

宠物有狗和企鹅。

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

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

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

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

创建宠物表与主人表,狗和企鹅、主人各初始化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);

 

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7月前
|
数据库
JavaWeb用户信息管理系统-创建登录业的业务层
JavaWeb用户信息管理系统-创建登录业的业务层
23 0
|
6月前
|
SQL Java BI
JSP超市销售管理统myeclipse开发sql数据库BS模式java编程网页结构
JSP 超市销售管理系统是一套完善的web设计系统,对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发,开发环境为TOMCAT7.0,Myeclipse8.5开发,数据库为SQLSERVER2008,使用java语言开发
25 0
|
4天前
|
JavaScript Java 测试技术
基于Java的游泳会员管理系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的游泳会员管理系统的设计与实现(源码+lw+部署文档+讲解等)
18 0
|
4天前
|
JavaScript Java 测试技术
基于Java的健身房会员管理系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的健身房会员管理系统的设计与实现(源码+lw+部署文档+讲解等)
18 0
|
7天前
|
JavaScript Java 测试技术
基于Java的连锁超市会员管理系统的设计与实现(源码+lw+部署文档+讲解等)
基于Java的连锁超市会员管理系统的设计与实现(源码+lw+部署文档+讲解等)
17 0
|
1月前
|
存储 NoSQL Java
基于springboot的水果购物商城管理系统(程序+文档+数据库)
基于springboot的水果购物商城管理系统(程序+文档+数据库)
|
1月前
|
前端开发 Java 数据库连接
基于SpringBoot宠物领养系统的设计与实现(代码+数据库+文档)
基于SpringBoot宠物领养系统的设计与实现(代码+数据库+文档)
|
3月前
|
前端开发 应用服务中间件 测试技术
实战SSM_O2O商铺_19【商铺编辑】Controller层开发
实战SSM_O2O商铺_19【商铺编辑】Controller层开发
24 0
|
3月前
|
测试技术
实战SSM_O2O商铺_17【商铺编辑】Dao层开发
实战SSM_O2O商铺_17【商铺编辑】Dao层开发
26 1
|
3月前
|
测试技术
实战SSM_O2O商铺_18【商铺编辑】Service层开发
实战SSM_O2O商铺_18【商铺编辑】Service层开发
24 0