比较满意设计的一次作业 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体系架构的源代码:第二个是 ...
随机推荐
- Ruby Profiler 详解之 stackprof
简介 stackprof 是基于采样的一个调优工具,采样有什么好处呢?好处就是你可以线上使用,按照内置的算法抓取一部分数据,只影响一小部分性能.它会产生一系列的 dump 文件,然后你在线下分析这些文 ...
- Java开发WebService的几种方法--转载
webservice的应用已经越来越广泛了,下面介绍几种在Java体系中开发webservice的方式,相当于做个记录. 1.Axis2 Axis是apache下一个开源的webservice开发组件 ...
- 处理HTTP状态码
1.1.4 处理HTTP状态码 上一节介绍HttpClient访问Web资源的时候,涉及HTTP状态码.比如下面这条语句: int statusCode=httpClient.executeMeth ...
- UVA 11609 Teams 组合数学+快速幂
In a galaxy far far away there is an ancient game played among the planets. The specialty of the gam ...
- Junit4中的新断言assertThat的使用方法
如果需要是用assertThat需要在项目中引入junit4的jar包.(匹配器和断言方法在junit4的jar包中都能找到,引入就可以了) 下面是常用断言的代码 1 import static or ...
- Axis学习的第一天
下载axis的相关工程包: 选中这2个文件下载: 1)axis-bin-1.4.zip 含有axis工程包,将工程包复制到tomcat里的webapps目录下: 2)axis-src-1.4.zip ...
- jquery的ajax()函数传值中文乱码解决方法介绍
jquery的ajax()函数传值中文乱码解决方法介绍,需要的朋友可以参考下 代码如下: $.ajax({ dataType : ‘json', type : ‘POST', url : ‘http: ...
- C语言标准
1,K&R C 1978年, Dennis Ritchie和Brian Wilson Kernighan合作出版了<The C Programming Language>的第一版. ...
- TCP非阻塞accept和非阻塞connect
http://blog.chinaunix.net/uid-20751538-id-238260.html 非阻塞accept 当一个已完成的连接准备好被accept的时候,select会把监 ...
- Girls: different perspectives to consider
Girls: different perspectives to consider成为极品女人的十大要素The point of articles such as these isn't to dic ...