zoukankan      html  css  js  c++  java
  • 比较满意设计的一次作业 JDBC宠物管理

    package com.dao;
    
    import java.util.List;
    
    import com.entity.Master;
    
    public interface MasterDao {
        public List<Master> findAll();
        public Master findByName(String name);
        public Master findByNameAndPwd(String name,String pwd);
    }
    package com.dao;
    
    import java.util.List;
    
    import com.entity.Pet_type;
    
    public interface Pet_typeDao {
        public List<String> findAllName();
        public Pet_type findByName(String name);
    }
    package com.dao;
    
    import com.entity.Pet;
    
    public interface PetDao {
        public void save(Pet pet);
    }
    com.dao
    package com.daoImpl;
    
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.ArrayList;
    import java.util.List;
    
    import com.dao.MasterDao;
    import com.entity.Master;
    import com.util.JDBCTool;
    
    public class MasterDaoImpl implements MasterDao {
        private ResultSet rs;
        @Override
        public List<Master> findAll() {
            String sql="SELECT * FROM master";
            rs=JDBCTool.Query(sql);
            ArrayList<Master> masterArray=new ArrayList<Master>();
            try{
                while(rs.next()){
                    Master master=new Master();
                    master.setId(rs.getInt(1));
                    master.setLoginName(rs.getString(2));
                    master.setPasswrod(rs.getString(3));
                    masterArray.add(master);
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return masterArray;
        }
    
        @Override
        public Master findByName(String name) {
            String sql="SELECT * FROM master WHERE loginname=?";
            rs=JDBCTool.Query(sql, name);
            Master master=new Master();
            try{
                master.setId(rs.getInt(1));
                master.setLoginName(rs.getString(2));
                master.setPasswrod(rs.getString(3));
            }catch(SQLException e){
                e.printStackTrace();
            }
            
            return master;
        }
    
        @Override
        public Master findByNameAndPwd(String name, String pwd) {
            String sql="SELECT * FROM master WHERE loginname=? AND password=?";
            rs=JDBCTool.Query(sql, name, pwd);
            Master m=new Master();
            try{
                if(!rs.next()){
                    return null;
                }
                m.setId(rs.getInt(1));
                m.setLoginName(rs.getString(2));
                m.setPasswrod(rs.getString(3));
            }catch(SQLException e){
                e.printStackTrace();
            }
            return m;
        }
    
    }
    package com.daoImpl;
    
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.ArrayList;
    import java.util.List;
    
    import com.dao.Pet_typeDao;
    import com.entity.Pet_type;
    import com.util.JDBCTool;
    
    public class Pet_typeDaoImpl implements Pet_typeDao {
        private ResultSet rs;
        @Override
        public List<String> findAllName() {
            String sql="SELECT name FROM pet_type";
            ArrayList<String> names=new ArrayList<String>();
            rs=JDBCTool.Query(sql);
            try {
                while(rs.next()){
                    names.add(rs.getString(1));
                }
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return names;
        }
    
        @Override
        public Pet_type findByName(String name)   {
            String sql="SELECT * FROM pet_type WHERE NAME=?";
            rs=JDBCTool.Query(sql, name);
            Pet_type pt=new Pet_type();
            try{
                if(rs.next()){
                    pt.setId(rs.getInt(1));
                    pt.setName(rs.getString(2));
                }    
            }catch(SQLException e){
                e.printStackTrace();
            }
            return pt;
        }
    
    }
    package com.daoImpl;
    
    import com.dao.PetDao;
    import com.entity.Pet;
    import com.util.JDBCTool;
    
    public class PetDaoImpl implements PetDao {
    
        @Override
        public void save(Pet pet) {
            String sql="INSERT INTO pet (master_id,name,type_id,health,love,adopt_time)" +
                    "VALUES (?,?,?,?,?,?)";    
            String sql1="INSERT INTO pet (master_id,name,type_id,love,adopt_time)" +
            "VALUES (?,?,?,?,?)";    
            if(pet.getHealth()==0){
                JDBCTool.DML(sql1, pet.getMaster_id(),pet.getName(),pet.getType_id(),pet.getLove(),pet.getAdopt_time());
            }else{
                JDBCTool.DML(sql, pet.getMaster_id(),pet.getName(),pet.getType_id(),pet.getHealth(),pet.getLove(),pet.getAdopt_time());
            }
        }
    
    }
    com.daoImpl
    package com.entity;
    
    public class Master {
        private int id;
        private String loginName;
        private String passwrod;
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getLoginName() {
            return loginName;
        }
        public void setLoginName(String loginName) {
            this.loginName = loginName;
        }
        public String getPasswrod() {
            return passwrod;
        }
        public void setPasswrod(String passwrod) {
            this.passwrod = passwrod;
        }
        public Master(int id, String loginName, String passwrod) {
            super();
            this.id = id;
            this.loginName = loginName;
            this.passwrod = passwrod;
        }
        public Master() {
            super();
        }
        
    
    }
    package com.entity;
    
    public class Pet_type {
        private int id;
        private String name;
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public Pet_type() {
            super();
        }
        public Pet_type(int id, String name) {
            super();
            this.id = id;
            this.name = name;
        }
        
    
    }
    package com.entity;
    
    import java.sql.Date;
    
    public class Pet {
        private int id;
        private int master_id;
        private String name;
        private int type_id;
        private int health;
        private String love;
        private Date adopt_time;
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public int getMaster_id() {
            return master_id;
        }
        public void setMaster_id(int master_id) {
            this.master_id = master_id;
        }
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
        public int getType_id() {
            return type_id;
        }
        public void setType_id(int type_id) {
            this.type_id = type_id;
        }
        public int getHealth() {
            return health;
        }
        public void setHealth(int health) {
            this.health = health;
        }
        public String getLove() {
            return love;
        }
        public void setLove(String love) {
            this.love = love;
        }
        public Date getAdopt_time() {
            return adopt_time;
        }
        public void setAdopt_time(Date adopt_time) {
            this.adopt_time = adopt_time;
        }
        public Pet() {
            super();
        }
        public Pet( int master_id, String name, int type_id,
                 Date adopt_time) {
            super();
            this.master_id = master_id;
            this.name = name;
            this.type_id = type_id;
            this.adopt_time = adopt_time;
        }
        
    
    }
    com.entity
    package com.server;
    
    import java.util.List;
    
    import com.dao.MasterDao;
    import com.dao.PetDao;
    import com.dao.Pet_typeDao;
    import com.daoImpl.MasterDaoImpl;
    import com.daoImpl.PetDaoImpl;
    import com.daoImpl.Pet_typeDaoImpl;
    import com.entity.Master;
    import com.entity.Pet;
    import com.entity.Pet_type;
    
    public class MasterManager {
        private Master master;
        private Pet_type tp;
        private Pet pet;
        private MasterDao masterdao;
        private Pet_typeDao pet_typedao;
        private PetDao petdao;
        public MasterManager(){
            masterdao=new MasterDaoImpl();
            pet_typedao=new Pet_typeDaoImpl();
            petdao=new PetDaoImpl();
        }
        public boolean login(String name,String pwd){
            Master m=masterdao.findByNameAndPwd(name, pwd);
            this.master=m;
            return m!=null;
        }
        
        public boolean checkPet(List<String> pets,String petname){
            for(String s:pets){
                if(s.equals(petname)){
                    tp=pet_typedao.findByName(s);
                    return true;
                }
            }
            System.out.println("宠物类型有误,领养失败!");
            return false;
        }
        public List<String> showPet(){
            List<String> pets=pet_typedao.findAllName();
            for(String petname:pets){
                System.out.print(petname+" | ");
            }
            System.out.println();
            return pets;
        }
        public void adoptPet(Pet pt){
            pet=pt;
            pet.setMaster_id(master.getId());
            pet.setType_id(tp.getId());
            petdao.save(pet);
        }
    
    }
    com.server
    package com.test;
    
    import java.sql.Date;
    import java.util.List;
    import java.util.Scanner;
    
    import com.entity.Pet;
    import com.server.MasterManager;
    import com.util.JDBCTool;
    
    public class Test {
        public static void main(String[] args) {
            JDBCTool.getConnecttion();
            Scanner sc=new Scanner(System.in);
            MasterManager mm=new MasterManager();
            System.out.println("----欢迎光临宠物乐园-----");
            System.out.print("请输入用户名:");
            String user=sc.nextLine();
            System.out.print("请输入密码:");
            String pwd=sc.nextLine();
            boolean isLogin=mm.login(user, pwd);
            if(!isLogin){
                System.out.println("登陆失败,用户名或密码错误!");
                System.exit(0);
            }
            System.out.println("登陆成功!");
            System.out.println("请选择宠物类型:");
            List<String> namelist=mm.showPet();
            String petname=sc.nextLine();
            boolean flag=mm.checkPet(namelist, petname);
            if(!flag){
                System.out.println("宠物类型有误,领养失败!");
                System.exit(0);
            }
            System.out.print("请输入宠物昵称:");
            petname=sc.nextLine();
            Pet pt=new Pet();
            pt.setName(petname);
            pt.setAdopt_time(new Date(new java.util.Date().getTime()));
            mm.adoptPet(pt);
            System.out.println("领养成功!");
            
        }
    
    }
    com.test
    package com.util;
    
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.util.Properties;
    
    public class JDBCTool {
        private JDBCTool(){}
        private static Connection conn;
        private static PreparedStatement pstml;
        private static ResultSet rs;
        public static void getConnecttion(){
            Properties prop=new Properties();
            try {
                prop.load(new FileInputStream("src/jdbc.properties"));
            } catch (FileNotFoundException e1) {
                e1.printStackTrace();
            } catch (IOException e1) {
                e1.printStackTrace();
            }
            String driver=prop.getProperty("driver");
            String url=prop.getProperty("url");
            String user=prop.getProperty("user");
            String pwd=prop.getProperty("pwd");
            try {
                Class.forName(driver);
                conn=DriverManager.getConnection(url,user,pwd);
            } catch (ClassNotFoundException e) {
                e.printStackTrace();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
        
        public static int DML(String sql,Object ... params){//使用可变参数
            int num=0;
            try {
                pstml=conn.prepareStatement(sql);
                if(params!=null){
                    for(int i=0;i<params.length;i++){
                        pstml.setObject((i+1), params[i]);
                    }
                }    
                conn.setAutoCommit(false);//关闭自动提交,开启事务
                try{
                num=pstml.executeUpdate();
                    conn.commit();
                }catch(Exception e){
                    conn.rollback();
                    e.printStackTrace();
                }
                
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return num;
        }
        
        public static ResultSet Query(String sql,Object ... params){
            
            try {
                pstml=conn.prepareStatement(sql);
                if (params != null) {
                    for (int i = 0; i < params.length; i++) {
                        pstml.setObject((i + 1), params[i]);
                    }
                }
                return rs = pstml.executeQuery();
            } catch (SQLException e) {
                e.printStackTrace();
            }
            return rs;
    
        }
        
        public static void closeAll(){
            if(rs!=null){
                try {
                    rs.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if(pstml!=null){
                try {
                    pstml.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
            if(conn!=null){
                try {
                    conn.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
        public static boolean isConnect(){
            return conn==null?false:true;
        }
    }
    com.util
    driver=com.mysql.jdbc.Driver
    url=jdbc:mysql://localhost:3306/db_gz?CharacterEncoding=UTF-8
    user=guodaxia
    pwd=961012gz
    jdbc.properties
    CREATE DATABASE db_gz DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
    USE db_gz
    CREATE TABLE master
    (
     id int AUTO_INCREMENT PRIMARY KEY,
     loginname varchar(50) UNIQUE NOT NULL,
     password varchar(50)
    );
    
    CREATE TABLE pet_type
    (
     id int AUTO_INCREMENT PRIMARY KEY,
     name varchar(50) UNIQUE NOT NULL
    );
    
    CREATE TABLE pet
    (
     id int AUTO_INCREMENT PRIMARY KEY,
     master_id int NOT NULL,
     name varchar(50) NOT NULL,
     type_id int NOT NULL,
     health int NOT NULL DEFAULT 80,
     love varchar(100),
     adopt_time date,
     FOREIGN KEY (master_id) REFERENCES master (id),
     FOREIGN KEY (type_id) REFERENCES pet_type(id)
    );
    INSERT INTO master (loginname,password) VALUES ('郭大侠','123456');
    INSERT INTO pet_type (name) VALUES ('狗狗'),('企鹅'),('猫咪');
    
    select * from master;
    
    
    select * from master where loginname='郭大侠' and password='123456';
    SELECT * FROM master WHERE loginname='郭大侠' AND password='123456';
    
    select * from pet;
    database sql
  • 相关阅读:
    每天一个Linux指令--httpd
    每天一个Linux指令--alias和unalias
    每天一个Linux指令--adduser
    每天一个Linux指令--ls
    VScode 配置c/c++环境(结合各大网站的blog和官方文档)
    关于大数组定义为全局变量和内部变量的一些区别
    关于simplememory theme的设置和感想
    第一次训练赛感受和题解
    短期目标-1
    家事杂谈
  • 原文地址:https://www.cnblogs.com/aigeileshei/p/5606603.html
Copyright © 2011-2022 走看看