JDBC实战案例--利用jdbc实现的宠物信息管理系统
2014-12-19 13:55
615 查看
一、需求:
利用jdbc实现对宠物的信息进行管理的一套系统
宠物信息:宠物ID,宠物类别,宠物名字,宠物性别,宠物年龄,宠物入库日期
系统完成功能:实现对宠物信息的录入,修改,删除,查询。
二、解决方案
一共创建了四个类:
1.一个宠物类PetMessage 里面是宠物的信息
2.一个是数据库连接类DBUtil 里面主要是完成数据连接功能
3.一个是宠物管理类PetDAO 完成对宠物信息的增删该查
4.最后一个就是一个测试类PetTest
完成对系统的测试
三、具体实现:
新建一个java项目,并导入需要用到的包。如下图:
宠物类PetMessage
数据库连接类DBUtil
宠物管理类PetDAO
测试类PetTest
一些测试效果:
SQL脚本:
配置文件:
作者:daliu_it
出处:/article/5255486.html
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。谢谢合作。
利用jdbc实现对宠物的信息进行管理的一套系统
宠物信息:宠物ID,宠物类别,宠物名字,宠物性别,宠物年龄,宠物入库日期
系统完成功能:实现对宠物信息的录入,修改,删除,查询。
二、解决方案
一共创建了四个类:
1.一个宠物类PetMessage 里面是宠物的信息
2.一个是数据库连接类DBUtil 里面主要是完成数据连接功能
3.一个是宠物管理类PetDAO 完成对宠物信息的增删该查
4.最后一个就是一个测试类PetTest
完成对系统的测试
三、具体实现:
新建一个java项目,并导入需要用到的包。如下图:
宠物类PetMessage
package com.daliu.jdbc; /** * 宠物信息类 * */ public class PetMessage { //1.定义宠物的属性 // 宠物信息:宠物ID,宠物类别,宠物名字,宠物性别,宠物年龄,宠物入库日期 private int petId; private String petSort; private String petName; private String petSex; private int petAge; private String petDate; //2.生成一个无参构造方法和有参构造方法 public PetMessage(){} public PetMessage(int petId, String petSort, String petName, String petSex, int petAge, String petDate) { super(); this.petId = petId; this.petSort = petSort; this.petName = petName; this.petSex = petSex; this.petAge = petAge; this.petDate = petDate; } //3.生成属性的get,set方法 public int getPetId() { return petId; } public void setPetId(int petId) { this.petId = petId; } public String getPetSort() { return petSort; } public void setPetSort(String petSort) { this.petSort = petSort; } public String getPetName() { return petName; } public void setPetName(String petName) { this.petName = petName; } public String getPetSex() { return petSex; } public void setPetSex(String petSex) { this.petSex = petSex; } public int getPetAge() { return petAge; } public void setPetAge(int petAge) { this.petAge = petAge; } public String getPetDate() { return petDate; } public void setPetDate(String petDate) { this.petDate = petDate; } //4.属性的toString方法,并改进为自己所要的样子 @Override public String toString() { return "PetMessage [petId=" + petId + ", petSort=" + petSort + ", petName=" + petName + ", petSex=" + petSex + ", petAge=" + petAge + ", petDate=" + petDate + "]"; } }
数据库连接类DBUtil
package com.daliu.jdbc; import java.io.InputStream; import java.sql.Connection; import java.sql.SQLException; import java.util.Properties; import org.apache.commons.dbcp.BasicDataSource; /** * 使用连接池技术管理数据库连接 */ public class DBUtil { // 数据库连接池 private static BasicDataSource dbcp; // 为不同线程管理连接 private static ThreadLocal<Connection> tl; // 通过配置文件来获取数据库参数 static { try { Properties prop = new Properties(); InputStream is = DBUtil.class.getClassLoader().getResourceAsStream( "com/daliu/jdbc/db.properties"); prop.load(is); is.close(); // 一、初始化连接池 dbcp = new BasicDataSource(); // 设置驱动 (Class.forName()) dbcp.setDriverClassName(prop.getProperty("jdbc.driver")); // 设置url dbcp.setUrl(prop.getProperty("jdbc.url")); // 设置数据库用户名 dbcp.setUsername(prop.getProperty("jdbc.user")); // 设置数据库密码 dbcp.setPassword(prop.getProperty("jdbc.password")); // 初始连接数量 dbcp.setInitialSize(Integer.parseInt(prop.getProperty("initsize"))); // 连接池允许的最大连接数 dbcp.setMaxActive(Integer.parseInt(prop.getProperty("maxactive"))); // 设置最大等待时间 dbcp.setMaxWait(Integer.parseInt(prop.getProperty("maxwait"))); // 设置最小空闲数 dbcp.setMinIdle(Integer.parseInt(prop.getProperty("minidle"))); // 设置最大空闲数 dbcp.setMaxIdle(Integer.parseInt(prop.getProperty("maxidle"))); // 初始化线程本地 tl = new ThreadLocal<Connection>(); } catch (Exception e) { System.out.println("初始化失败,请检查配置文件是否符合!"); e.printStackTrace(); } } /** * 获取数据库连接 * * @return * @throws SQLException */ public static Connection getConnection() throws SQLException { /* * 通过连接池获取一个空闲连接 */ Connection conn = dbcp.getConnection(); tl.set(conn); return conn; } /** * 关闭数据库连接 */ public static void closeConnection() { try { Connection conn = tl.get(); if (conn != null) { /* * 通过连接池获取的Connection 的close()方法实际上并没有将 连接关闭,而是将该链接归还。 */ conn.close(); tl.remove(); } } catch (Exception e) { System.out.println("释放资源失败!"); e.printStackTrace(); throw new RuntimeException(e); } } /** * 测试是否连接成功 * * @param args * @throws SQLException */ public static void main(String[] args) throws SQLException { System.out.println(getConnection()); } }
宠物管理类PetDAO
package com.daliu.jdbc; import java.sql.Connection; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; /** * 宠物信息操作类 * */ public class PetDAO { // 1.增添宠物信息 public static void doAdd(PetMessage pet) { // (1)通过宠物信息类获得宠物信息的定义 int petId = pet.getPetId(); String petSort = pet.getPetSort(); String petName = pet.getPetName(); String petSex = pet.getPetSex(); int petAge = pet.getPetAge(); String petDate = pet.getPetDate(); // (2)与数据库连接 Connection con = null; try { con = DBUtil.getConnection(); } catch (SQLException e1) { e1.printStackTrace(); } // (3)创建会话,执行sql语句 try { Statement stmt = con.createStatement(); // 定义sql语句 String sqlString = "insert into petmessage(petid,petsort,petname,petsex,petage,petdate) values(" + pet.getPetId() + ",'" + pet.getPetSort() + "','" + pet.getPetName() + "','" + pet.getPetSex() + "'," + pet.getPetAge() + ",'" + pet.getPetDate() + "');"; // (4)执行sql语句 stmt.execute(sqlString); //(5)给出相应的提示 System.out.println("********************"); System.out.println("宠物添加成功!(^o^)"); System.out.println("********************"); //(6)最后释放资源 DBUtil.closeConnection(); } catch (SQLException e) { // TODO 自动生成 catch 块 System.out.println("增加失败!"); e.printStackTrace(); } } //2. 根据宠物ID删除宠物信息 public static void doDeleteWithId(PetMessage pet) { //1.获得改宠物的信息 int petId = pet.getPetId(); String petSort = pet.getPetSort(); String petName = pet.getPetName(); String petSex = pet.getPetSex(); int petAge = pet.getPetAge(); String petDate = pet.getPetDate(); // 2.建立数据库连接 Connection con = null; try { con = DBUtil.getConnection(); } catch (SQLException e1) { e1.printStackTrace(); } //3. 建立会话 ,执行sql语句 try { Statement stmt = con.createStatement(); // 定义sql语句 String sqlString = "delete from petmessage where petid=" + pet.getPetId() + ";"; // 执行sql语句 stmt.execute(sqlString); //给出相应的提示 System.out.println("********************"); System.out.println("宠物删除成功!(^o^)"); System.out.println("********************"); //关闭资源 DBUtil.closeConnection(); } catch (SQLException e) { // TODO 自动生成 catch 块 System.out.println("根据宠物ID删除宠物信息失败!"); e.printStackTrace(); } } // 3.根据宠物名字删除宠物信息 public static void doDeleteWithName(PetMessage pet) { //(1)获取宠物的信息 int petId = pet.getPetId(); String petSort = pet.getPetSort(); String petName = pet.getPetName(); String petSex = pet.getPetSex(); int petAge = pet.getPetAge(); String petDate = pet.getPetDate(); // (2)建立数据库连接 Connection con = null; try { con = DBUtil.getConnection(); } catch (SQLException e1) { e1.printStackTrace(); } // (3)建立会话,执行sql语句 try { Statement stmt = con.createStatement(); // 定义sql语句 String sqlString = "delete from petmessage where petName=" + pet.getPetName() + ";"; // 执行sql语句 stmt.execute(sqlString); //给出提示 System.out.println("********************"); System.out.println("宠物删除成功!(^o^)"); System.out.println("********************"); //关闭资源 DBUtil.closeConnection(); } catch (SQLException e) { // TODO 自动生成 catch 块 System.out.println("根据宠物名字删除宠物信息失败!"); e.printStackTrace(); } } // 4.根据宠物ID修改宠物信息 public static void doUpdateWithID(PetMessage pet) { //(1)获取宠物信息 int petId = pet.getPetId(); String petSort = pet.getPetSort(); String petName = pet.getPetName(); String petSex = pet.getPetSex(); int petAge = pet.getPetAge(); String petDate = pet.getPetDate(); // (2)建立数据库连接 Connection con = null; try { con = DBUtil.getConnection(); } catch (SQLException e1) { e1.printStackTrace(); } // (3)建立会话,执行sql语句 try { Statement stmt = con.createStatement(); // 定义sql语句 String sqlString = "update petmessage set petName='" + pet.getPetName() + "' where petId=" + pet.getPetId() + ";"; // 执行sql语句 stmt.execute(sqlString); //给出相应的提示 System.out.println("**********************"); System.out.println("宠物信息修改成功!(^o^)"); System.out.println("**********************"); //关闭资源 DBUtil.closeConnection(); } catch (SQLException e) { // TODO 自动生成 catch 块 System.out.println("根据宠物ID修改宠物信息失败"); e.printStackTrace(); } } // 5.根据宠物名字修改宠物信息 public static void doUpdateWithName(PetMessage pet) { //(1)获取宠物信息 int petId = pet.getPetId(); String petSort = pet.getPetSort(); String petName = pet.getPetName(); String petSex = pet.getPetSex(); int petAge = pet.getPetAge(); String petDate = pet.getPetDate(); // (2)建立数据库连接 Connection con = null; try { con = DBUtil.getConnection(); } catch (SQLException e1) { e1.printStackTrace(); } // (3)建立会话,执行sql语句 try { Statement stmt = con.createStatement(); // 定义sql语句 String sqlString = "update petmessage set petAge='" + pet.getPetAge() + "' where petName=" + pet.getPetName() + ";"; // 执行sql语句 stmt.execute(sqlString); //给出相应的提示 System.out.println("**********************"); System.out.println("宠物信息修改成功!(^o^)"); System.out.println("**********************"); //关闭资源 DBUtil.closeConnection(); } catch (SQLException e) { // TODO 自动生成 catch 块 System.out.println("据宠物名字修改宠物信息失败"); e.printStackTrace(); } } // 6.按ID查询宠物信息 public static void doSelectWithId(PetMessage pet) { //(1)获取宠物信息 int petId = pet.getPetId(); String petSort = pet.getPetSort(); String petName = pet.getPetName(); String petSex = pet.getPetSex(); int petAge = pet.getPetAge(); String petDate = pet.getPetDate(); // (2)建立数据库连接 Connection con = null; try { con = DBUtil.getConnection(); } catch (SQLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } try { // (3)创建语句对象 Statement stmt = con.createStatement(); // (4)定义sql语句 String sqlString = "select * from petMessage where petId=" + pet.getPetId() + ";"; //(5) 创建结果集 并执行sql语句 ResultSet rs = stmt.executeQuery(sqlString); //(6)对结果集进行解析 System.out.println("查询结果如下:"); while (rs.next()) { System.out.println("宠物ID: " + rs.getInt("petId") + " 宠物种类:" + rs.getString("petSort") + " 宠物名字:" + rs.getString("petName") + " 宠物性别:" + rs.getString("petSex") + " 宠物年龄:" + rs.getInt("petAge") + " 宠物入库时间:" + rs.getString("petDate")); } //(7)关闭相应的资源 DBUtil.closeConnection(); } catch (SQLException e) { // TODO 自动生成 catch 块 System.out.println("按ID查询宠物信息失败"); e.printStackTrace(); } } // 7.按名字查询宠物信息 public static void doSelectWithName(PetMessage pet) { //(1)获取宠物信息 int petId = pet.getPetId(); String petSort = pet.getPetSort(); String petName = pet.getPetName(); String petSex = pet.getPetSex(); int petAge = pet.getPetAge(); String petDate = pet.getPetDate(); // (2)建立数据库连接 Connection con = null; try { con = DBUtil.getConnection(); } catch (SQLException e1) { // TODO Auto-generated catch block e1.printStackTrace(); } try { // (3)创建语句对象 Statement stmt = con.createStatement(); //(4) 定义sql语句 String sqlString = "select * from petMessage where petName='" + pet.getPetName() + "';"; // (5)创建结果集 并执行sql语句 ResultSet rs = stmt.executeQuery(sqlString); // (6)对结果集进行解析 System.out.println("查询结果如下:"); while (rs.next()) { System.out.println("宠物ID: " + rs.getInt("petId") + " 宠物种类:" + rs.getString("petSort") + " 宠物名字:" + rs.getString("petName") + " 宠物性别:" + rs.getString("petSex") + " 宠物年龄:" + rs.getInt("petAge") + " 宠物入库时间:" + rs.getString("petDate")); } // (7)关闭所以对象 DBUtil.closeConnection(); } catch (SQLException e) { // TODO 自动生成 catch 块 System.out.println("按名字查询宠物信息失败!"); e.printStackTrace(); } } }
测试类PetTest
package com.daliu.jdbc; public class PetTest { public static void main(String[] args) { // 测试数据 // PetMessage pet=new // PetMessage(1,"leopard","小豹子","female",5,"2014-12-19"); // PetMessage pet1=new // PetMessage(1,"Dog","小狗狗","female",6,"2014-12-20"); // PetMessage pet2=new // PetMessage(1,"Cat","小咪咪","female",7,"2014-12-21"); // PetMessage pet3=new // PetMessage(1,"mouse","小老鼠","female",8,"2014-12-22"); // PetMessage pet4=new // PetMessage(1,"elephant","大象","female",9,"2014-12-23"); // PetMessage pet5=new // PetMessage(1,"swan","天鹅","female",10,"2014-12-24"); // 功能测试: // ****1.增添宠物信息 ******** // PetDAO.doAdd(pet); // PetDAO.doAdd(pet1); // PetDAO.doAdd(pet2); // PetDAO.doAdd(pet3); // PetDAO.doAdd(pet4); // PetDAO.doAdd(pet5); // ****2. 根据宠物ID删除宠物信息 ******** PetMessage pet = new PetMessage(1, "leopard", "小豹子", "female", 5, "2014-12-19"); pet.setPetId(1); PetDAO.doSelectWithId(pet); // ****3.根据宠物名字查询宠物信息 ******** // PetMessage pet = new PetMessage(1, "leopard", "小豹子", "female", 5, // "2014-12-19"); // pet.setPetName("小老鼠"); // PetDAO.doSelectWithName(pet); // ****4.根据宠物ID修改宠物信息**** // PetDAO.doUpdateWithID(pet); // ****5.根据宠物名字修改宠物信息**** // PetDAO.doUpdateWithName(pet); // ****6.根据宠物ID修改宠物信息**** // PetDAO.doDeleteWithId(pet); // ****7.根据宠物名字修改宠物信息**** // PetDAO.doDeleteWithName(pet); } }
一些测试效果:
SQL脚本:
create database PegSystem; use PegSystem; create table pet( #private int petId; #private String petSort; #private String petName; #private String petSex; #private int petAge; #private String petDate; petId int(7), petSort varchar(20), petName varchar(20), petAge int(4), petDate varchar(20) ); #select * from pet; rename table pet to petMessage; #select * from petMessage; alter table petMessage add( petsex varchar(20)); desc petMessage; select * from petMessage;
配置文件:
jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/PegSystem jdbc.user=root jdbc.password=123456 initsize=1 maxactive=1 maxwait=5000 maxidle=1 minidle=1
作者:daliu_it
出处:/article/5255486.html
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接。谢谢合作。
相关文章推荐
- jdbc,数据库案例:客户信息管理系统:业务层接口和实现,数据控制servlet
- jdbc,数据库案例:客户信息管理系统:jsp部分,数据库数据封装类,dao接口和实现
- [零基础学JAVA]Java SE实战开发-37.MIS信息管理系统实战开发[JDBC](3) 推荐
- [零基础学JAVA]Java SE实战开发-37.MIS信息管理系统实战开发[JDBC](1) 推荐
- SpringMVC(21):使用springmvc+spring+jdbc 优化订单管理系统的示例(ID查看供应商信息明细-REST的功能实现)
- 《Spark商业案例与性能调优实战100课》第1课:商业案例之通过RDD实现分析大数据电影点评系统中电影的用户行为信息
- 利用jsshell 实现的学生信息管理系统
- 利用XML配置实现增删改查的.net快速开发架构 简单的构建信息管理系统架构
- [零基础学JAVA]Java SE实战开发-37.MIS信息管理系统实战开发[JDBC](2) 推荐
- 利用JDBC显示数据库详细信息---JSP实现
- 学生信息管理系统简单模拟(C语言实现)
- SQL注入实战---利用“dbo”获得SQL管理权限和系统权限
- 网络攻防实战:老Y文章管理系统V2.2注入漏洞分析与利用
- SQL注入实战---利用“dbo”获得SQL管理权限和系统权限
- 利用JDBC显示数据库详细信息---JSP实现
- 利用JDBC开发图书管理系统
- 关于虚函数的作业中对学校信息管理系统的实现要求和编程要点
- 人事档案信息管理系统的面向对象的分析、设计和实现
- 面向搜索引擎的内容管理系统(CMS)设计——利用Squid反相代理缓存实现网站内容静态发布 转贴
- 4.1信息管理的设计和实现(利用泛型减少重复代码)