java-数据库连接,分层实现增删改查测试
成员属性类:
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-数据库连接,分层实现增删改查测试的更多相关文章
- Java连接MySQL数据库增删改查通用方法
版权声明:本文为博主原创文章,未经博主允许不得转载. Java连接MySQL数据库增删改查通用方法 运行环境:eclipse+MySQL 以前我们Java连接MySQL数据库都是一个数据库写一个类,类 ...
- Java实现mongodb原生增删改查语句
Java实现mongodb原生增删改查语句 2018-03-16 自动化测试时,需校验数据库数据,为了快速自动化,在代码中用原生增删改查语句操作mongodb 结构 代码 0 pom.xml < ...
- Java操作数据库实现"增删改查"
本文主要讲解JDBC操作数据库 主要实现对MySql数据库的"增删改查" 综合概述: JDBC的常用类和接口 一 DriverManager类 DriverManage类 ...
- eclipse控制台下实现jdbc简单的增删改查测试
1.现在MySQL中创建一个表 2.首先创建一个类 //导入的包 import java.sql.Connection;import java.sql.DriverManager;import jav ...
- java操作数据库:增删改查
不多bb了直接上. 工具:myeclipse 2016,mysql 5.7 目的:java操作数据库增删改查商品信息 test数据库的goods表 gid主键,自增 1.实体类Goods:封装数据库数 ...
- Java web 简单的增删改查程序(超详细)
就是简单的对数据进行增删改查.代码如下: 1.bean层:用来封装属性及其get set方法 toString方法,有参构造方法,无参构造方法等. public class Bean { privat ...
- java web数据库的增删改查详细
本次课上实验是完成数据库的增删改查. 包括增加用户信息.删除用户信息.多条件查找用户信息.修改用户信息(主要是复选框单选框等的相关操作.) 下面下看一下各个界面的样子. 总页面:显示全部页面:增加页面 ...
- Java实现简单的增删改查操作
需求分析:通过数组 ,完成 对学生信息的 管理 (增删改查)创建1个 学生类创建1个 CRUD的类 – 学生管理类 并测试 在这个程序中我只运用了两个类进行操作 package com.hopu.de ...
- Java连接MongoDB进行增删改查
1.导入必须的包: 详情看项目:http://pan.baidu.com/s/1cvDAOY 2.通过Myeclipse创建WEB项目 3. 3.bean:创建实体类 package com.bean ...
随机推荐
- CentOS 7 yum 安装 MySQL5.7
1.下载 MySQL 官方的 Yum Repository ,官网地址:https://dev.mysql.com/downloads/repo/yum/ 从 MySQL 官网选取合适的 MySQL ...
- docker基础及安装
Docker介绍: Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制 ...
- 蓝桥杯练习系统—基础练习 2n皇后问题
问题描述 给定一个n*n的棋盘,棋盘中有一些位置不能放皇后.现在要向棋盘中放入n个黑皇后和n个白皇后, 使任意的两个黑皇后都不在同一行.同一列或同一条对角线上,任意的两个白皇后都不在同一行. 同一列或 ...
- Python CRM项目六
自定义Django Admin的action 在Django Admin中,可以通过action来自定义一些操作,其中默认的action的功能是选中多条数据来进行删除操作 我们在king_admin中 ...
- Sonar 常用代码规则整理(一)
更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢! 摘要:公司部署了一套sonar,经过一段时间运行,发现有一些问题出现频率很高,因此有必要将这些问题进行整理总结和分 ...
- 安装pcntl以实现php多进程
pcntl 扩展包一般就在php源码的ext目录下. cd ./ext/pcntl /opt/server/php5/bin/phpize ./configure \ --with-php-confi ...
- php5.3 安装 Zend Guard Loader
解包 tar -zxvf ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz 复制 ZendGuardLoader.so 至 PHP 扩展目录 cp ...
- 没有dev-server.js文件,如何进行后台数据模拟?
最新的vue-webpack-template 中已经去掉了dev-server.js 但是要进行模拟后台数据的,如何模拟本地数据操作? 解决方法: dev-server.js 改用webpack-d ...
- 洛谷 [P2420] 让我们异或吧
某两点之间的路径上所有边权的异或值即dis1^dis2--^disn. 由于x^y^y=x,所以dfs预处理出每一点到根节点的异或值,对于每次询问,直接输出 disu^disv. #include & ...
- 济南清北学堂游记 Day 0.
(摄于千佛山山顶,济南城区风光) 看似稳得一比,实则慌如老狗= = 我可能是报到最早的且实力最弱的一只. 早晨六点二十被从床上拉起来,然后在火车站附近匆忙吃了点东西就坐火车去济南了. 路途不算远,大概 ...