Java JDBC连接数库简单 分层操作

这个包的只负责实现数据库的操作

不采取其他操作

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 {
Dog dog = new Dog();
Connection conn = null;

// 连接数据库 张三
public Connection getConnection() {
String url = "jdbc:mysql://localhost:3306/test?"
+ "user=root&password=root&useUnicode=true&characterEncoding=UTF8";
try {
Class.forName("com.mysql.jdbc.Driver");
conn = DriverManager.getConnection(url);
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
} // 动态加载mysql驱动
return conn;
}

// 向数据库插入信息
public int zhuce(Dog dog) {
conn = this.getConnection();
String sql = "insert into dogs () values(" + dog.getNumber() + ",‘" + dog.getName() + "‘,‘" + dog.getSex()
+ "‘," + dog.getAge() + ",‘" + dog.getStrain() + "‘,‘" + dog.getBingqingzhuangtai() + "‘)";
Statement st;
int result = 0;
try {
st = conn.createStatement();
result = st.executeUpdate(sql);
} catch (SQLException e) {
e.printStackTrace();
}
return result;
}

public int delete(int number) {
conn = this.getConnection();
String sql = "delete from dogs where number=" + number + "";
Statement st;
int result = 0;
try {
st = conn.createStatement();
result = st.executeUpdate(sql);
System.out.println(result);
} catch (SQLException e) {
e.printStackTrace();
}
return result;

}

public int genggai(String name, String bingqingzhuangtai) {
conn = this.getConnection();
String sql = "update dogs set bingqingzhuangtai=‘" + bingqingzhuangtai + "‘ where name=‘" + name + "‘";
Statement st;
int result = 0;
try {
st = conn.createStatement();
result = st.executeUpdate(sql);
System.out.println(result);
} catch (SQLException e) {
e.printStackTrace();
}
return result;

}

public void chaxun(String bingqingzhuangtai) throws SQLException {
conn = this.getConnection();
String sql = "select * from dogs where bingqingzhuangtai=‘" + bingqingzhuangtai + "‘";
Statement st;
ResultSet result;
st = conn.createStatement();
result = st.executeQuery(sql);
// System.out.println(result);
while (result.next()) {
System.out.println(result.getInt("number") + "\t" + result.getString("name") + "\t"
+ result.getString("sex") + "\t" + result.getInt("age") + "\t" + result.getString("strain") + "\t"
+ result.getString("bingqingzhuangtai"));
}

}

public void chaxun2(String name) throws SQLException {
conn = this.getConnection();
String sql = "select * from dogs where bingqingzhuangtai=‘" + name + "‘";
Statement st;
ResultSet result;
st = conn.createStatement();
result = st.executeQuery(sql);
while (result.next()) {
System.out.println(result.getInt("number") + "\t" + result.getString("name") + "\t"
+ result.getString("sex") + "\t" + result.getInt("age") + "\t" + result.getString("strain") + "\t"
+ result.getString("bingqingzhuangtai"));
}

}
}

这个包则是用来存放数据的属性的包

例如这个动物Dogs类的属性

package com.zhidisoft.entity;

public class Dog {
private int number;
private String name;
private String sex;
private int age;
private String strain;
private String bingqingzhuangtai;

public String getBingqingzhuangtai() {
return bingqingzhuangtai;
}

public int getNumber() {
return number;
}

public void setNumber(int number) {
this.number = number;
}

public void setBingqingzhuangtai(String bingqingzhuangtai) {
this.bingqingzhuangtai = bingqingzhuangtai;
}

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;
}

}

还有一个包则是为了处理业务逻辑的包,此包不参与其他的事项

只是处理业务逻辑

package com.zhidisoft.UI;

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();
Dog dog=new Dog();
//专注于业务逻辑
System.out.println("欢迎来到宠物医院,请选择操作:1.注册 2.删除 3.更改信息 4.根据病例信息查询 5.根据宠物名查询信息");
Scanner input=new Scanner(System.in);
String choice=input.next();
if(choice.equals("1")){
//进行注册操作
//收集数据 调用数据库的插入方法实现注册
System.out.println("输入宠物编号:");
dog.setNumber(Integer.parseInt(input.next()));
System.out.println("输入宠物的名字:");
dog.setName(input.next());
System.out.println("输入宠物的性别:");
dog.setSex(input.next());
System.out.println("输入宠物的年龄:");
dog.setAge(Integer.parseInt(input.next()));
System.out.println("输入宠物品种:");
dog.setStrain(input.next());
System.out.println("宠物的症状:");
dog.setBingqingzhuangtai(input.next());
// 调用dao层的代码实现数据的插入
dz.zhuce(dog);
}

if(choice.equals("2")){
System.out.println("输入将要删除的宠物编号:");
dog.setNumber(Integer.parseInt(input.next()));
dz.delete(dog.getNumber());
}

if (choice.equals("3")) {
System.out.println("输入将要更改的宠物姓名:");
dog.setName(input.next());
System.out.println("请输入要更改的病理状态");
dog.setBingqingzhuangtai((input.next()));
dz.genggai(dog.getName(), dog.getBingqingzhuangtai());
}

