成员属性类:

public class Dog {
  private int number;
  private String name;
  private String strain;
  private String sex;
  private int age;
  private String matters;   public int getNumber() {
    return number;
  }
  public void setNumber(int number) {
    this.number = number;
  }
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  public String getStrain() {
    return strain;
  }
  public void setStrain(String strain) {
    this.strain = strain;
  }
  public String getSex() {
   return sex;
  }
  public void setSex(String sex) {
    this.sex = sex;
  }
  public int getAge() {
    return age;
  }
  public void setAge(int age) {
    this.age = age;
  }
  public String getMatters() {
    return matters;
  }
  public void setMatters(String matters) {
    this.matters = matters;
  }
}

逻辑方法类:

package com.zhidisoft.dao;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import com.zhidisoft.entity.Dog; //用来实现数据库的操作 连接、释放数据库 通用的增删改查
public class DatabaseAction {
  Connection conn = null;
  //连接数据库
  public Connection getConnection(){
    String url = "jdbc:mysql://127.0.0.1:3306/test?" + "user=root&password=root&useUnicode=true&characterEncoding=UTF8";
    try {
      Class.forName("com.mysql.jdbc.Driver");//声明驱动的jar包
      conn = DriverManager.getConnection(url);//按照url提供的路径连接服务器
    } catch (ClassNotFoundException | SQLException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }// 动态加载mysql驱动
    return conn;
  }
  //向数据库插入信息
  public int zhuce(Dog dog){
    conn=this.getConnection();//调用连接数据库方法,连接服务器
    String sql="insert into Dog()        values("+dog.getNumber()+",'"+dog.getName()+"','"+dog.getStrain()+"','"+dog.getSex()+"',"+dog.getAge()+",'"+dog.getMatters()+"')";
    Statement st;
    int result=0;
    try {
      st = conn.createStatement();
      result=st.executeUpdate(sql);//执行sql语句,返回结果为int类型,受影响的行数
      conn.close();//关闭数据库连接
    } catch (SQLException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
    return result;
  }   public int shanchu(int number){
    conn=this.getConnection();
    String sql = "delete from Dog where number = "+number;
    Statement st;
    int result = 0;
    try {
      st = conn.createStatement();
      result = st.executeUpdate(sql);
      conn.close();
    } catch (SQLException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
    return result;
  }   public int genggai(String name,String matters){
    conn=this.getConnection();
    String sql = "update Dog set matters ='"+matters+"' where name = '"+name+"'";
    Statement st;
    int result = 0;
    try {
      st = conn.createStatement();
      result = st.executeUpdate(sql);
      conn.close();
    } catch (SQLException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
    return result;
  }   public void chazhao(Dog dog){
     conn=this.getConnection();
     String sql = "select * from Dog";
     Statement st;
     try {
      st = conn.createStatement();
      ResultSet rs = st.executeQuery(sql);
      while (rs.next()) {//遍历输出查询记录
        System.out.println("编号:"+rs.getInt("number")+"\t姓名 "+rs.getString("name")+"\t品种:"+rs.getString("strain")+"\t性           别:"+rs.getString("sex")+"\t年龄:"+rs.getInt("age")+"\t病情:"+rs.getString("matters"));
      }
        conn.close();
     } catch (SQLException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
     }
  } }

测试类:控制器:根据不同的功能调用不同的方法

import java.sql.SQLException;
import java.util.Scanner;import com.zhidisoft.dao.DatabaseAction;
import com.zhidisoft.entity.Dog; public class Test {
  public static void main(String[] args) throws SQLException {
    DatabaseAction dz=new DatabaseAction();//实例化方法类
    //专注于业务逻辑
    System.out.println("欢迎来到宠物医院,请选择操作:1.注册 2.删除 3.更改 4.查询");
    @SuppressWarnings("resource")
    Scanner input=new Scanner(System.in);
    Dog dog = new Dog();
    String choice=input.next();
    if(choice.equals("1")){
      //进行注册操作
      //收集数据 调用数据库的插入方法实现注册
      System.out.println("输入宠物的编号:");
      dog.setNumber(Integer.valueOf(input.next()));
      System.out.println("输入宠物的名字:");
      dog.setName(input.next());
      System.out.println("输入宠物的品种:");
      dog.setStrain(input.next());
      System.out.println("输入宠物的性别:");
      dog.setSex(input.next());
      System.out.println("输入宠物的年龄:");
      dog.setAge(Integer.valueOf(input.next()));
      System.out.println("输入宠物的病情:");
      dog.setMatters(input.next());       //调用dao层的代码实现数据的插入
      int result=dz.zhuce(dog);
      if (result == 1) {//受影响行数为1,插入成功
        System.out.println("信息注册成功");
      }else{
        System.out.println("注册不成功,请检查输入信息是否完善");
      }
    }     if (choice.equals("2")) {
      System.out.println("请输入要删除的编号:");
      dog.setNumber(Integer.valueOf(input.next()));
      int result = dz.shanchu(dog.getNumber());
      if (result != 0) {//有删除的记录,受影响行数不为零
        System.out.println("编号相对应狗信息删除成功");
      }else{
        System.out.println("未找到此编号的狗信息");
      }
    }     if (choice.equals("3")) {
      System.out.println("请输入要更病情的狗的名字");
      dog.setName(input.next());
      System.out.println("请输入要更改的病情");
      dog.setMatters(input.next());
      int result = dz.genggai(dog.getName(), dog.getMatters());
      if (result == 0) {//修改成功,受影响条目不为零
        System.out.println("没有找到名字叫做"+dog.getName()+"的狗");
      }else{
        System.out.println("更改成功");
      }
    }     if (choice.equals("4")) {//调用查询方法,遍历输出所有结果
      dz.chazhao(dog);
    }
  }
}

java-数据库连接,分层实现增删改查测试的更多相关文章

  1. Java连接MySQL数据库增删改查通用方法

    版权声明:本文为博主原创文章,未经博主允许不得转载. Java连接MySQL数据库增删改查通用方法 运行环境:eclipse+MySQL 以前我们Java连接MySQL数据库都是一个数据库写一个类,类 ...

  2. Java实现mongodb原生增删改查语句

    Java实现mongodb原生增删改查语句 2018-03-16 自动化测试时,需校验数据库数据,为了快速自动化,在代码中用原生增删改查语句操作mongodb 结构 代码 0 pom.xml < ...

  3. Java操作数据库实现"增删改查"

    本文主要讲解JDBC操作数据库    主要实现对MySql数据库的"增删改查" 综合概述: JDBC的常用类和接口 一   DriverManager类 DriverManage类 ...

  4. eclipse控制台下实现jdbc简单的增删改查测试

    1.现在MySQL中创建一个表 2.首先创建一个类 //导入的包 import java.sql.Connection;import java.sql.DriverManager;import jav ...

  5. java操作数据库:增删改查

    不多bb了直接上. 工具:myeclipse 2016,mysql 5.7 目的:java操作数据库增删改查商品信息 test数据库的goods表 gid主键,自增 1.实体类Goods:封装数据库数 ...

  6. Java web 简单的增删改查程序(超详细)

    就是简单的对数据进行增删改查.代码如下: 1.bean层:用来封装属性及其get set方法 toString方法,有参构造方法,无参构造方法等. public class Bean { privat ...

  7. java web数据库的增删改查详细

    本次课上实验是完成数据库的增删改查. 包括增加用户信息.删除用户信息.多条件查找用户信息.修改用户信息(主要是复选框单选框等的相关操作.) 下面下看一下各个界面的样子. 总页面:显示全部页面:增加页面 ...

  8. Java实现简单的增删改查操作

    需求分析:通过数组 ,完成 对学生信息的 管理 (增删改查)创建1个 学生类创建1个 CRUD的类 – 学生管理类 并测试 在这个程序中我只运用了两个类进行操作 package com.hopu.de ...

  9. Java连接MongoDB进行增删改查

    1.导入必须的包: 详情看项目:http://pan.baidu.com/s/1cvDAOY 2.通过Myeclipse创建WEB项目 3. 3.bean:创建实体类 package com.bean ...

随机推荐

  1. sed的替换命令

    例1: [root@nhserver2 ~]# cat nagios.txt<TD ALIGN=LEFT valign=center CLASS='statusBGCRITICAL'>&l ...

  2. Spring Cache For Redis

    一.概述 缓存(Caching)可以存储经常会用到的信息,这样每次需要的时候,这些信息都是立即可用的. 常用的缓存数据库: Redis   使用内存存储(in-memory)的非关系数据库,字符串.列 ...

  3. java foreach遍历的前提条件

    自我总结,欢迎拍砖,不胜感激! 目的: 加深foreach遍历的影响 证明:foreach遍历的前提条件是:list !=null ,而不是:list !=null && list.s ...

  4. Jmeter之http性能测试实战 非GUI模式压测 NON-GUI模式 结果解析TPS——干货(十一)

    性能测试计划 性能测试用例 录制脚本 性能测试结果 性能测试报告 性能测试监控报告 准备工作 从脚本已录制成功之后开始进行压测 安装Jmeter拓展插件 查看 Transactions per Sec ...

  5. C#中的out参数/ref参数/params可变参数

    out参数: out关键字 通过引用来传递参数,在定义方法和调用方法的时候都必须使用out关键字 简单来讲out可以用来返回多个参数类型. static void Main(string[] args ...

  6. 异常检测算法:Isolation Forest

    iForest (Isolation Forest)是由Liu et al. [1] 提出来的基于二叉树的ensemble异常检测算法,具有效果好.训练快(线性复杂度)等特点. 1. 前言 iFore ...

  7. iOS-CoreText的那些事【电子书的那些事】

    这段时间在搞电子书,把这些天出现的问题归总下,我还是希望电子书的格式包括返回的数据,可直观的反应出客户端想表达的内容:原生的体验还是比较好的,希望对coretext再深入. 1.判断点击的位置是否在某 ...

  8. 1.C和C++区别,以及const分析

    从本章起开始从0学习C++,本章主要内容: 1)C和C++的基本区别 2)C和C++的const区别 1.C++和C区别 1.1 C++更强调语言的实用性,所有变量都可以在需要时再定义 比如: ;i& ...

  9. MySQL实现差集(Minus)和交集(Intersect)

    原文链接: http://www.linuxidc.com/Linux/2014-06/103551.htm MySQL没有实现Minus和Intersect功能,就像它也没有实现cube的功能一样. ...

  10. 夏令营提高班上午上机测试 Day 2 解题报告

    那一天,日照一中夏令营数据结构提高班的同学们终于想起了,被Day2上午的三道题支配的恐惧……   是的..这一天的题有点难想.. 本来打算前天写这篇随笔,然而前天在机房和同学打luogu月赛…… 昨天 ...