首页 > 代码库 > 利用jdbc实现的宠物信息管理系统
利用jdbc实现的宠物信息管理系统
一、需求:
利用jdbc实现对宠物的信息进行管理的一套系统
宠物信息:宠物ID,宠物类别,宠物名字,宠物性别,宠物年龄,宠物入库日期
系统完成功能:实现对宠物信息的录入,修改,删除,查询。
二、解决方案
一共创建了四个类:
1.一个宠物类PetMessage 里面是宠物的信息
2.一个是数据库连接类DBUtil 里面主要是完成数据连接功能
3.一个是宠物管理类PetDAO 完成对宠物信息的增删该查
4.最后一个就是一个测试类PetTest
完成对系统的测试
三、具体实现:
新建一个java项目,并导入需要用到的包。如下图:
宠物类PetMessage
1 package com.daliu.jdbc; 2 3 /** 4 * 宠物信息类 5 * 6 */ 7 public class PetMessage { 8 9 //1.定义宠物的属性10 // 宠物信息:宠物ID,宠物类别,宠物名字,宠物性别,宠物年龄,宠物入库日期11 private int petId;12 private String petSort;13 private String petName;14 private String petSex;15 private int petAge;16 private String petDate;17 18 //2.生成一个无参构造方法和有参构造方法19 20 public PetMessage(){}21 22 public PetMessage(int petId, String petSort, String petName, String petSex,23 int petAge, String petDate) {24 super();25 this.petId = petId;26 this.petSort = petSort;27 this.petName = petName;28 this.petSex = petSex;29 this.petAge = petAge;30 this.petDate = petDate;31 }32 33 34 //3.生成属性的get,set方法35 public int getPetId() {36 return petId;37 }38 public void setPetId(int petId) {39 this.petId = petId;40 }41 public String getPetSort() {42 return petSort;43 }44 public void setPetSort(String petSort) {45 this.petSort = petSort;46 }47 public String getPetName() {48 return petName;49 }50 public void setPetName(String petName) {51 this.petName = petName;52 }53 public String getPetSex() {54 return petSex;55 }56 public void setPetSex(String petSex) {57 this.petSex = petSex;58 }59 public int getPetAge() {60 return petAge;61 }62 public void setPetAge(int petAge) {63 this.petAge = petAge;64 }65 public String getPetDate() {66 return petDate;67 }68 public void setPetDate(String petDate) {69 this.petDate = petDate;70 }71 72 //4.属性的toString方法,并改进为自己所要的样子73 @Override74 public String toString() {75 return "PetMessage [petId=" + petId + ", petSort=" + petSort76 + ", petName=" + petName + ", petSex=" + petSex + ", petAge="77 + petAge + ", petDate=" + petDate + "]";78 }79 }
数据库连接类DBUtil
1 package com.daliu.jdbc; 2 3 import java.io.InputStream; 4 import java.sql.Connection; 5 import java.sql.SQLException; 6 import java.util.Properties; 7 8 import org.apache.commons.dbcp.BasicDataSource; 9 10 /** 11 * 使用连接池技术管理数据库连接 12 */ 13 public class DBUtil { 14 15 // 数据库连接池 16 private static BasicDataSource dbcp; 17 18 // 为不同线程管理连接 19 private static ThreadLocal<Connection> tl; 20 21 // 通过配置文件来获取数据库参数 22 static { 23 try { 24 Properties prop = new Properties(); 25 26 InputStream is = DBUtil.class.getClassLoader().getResourceAsStream( 27 "com/daliu/jdbc/db.properties"); 28 29 prop.load(is); 30 is.close(); 31 32 // 一、初始化连接池 33 dbcp = new BasicDataSource(); 34 35 // 设置驱动 (Class.forName()) 36 dbcp.setDriverClassName(prop.getProperty("jdbc.driver")); 37 // 设置url 38 dbcp.setUrl(prop.getProperty("jdbc.url")); 39 // 设置数据库用户名 40 dbcp.setUsername(prop.getProperty("jdbc.user")); 41 // 设置数据库密码 42 dbcp.setPassword(prop.getProperty("jdbc.password")); 43 // 初始连接数量 44 dbcp.setInitialSize(Integer.parseInt(prop.getProperty("initsize"))); 45 // 连接池允许的最大连接数 46 dbcp.setMaxActive(Integer.parseInt(prop.getProperty("maxactive"))); 47 // 设置最大等待时间 48 dbcp.setMaxWait(Integer.parseInt(prop.getProperty("maxwait"))); 49 // 设置最小空闲数 50 dbcp.setMinIdle(Integer.parseInt(prop.getProperty("minidle"))); 51 // 设置最大空闲数 52 dbcp.setMaxIdle(Integer.parseInt(prop.getProperty("maxidle"))); 53 // 初始化线程本地 54 tl = new ThreadLocal<Connection>(); 55 } catch (Exception e) { 56 System.out.println("初始化失败,请检查配置文件是否符合!"); 57 e.printStackTrace(); 58 } 59 } 60 61 /** 62 * 获取数据库连接 63 * 64 * @return 65 * @throws SQLException 66 */ 67 public static Connection getConnection() throws SQLException { 68 /* 69 * 通过连接池获取一个空闲连接 70 */ 71 Connection conn = dbcp.getConnection(); 72 tl.set(conn); 73 return conn; 74 } 75 76 /** 77 * 关闭数据库连接 78 */ 79 public static void closeConnection() { 80 try { 81 Connection conn = tl.get(); 82 if (conn != null) { 83 /* 84 * 通过连接池获取的Connection 的close()方法实际上并没有将 连接关闭,而是将该链接归还。 85 */ 86 conn.close(); 87 tl.remove(); 88 } 89 } catch (Exception e) { 90 System.out.println("释放资源失败!"); 91 e.printStackTrace(); 92 throw new RuntimeException(e); 93 } 94 } 95 96 /** 97 * 测试是否连接成功 98 * 99 * @param args100 * @throws SQLException101 */102 public static void main(String[] args) throws SQLException {103 System.out.println(getConnection());104 }105 }
宠物管理类PetDAO
1 package com.daliu.jdbc; 2 3 import java.sql.Connection; 4 import java.sql.ResultSet; 5 import java.sql.SQLException; 6 import java.sql.Statement; 7 8 /** 9 * 宠物信息操作类 10 * 11 */ 12 public class PetDAO { 13 14 // 1.增添宠物信息 15 public static void doAdd(PetMessage pet) { 16 17 // (1)通过宠物信息类获得宠物信息的定义 18 int petId = pet.getPetId(); 19 String petSort = pet.getPetSort(); 20 String petName = pet.getPetName(); 21 String petSex = pet.getPetSex(); 22 int petAge = pet.getPetAge(); 23 String petDate = pet.getPetDate(); 24 25 // (2)与数据库连接 26 Connection con = null; 27 try { 28 con = DBUtil.getConnection(); 29 } catch (SQLException e1) { 30 e1.printStackTrace(); 31 } 32 33 34 // (3)创建会话,执行sql语句 35 try { 36 Statement stmt = con.createStatement(); 37 // 定义sql语句 38 String sqlString = "insert into petmessage(petid,petsort,petname,petsex,petage,petdate) values(" 39 + pet.getPetId() 40 + ",‘" 41 + pet.getPetSort() 42 + "‘,‘" 43 + pet.getPetName() 44 + "‘,‘" 45 + pet.getPetSex() 46 + "‘," 47 + pet.getPetAge() 48 + ",‘" 49 + pet.getPetDate() + "‘);"; 50 51 // (4)执行sql语句 52 stmt.execute(sqlString); 53 54 //(5)给出相应的提示 55 System.out.println("********************"); 56 System.out.println("宠物添加成功!(^o^)"); 57 System.out.println("********************"); 58 59 //(6)最后释放资源 60 DBUtil.closeConnection(); 61 62 63 } catch (SQLException e) { 64 // TODO 自动生成 catch 块 65 System.out.println("增加失败!"); 66 e.printStackTrace(); 67 68 } 69 } 70 71 //2. 根据宠物ID删除宠物信息 72 public static void doDeleteWithId(PetMessage pet) { 73 74 //1.获得改宠物的信息 75 int petId = pet.getPetId(); 76 String petSort = pet.getPetSort(); 77 String petName = pet.getPetName(); 78 String petSex = pet.getPetSex(); 79 int petAge = pet.getPetAge(); 80 String petDate = pet.getPetDate(); 81 82 // 2.建立数据库连接 83 Connection con = null; 84 try { 85 con = DBUtil.getConnection(); 86 } catch (SQLException e1) { 87 e1.printStackTrace(); 88 } 89 //3. 建立会话 ,执行sql语句 90 try { 91 Statement stmt = con.createStatement(); 92 // 定义sql语句 93 String sqlString = "delete from petmessage where petid=" 94 + pet.getPetId() + ";"; 95 96 // 执行sql语句 97 stmt.execute(sqlString); 98 99 //给出相应的提示100 System.out.println("********************");101 System.out.println("宠物删除成功!(^o^)");102 System.out.println("********************");103 104 //关闭资源105 DBUtil.closeConnection();106 107 } catch (SQLException e) {108 // TODO 自动生成 catch 块109 System.out.println("根据宠物ID删除宠物信息失败!");110 e.printStackTrace();111 }112 }113 114 // 3.根据宠物名字删除宠物信息115 public static void doDeleteWithName(PetMessage pet) {116 117 //(1)获取宠物的信息118 int petId = pet.getPetId();119 String petSort = pet.getPetSort();120 String petName = pet.getPetName();121 String petSex = pet.getPetSex();122 int petAge = pet.getPetAge();123 String petDate = pet.getPetDate();124 125 // (2)建立数据库连接126 Connection con = null;127 try {128 con = DBUtil.getConnection();129 } catch (SQLException e1) {130 e1.printStackTrace();131 }132 // (3)建立会话,执行sql语句133 try {134 Statement stmt = con.createStatement();135 // 定义sql语句136 String sqlString = "delete from petmessage where petName="137 + pet.getPetName() + ";";138 // 执行sql语句139 stmt.execute(sqlString);140 //给出提示141 System.out.println("********************");142 System.out.println("宠物删除成功!(^o^)");143 System.out.println("********************");144 //关闭资源145 DBUtil.closeConnection();146 147 } catch (SQLException e) {148 // TODO 自动生成 catch 块149 System.out.println("根据宠物名字删除宠物信息失败!");150 e.printStackTrace();151 }152 }153 154 // 4.根据宠物ID修改宠物信息155 public static void doUpdateWithID(PetMessage pet) {156 //(1)获取宠物信息157 int petId = pet.getPetId();158 String petSort = pet.getPetSort();159 String petName = pet.getPetName();160 String petSex = pet.getPetSex();161 int petAge = pet.getPetAge();162 String petDate = pet.getPetDate();163 164 // (2)建立数据库连接165 Connection con = null;166 try {167 con = DBUtil.getConnection();168 } catch (SQLException e1) {169 e1.printStackTrace();170 }171 // (3)建立会话,执行sql语句172 try {173 Statement stmt = con.createStatement();174 // 定义sql语句175 String sqlString = "update petmessage set petName=‘"176 + pet.getPetName() + "‘ where petId=" + pet.getPetId()177 + ";";178 // 执行sql语句179 stmt.execute(sqlString);180 //给出相应的提示181 System.out.println("**********************");182 System.out.println("宠物信息修改成功!(^o^)");183 System.out.println("**********************");184 //关闭资源185 DBUtil.closeConnection();186 } catch (SQLException e) {187 // TODO 自动生成 catch 块188 System.out.println("根据宠物ID修改宠物信息失败");189 e.printStackTrace();190 }191 }192 193 // 5.根据宠物名字修改宠物信息194 public static void doUpdateWithName(PetMessage pet) {195 //(1)获取宠物信息196 int petId = pet.getPetId();197 String petSort = pet.getPetSort();198 String petName = pet.getPetName();199 String petSex = pet.getPetSex();200 int petAge = pet.getPetAge();201 String petDate = pet.getPetDate();202 203 // (2)建立数据库连接204 Connection con = null;205 try {206 con = DBUtil.getConnection();207 } catch (SQLException e1) {208 e1.printStackTrace();209 }210 // (3)建立会话,执行sql语句211 try {212 Statement stmt = con.createStatement();213 // 定义sql语句214 String sqlString = "update petmessage set petAge=‘"215 + pet.getPetAge() + "‘ where petName=" + pet.getPetName()216 + ";";217 // 执行sql语句218 stmt.execute(sqlString);219 //给出相应的提示220 System.out.println("**********************");221 System.out.println("宠物信息修改成功!(^o^)");222 System.out.println("**********************");223 //关闭资源224 DBUtil.closeConnection();225 } catch (SQLException e) {226 // TODO 自动生成 catch 块227 System.out.println("据宠物名字修改宠物信息失败");228 e.printStackTrace();229 }230 }231 232 // 6.按ID查询宠物信息233 public static void doSelectWithId(PetMessage pet) {234 //(1)获取宠物信息235 int petId = pet.getPetId();236 String petSort = pet.getPetSort();237 String petName = pet.getPetName();238 String petSex = pet.getPetSex();239 int petAge = pet.getPetAge();240 String petDate = pet.getPetDate();241 // (2)建立数据库连接242 Connection con = null;243 try {244 con = DBUtil.getConnection();245 } catch (SQLException e1) {246 // TODO Auto-generated catch block247 e1.printStackTrace();248 }249 try {250 // (3)创建语句对象251 Statement stmt = con.createStatement();252 // (4)定义sql语句253 String sqlString = "select * from petMessage where petId="254 + pet.getPetId() + ";";255 //(5) 创建结果集 并执行sql语句256 ResultSet rs = stmt.executeQuery(sqlString);257 //(6)对结果集进行解析258 System.out.println("查询结果如下:");259 while (rs.next()) {260 System.out.println("宠物ID: " + rs.getInt("petId") + " 宠物种类:"261 + rs.getString("petSort") + " 宠物名字:"262 + rs.getString("petName") + " 宠物性别:"263 + rs.getString("petSex") + " 宠物年龄:"264 + rs.getInt("petAge") + " 宠物入库时间:"265 + rs.getString("petDate"));266 }267 268 //(7)关闭相应的资源269 DBUtil.closeConnection();270 } catch (SQLException e) {271 // TODO 自动生成 catch 块272 System.out.println("按ID查询宠物信息失败");273 e.printStackTrace();274 }275 }276 277 // 7.按名字查询宠物信息278 public static void doSelectWithName(PetMessage pet) {279 //(1)获取宠物信息280 int petId = pet.getPetId();281 String petSort = pet.getPetSort();282 String petName = pet.getPetName();283 String petSex = pet.getPetSex();284 int petAge = pet.getPetAge();285 String petDate = pet.getPetDate();286 // (2)建立数据库连接287 Connection con = null;288 try {289 con = DBUtil.getConnection();290 } catch (SQLException e1) {291 // TODO Auto-generated catch block292 e1.printStackTrace();293 }294 try {295 // (3)创建语句对象296 Statement stmt = con.createStatement();297 //(4) 定义sql语句298 String sqlString = "select * from petMessage where petName=‘"299 + pet.getPetName() + "‘;";300 // (5)创建结果集 并执行sql语句301 ResultSet rs = stmt.executeQuery(sqlString);302 // (6)对结果集进行解析303 System.out.println("查询结果如下:");304 while (rs.next()) {305 System.out.println("宠物ID: " + rs.getInt("petId") + " 宠物种类:"306 + rs.getString("petSort") + " 宠物名字:"307 + rs.getString("petName") + " 宠物性别:"308 + rs.getString("petSex") + " 宠物年龄:"309 + rs.getInt("petAge") + " 宠物入库时间:"310 + rs.getString("petDate"));311 }312 // (7)关闭所以对象313 DBUtil.closeConnection();314 } catch (SQLException e) {315 // TODO 自动生成 catch 块316 System.out.println("按名字查询宠物信息失败!");317 e.printStackTrace();318 }319 }320 }
测试类PetTest
1 package com.daliu.jdbc; 2 3 public class PetTest { 4 public static void main(String[] args) { 5 6 // 测试数据 7 // PetMessage pet=new 8 // PetMessage(1,"leopard","小豹子","female",5,"2014-12-19"); 9 // PetMessage pet1=new10 // PetMessage(1,"Dog","小狗狗","female",6,"2014-12-20");11 // PetMessage pet2=new12 // PetMessage(1,"Cat","小咪咪","female",7,"2014-12-21");13 // PetMessage pet3=new14 // PetMessage(1,"mouse","小老鼠","female",8,"2014-12-22");15 // PetMessage pet4=new16 // PetMessage(1,"elephant","大象","female",9,"2014-12-23");17 // PetMessage pet5=new18 // PetMessage(1,"swan","天鹅","female",10,"2014-12-24");19 20 // 功能测试:21 22 // ****1.增添宠物信息 ********23 // PetDAO.doAdd(pet);24 // PetDAO.doAdd(pet1);25 // PetDAO.doAdd(pet2);26 // PetDAO.doAdd(pet3);27 // PetDAO.doAdd(pet4);28 // PetDAO.doAdd(pet5);29 30 // ****2. 根据宠物ID删除宠物信息 ********31 PetMessage pet = new PetMessage(1, "leopard", "小豹子", "female", 5,32 "2014-12-19");33 pet.setPetId(1);34 PetDAO.doSelectWithId(pet);35 36 // ****3.根据宠物名字查询宠物信息 ********37 // PetMessage pet = new PetMessage(1, "leopard", "小豹子", "female", 5,38 // "2014-12-19");39 // pet.setPetName("小老鼠");40 // PetDAO.doSelectWithName(pet);41 42 // ****4.根据宠物ID修改宠物信息****43 // PetDAO.doUpdateWithID(pet);44 45 // ****5.根据宠物名字修改宠物信息****46 // PetDAO.doUpdateWithName(pet);47 48 // ****6.根据宠物ID修改宠物信息****49 // PetDAO.doDeleteWithId(pet);50 // ****7.根据宠物名字修改宠物信息****51 // PetDAO.doDeleteWithName(pet);52 }53 }
一些测试效果:
SQL脚本:
1 create database PegSystem; 2 3 use PegSystem; 4 5 create table pet( 6 7 #private int petId; 8 #private String petSort; 9 10 #private String petName;11 #private String petSex;12 #private int petAge;13 #private String petDate;14 15 petId int(7),16 petSort varchar(20),17 petName varchar(20),18 petAge int(4),19 petDate varchar(20)20 );21 22 #select * from pet;23 24 rename table pet to petMessage;25 26 #select * from petMessage;27 28 alter table petMessage add( petsex varchar(20));29 30 desc petMessage;31 32 select * from petMessage;
配置文件:
1 jdbc.driver=com.mysql.jdbc.Driver2 jdbc.url=jdbc:mysql://localhost:3306/PegSystem3 jdbc.user=root4 jdbc.password=1234565 initsize=16 maxactive=17 maxwait=50008 maxidle=19 minidle=1
转载请标明来自:http://www.cnblogs.com/liuhongfeng/p/4173775.html
利用jdbc实现的宠物信息管理系统
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。