比较满意设计的一次作业 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 ('郭大侠','');
INSERT INTO pet_type (name) VALUES ('狗狗'),('企鹅'),('猫咪'); select * from master; select * from master where loginname='郭大侠' and password='';
SELECT * FROM master WHERE loginname='郭大侠' AND password=''; select * from pet;
database sql
比较满意设计的一次作业 JDBC宠物管理的更多相关文章
- 2017-2018-1 20179205《Linux内核原理与设计》第九周作业
<Linux内核原理与设计>第九周作业 视频学习及代码分析 一.进程调度时机与进程的切换 不同类型的进程有不同的调度需求,第一种分类:I/O-bound 会频繁的进程I/O,通常会花费很多 ...
- 【淘淘】Quartz作业存储与管理
一.Quartz作业管理和存储方式简介: 作业一旦被调度,调度器需要记住并且跟踪作业和它们的执行次数.如果你的作业是30分钟后或每30秒调用,这不是很有用.事实上,作业执行需要非常准确和即时调用在被调 ...
- CSDN上看到的一篇有关Spring JDBC事务管理的文章(内容比较全) (转)
JDBC事务管理 Spring提供编程式的事务管理(Programmatic transaction manage- ment)与声明式的事务管理(Declarative transaction ma ...
- Python作业之工资管理
作业之工资管理 工资管理实现要求: 工资管理系统 Alex 100000 Rain 80000 Egon 50000 Yuan 30000 -----以上是info.txt文件----- 实现效果: ...
- 春天JDBC事务管理
JDBC事务管理 春天提供编程式的事务管理(编程式事务管理)与声明式的事务管理(声明式事务management),为不同的事务实现提供了一致的编程模型,这节以JDBC事务为例,介绍Spring的事务管 ...
- JDBC事务管理
JDBC事务管理 概念回顾: 事务:一个包含多个步骤的业务操作,如果这个业务操作被事务管理,那么这个业务操作的多个步骤要么同时失败,要么同时成功 事务操作: 开启事务 提交事务 回滚事务 使用Conn ...
- spring JDBC 事务管理
spring JDBC 事务管理 一.Spring 中的JDBC Spring中封装了JDBC的ORM框架,可以用它来操作数据,不需要再使用外部的OEM框架(MyBatis),一些小的项目用它. 步骤 ...
- 《实时控制软件设计》第一周作业 欧梓峰 U201317662 (更新)
CNC 插补计算程序分析 前言:插补(Interpolation),即机床数控系统依照一定方法确定刀具运动轨迹的过程.一般是已知起点坐标.终点坐标和轨迹,由数控插补计算程序实时的算出各个中间的坐标来拟 ...
- 2017-2018-1 20179205《Linux内核原理与设计》第四周作业
<Linux内核原理与分析> 视频学习及实验操作 Linux内核源代码 视频中提到了三个我们要重点专注的目录下的代码,一个是arch目录下的x86,支持不同cpu体系架构的源代码:第二个是 ...
随机推荐
- MySQL查看表占用空间大小(转)
MySQL查看表占用空间大小(转) //先进去MySQL自带管理库:information_schema //自己的数据库:dbwww58com_kuchecarlib //自己的表:t_carmod ...
- 关于c语言中的字符数组和字符串指针
先看代码: #include <stdio.h> int main(void) { ] = "; char * strTmp = "abcdefg"; int ...
- django转义safe
“何谓转义?就是把html语言的关键字过滤掉.例如,<div>就是html的关键字,如果要在html页面上呈现<div>,其源代码就必须是<div> 默认情况下,d ...
- POJ 2136
#include <iostream> #include <string> #define MAXN 26 using namespace std; int _m[MAXN]; ...
- Codeforces Round #336 (Div. 2) A. Saitama Destroys Hotel 模拟
A. Saitama Destroys Hotel Saitama accidentally destroyed a hotel again. To repay the hotel company ...
- lintcode:逆序对
题目 在数组中的两个数字如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.给你一个数组,求出这个数组中逆序对的总数.概括:如果a[i] > a[j] 且 i < j, a[i] ...
- Spring学习总结(2)——Spring IOC的前世今生
前些天,参与了公司内部小组的一次技术交流,主要是针对<IOC与AOP>,本着学而时习之的态度及积极分享的精神,我就结合一个小故事来初浅地剖析一下我眼中的“IOC前世今生”,以方便初学者能更 ...
- 教你使用UIWindow实现窗口的切换
这两天写了一个手势解锁,该死的需求要求这个手势解锁页面各种出现,毕竟人家这个客户端酒20多个领导用用的,怕泄密就加了各种保密措施.先来看下需求:1.用户注册登录后跳转设置手势页面(必须设置).2.ap ...
- mysql 常用命令(备忘)
1:使用SHOW语句找出在服务器上当前存在什么数据库: mysql> SHOW DATABASES; 2:2.创建一个数据库MYSQLDATA mysql> CREATE DATABASE ...
- JSP的执行过程及其异常处理机制
1.JSP的执行过程 虽然JSP感觉上很像一般的HTML网页,但事实上它是以Servlet的形式被运行的.因为JSP文件在第一次运行的时候会先解释成Servlet源文件,然后编译成Servle ...