if (choice.equals("4")) {
System.out.println("请输入要查询的病理状态");
dog.setBingqingzhuangtai((input.next()));
dz.chaxun(dog.getBingqingzhuangtai());
}

if (choice.equals("5")) {
System.out.println("请输入要查询的宠物名称");
dog.setName((input.next()));
dz.chaxun2(dog.getName());
}
// //李四调用张三的代码
// Connection conn=dz.getConnection();
}
}

这只是一个初步的分层作业的雏形 ,这样做有利于高效率的完成项目

时间: 2024-12-20 07:13:05

Java JDBC连接数库简单 分层操作的相关文章

Java 实现Excel的简单读取操作

JAVA实现Excel表单的简单读取操作 实现Excel表单的简单读取操作,首先要导入相关的jar包: 如图所示: 此处贴上代码: public static List<List<String>> readExcel(String path){ List<List<String>> list=new ArrayList<List<String>>(); try { Workbook wb; InputStream is=null; t

Java -- JDBC 学习--通过 ResultSet 执行查询操作

ResultSet: 结果集. 封装了使用 JDBC 进行查询的结果. 1. 调用 Statement 对象的 executeQuery(sql) 可以得到结果集. 2. ResultSet 返回的实际上就是一张数据表. 有一个指针指向数据表的第一样的前面.可以调用 next() 方法检测下一行是否有效. 若有效该方法返回 true, 且指针下移. 相当于Iterator 对象的 hasNext() 和 next() 方法的结合体. 3. 当指针对位到一行时, 可以通过调用 getXxx(ind

Java JDBC批处理插入数据操作

在此笔记里,我们将看到我们如何可以使用像Statement和PreparedStatement JDBC API来批量在任何数据库中插入数据.此外,我们将努力探索一些场景,如在内存不足时正常运行,以及如何优化批量操作. 首先,使用Java JDBC基本的API批量插入数据到数据库中. Simple Batch - 简单批处理    我把它叫做简单批处理.要求很简单,执行批量插入列表,而不是为每个INSERT语句每次提交数据库,我们将使用JDBC批处理操作和优化性能. 想想一下下面的代码: Bad

java jdbc操作SQLServer数据库

public static void main(String args[]){         System.out.println(321);         PreparedStatement ps = null;         ResultSet rs = null;         Connection ct = null;         try{             Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDri

java jdbc操作mysql

import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet; public class test {    public static final String DBDRIVER = "com.mysql.jdbc.Driver";    // 定义MySQL数据库的连接地址    public static fi

java jdbc 连接mysql数据库 实现增删改查

好久没有写博文了,写个简单的东西热热身,分享给大家. jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打交道非常基础的一个知识,也是比较接近底层的,在实际的工作中大家用得更多的其实还是比较成熟的框架,例如Hibernate.Mybatis. 但是作为这些成熟框架的底层的jdbc却也是我们应该去掌握的,只有了解了jdbc的增删改查,这样在以后如果有兴趣去研究Hibernate或者Mybatis的源代码的

完整全面的Java资源库(包括构建、操作、代码分析、编译器、数据库、社区等等)

构建 这里搜集了用来构建应用程序的工具. Apache Maven:Maven使用声明进行构建并进行依赖管理,偏向于使用约定而不是配置进行构建.Maven优于Apache Ant.后者采用了一种过程化的方式进行配置,所以维护起来相当困难.Gradle:Gradle采用增量构建.Gradle通过Groovy编程而不是传统的XML声明进行配置.Gradle可以很好地配合Maven进行依赖管理,并且把Ant脚本当作头等公民.字节码操作 编程操作Java字节码的函数库. ASM:通用底层字节码操作及分析

第15篇-JAVA JDBC编程

第15篇-JAVA JDBC编程 每篇一句 :对于勇敢者,尝试是一条崭新的生活之路 初学心得: 但对于坎坷与泥泞,能以平常之心视之,就非常不容易 (笔者:JEEP/711)[JAVA笔记 | 时间:2017-05-08| JAVA JDBC编程 ] 1.JDBC概述 通过使用JDBC API,Java程序可以非常方便地操作各种主流数据库,这是是Java语言的巨大魅力所在 由于Java语言的跨平台特性,所以使用JDBC API所编写的程序不仅可以实现跨数据库,还可以跨平台,具有非常优秀的可移植性

JAVA jdbc(数据库连接池)学习笔记(转)

学习内容: 1.JDBC的含义... JDBC想必学过JAVA的就不会陌生,JDBC到底是什么呢?其实就是由JAVA的一些类和接口构成的API,保存在java.sql和javax.sql..包中的一些API... 2.使用JDBC的原因...   那么为什么要使用,这个想必大家也是更为了解了,一个应用程序如果不和数据库进行连接,那这根本就不算是个应用程序,那么应用程序是不能直接对数据库进行操作的,那么就需要一个辅助工具去连接数据库,从而操作数据库...那这个辅助的工具就是JDBC了,这个仅限于J