第十七章 数据库操作

数据库基础 和JDBC概论和常用类和接口就不过多的说了 直接来到 数据库的操作 一开始是在数据库中插入了四个类型 两个int 两个varchar类型 再分别插入 名字 序号 号码 性别 然后再在java中操作增删改查 这几个操作 全部代码如下

package 第十七章;

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import com.mysql.cj.jdbc.Driver;

public class MysqlDemo1 {

Connection connection;

public static void main(String[] args) throws SQLException {

// TODO Auto-generated method stub

MysqlDemo1 mysqldemo1 = new MysqlDemo1();//new对象 调用方法

mysqldemo1.getConnection();

System.out.println("查询人员数据,结果为:");

mysqldemo1.selectAll();

System.out.println("新增人员数据,结果为:");

mysqldemo1.add(11, "lanyangyang"," 17923412644","nan");

mysqldemo1.add(12, "meiyangyang"," 17977556644","nv");

mysqldemo1.add(13, "feiyangyang"," 11971236644","nan");

mysqldemo1.selectAll();

System.out.println("查询182开头的数据,结果为:");

mysqldemo1.obscure();//查询课程表中的数据

System.out.println("修改指定5位置上的电话号码");

mysqldemo1.update(5,"13124235300");//修改该位置的数据

mysqldemo1.selectAll();

System.out.println("查询性别为nan的数据");

mysqldemo1.man("nan");

System.out.println("修改指定10位置上的名字");

mysqldemo1.updatedate(10,"dashuaige");//修改该位置的数据

mysqldemo1.selectAll();

System.out.println("查询179开头的数据,结果为:");

mysqldemo1.obscure1();//查询课程表中的数据

mysqldemo1.selectAll();

System.out.println("删除课程11,12,13");

mysqldemo1.delete("11");//删除指定位置的数据

mysqldemo1.delete("12");//删除指定位置的数据

mysqldemo1.delete("13");//删除指定位置的数据

mysqldemo1.selectAll();

System.out.println("查询性别为woman的数据");

mysqldemo1.man("nv");

}

public void woman(String name ) throws SQLException {//查询性别为女的数据

PreparedStatement preparedstatement =connection.prepareStatement("select*from sudent where sex = ?;");

preparedstatement.setString(1, name);

ResultSet resultSet =preparedstatement.executeQuery() ;

while(resultSet.next()) {

System.out.print(resultSet.getInt("id")+" ");

System.out.println(resultSet.getString("name"));

System.out.println(resultSet.getString("tel"));

System.out.println(resultSet.getString("sex"));

}

preparedstatement.close();

}

public void delete(String id) throws SQLException {//删除指定位置上的数据

PreparedStatement preparedStatement = connection.prepareStatement("delete from sudent where id = ?;");

preparedStatement.setString(1, id);//

//第四步 :执行SQL语句

preparedStatement.executeUpdate();

//第六步关闭接连释放资源

preparedStatement.close();

}

public void obscure1() throws SQLException {//查询号码为179开头的号码

PreparedStatement preparedstatement=connection.prepareStatement("select*from sudent where tel like'179%';");

ResultSet resultSet = preparedstatement.executeQuery();//executeQuery只能用来查询 //新增修改删除都是使用另一种e

//第五步:遍历结果集

while(resultSet.next()) {

System.out.print(resultSet.getInt("id")+" ");

System.out.println(resultSet.getString("name")+" ");

System.out.println(resultSet.getString("tel")+" ");

System.out.println(resultSet.getString("sex")+" ");

}

preparedstatement.close();

}

public void updatedate(int id,String name) throws SQLException {//修改指定位置上的数据

PreparedStatement preparedstatement =connection.prepareStatement("update sudent set name=? where id=? ; ");

preparedstatement.setString(1, name);

preparedstatement.setInt(2, id);

//第四步: 执行SOL语句

preparedstatement.executeUpdate();

//第六步: 关闭连接释放资源

preparedstatement.close();

}

public void man(String name ) throws SQLException {//查询性别为男的数据

PreparedStatement preparedstatement =connection.prepareStatement("select*from sudent where sex = ?;");

preparedstatement.setString(1, name);

ResultSet resultSet =preparedstatement.executeQuery() ;

while(resultSet.next()) {

System.out.print(resultSet.getInt("id")+" ");

System.out.println(resultSet.getString("name"));

System.out.println(resultSet.getString("tel"));

System.out.println(resultSet.getString("sex"));

}

preparedstatement.close();

}

public void update(int id,String tel) throws SQLException {//修改指定位置上的号码

PreparedStatement preparedstatement =connection.prepareStatement("update sudent set tel=? where id=? ; ");//修改语句

preparedstatement.setString(1, tel);//tel 电话

preparedstatement.setInt(2, id);//id 序号

//第四步: 执行SOL语句

preparedstatement.executeUpdate();

//第六步: 关闭连接释放资源

preparedstatement.close();

}

public void obscure() throws SQLException {//使用mysql模糊查询来查询以182开头的数据

PreparedStatement preparedStatement=connection.prepareStatement("select*from sudent where tel like'182%'");//使用的是mysql中的模糊查询语句

ResultSet resultSet = preparedStatement.executeQuery();//executeQuery只能用来查询 //新增修改删除都是使用另一种e

//第五步:遍历结果集

while(resultSet.next()) {使用while循环来遍历表中四个类型

System.out.print(resultSet.getInt("id")+" ");//id 序号

System.out.println(resultSet.getString("name"));//name 名字

System.out.println(resultSet.getString("tel"));//tel //电话

System.out.println(resultSet.getString("sex"));//sex //性别

}

}

public void add(int id ,String name,String tel , String sex) throws SQLException {//add添加数据

PreparedStatement preparedStatement=connection.prepareStatement("insert into sudent values (?,?,?,?);");//向mysql数据库中指定的sudent表中添加数据

preparedStatement.setInt(1, id);//添加id 序号

preparedStatement.setString(2,name);//添加name//名字

preparedStatement.setString(3,tel);//添加电话

preparedStatement.setString(4,sex);//添加性别

preparedStatement.executeUpdate();

//第六步关闭接连释放资源

preparedStatement.close();

}

public void getConnection () throws SQLException{//注册驱动 连接mysql数据库 并遍历出表中的数据

//第一步注册驱动

DriverManager.registerDriver(new Driver());//注册驱动

//第二步获取连接

connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/school_java","root","1234");//使java连接mysql数据库然后连接本地服务器 指定数据库和账号密码

}

public void selectAll() throws SQLException {//查询类 查询数据表中的数据

//第三步:获取statement对象

PreparedStatement preparedStatement=connection.prepareStatement("select * from sudent;");//查询语句

//第四步:执行SQL语句返回结果集

ResultSet resultSet = preparedStatement.executeQuery();//executeQuery只能用来查询 新增修改删除都是使用另一种executeUpdate

//第五步:遍历结果集

while(resultSet.next()) {//while循环数据库中的四个类型 id name tel sex 分别是 序列 名字 电话号码 和性别

System.out.print(resultSet.getInt("id")+" ");

System.out.println(resultSet.getString("name"));

System.out.println(resultSet.getString("tel"));

System.out.println(resultSet.getString("sex"));

}

//第六步:关闭连接释放资源

resultSet.close();//关闭连接释放资源

preparedStatement.close();

}

public void close() throws SQLException {

connection.close();//最后关闭连接释放资源

}

}

全部代码如上所示 接下来是详细的讲解

连接数据库

主要是分为六个部分

第一步注册驱动

第二步获取连接

第三步:获取statement对象

第四步:执行SQL语句返回结果集

第五步:遍历结果集

第六步:关闭连接释放资源

然后呢 代码和注解如下

public void getConnection () throws SQLException{//注册驱动 连接mysql数据库 并遍历出表中的数据

//第一步注册驱动

DriverManager.registerDriver(new Driver());//注册驱动

//第二步获取连接

connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/school_java","root","1234");//使java连接mysql数据库然后连接本地服务器 指定数据库和账号密码

}

public void selectAll() throws SQLException {//查询类 查询数据表中的数据

//第三步:获取statement对象

PreparedStatement preparedStatement=connection.prepareStatement("select * from sudent;");//查询语句

//第四步:执行SQL语句返回结果集

ResultSet resultSet = preparedStatement.executeQuery();//executeQuery只能用来查询 新增修改删除都是使用另一种executeUpdate

//第五步:遍历结果集

while(resultSet.next()) {//while循环数据库中的四个类型 id name tel sex 分别是 序列 名字 电话号码 和性别

System.out.print(resultSet.getInt("id")+" ");

System.out.println(resultSet.getString("name"));

System.out.println(resultSet.getString("tel"));

System.out.println(resultSet.getString("sex"));

}

//第六步:关闭连接释放资源

resultSet.close();//关闭连接释放资源

preparedStatement.close();

}

以上代码是 让java连接数据 然后遍历出指定的表中的内容 然后再主函数中new一个对象然后调用该方法就可以输出表中的内容

模糊查询

再是使用mysql数据库中的模糊查询 达到输入开头的号码如:182来查询号码182开头的号码的员工

代码如下

public void obscure() throws SQLException {//使用mysql模糊查询来查询以182开头的数据

PreparedStatement preparedStatement=connection.prepareStatement("select*from sudent where tel like'182%'");//使用的是mysql中的模糊查询语句

ResultSet resultSet = preparedStatement.executeQuery();//executeQuery只能用来查询 //新增修改删除都是使用另一种e

//第五步:遍历结果集

while(resultSet.next()) {使用while循环来遍历表中四个类型

System.out.print(resultSet.getInt("id")+" ");//id 序号

System.out.println(resultSet.getString("name"));//name 名字

System.out.println(resultSet.getString("tel"));//tel //电话

System.out.println(resultSet.getString("sex"));//sex //性别

}

}

然后再主函数中调用该方法就可以打印输出了

增删改

增删改都是使用mysql数据库中的语句

主要如下 代码注解

删除

public void delete(String id) throws SQLException {//删除指定位置上的数据

PreparedStatement preparedStatement = connection.prepareStatement("delete from sudent where id = ?;");

preparedStatement.setString(1, id);//

//第四步 :执行SQL语句

preparedStatement.executeUpdate();

//第六步关闭接连释放资源

preparedStatement.close();

}

修改

public void updatedate(int id,String name) throws SQLException {//修改指定位置上的数据

PreparedStatement preparedstatement =connection.prepareStatement("update sudent set name=? where id=? ; ");

preparedstatement.setString(1, name);

preparedstatement.setInt(2, id);

//第四步: 执行SOL语句

preparedstatement.executeUpdate();

//第六步: 关闭连接释放资源

preparedstatement.close();

}

添加

public void add(int id ,String name,String tel , String sex) throws SQLException {//add添加数据

PreparedStatement preparedStatement=connection.prepareStatement("insert into sudent values (?,?,?,?);");//向mysql数据库中指定的sudent表中添加数据

preparedStatement.setInt(1, id);//添加id 序号

preparedStatement.setString(2,name);//添加name//名字

preparedStatement.setString(3,tel);//添加电话

preparedStatement.setString(4,sex);//添加性别

preparedStatement.executeUpdate();

//第六步关闭接连释放资源

preparedStatement.close();

}

然后再在主函数中调用就好了

相关推荐
牧夏。5 分钟前
vscode运行java中文乱码,引发的mac配置问题
java·vscode·macos
吃饱很舒服16 分钟前
kotlin distinctBy 使用
android·java·开发语言·前端·kotlin
老马啸西风19 分钟前
MySQL-18-mysql source 执行 sql 文件时中文乱码
java
源码宝25 分钟前
基于java语言+ Vue+ElementUI+ MySQL8.0.36数字化产科管理平台源码,妇幼信息化整体解决方案
java·源代码·产科电子病历系统源码·医院产科信息管理系统源码·数字化产科管理平台源码
FREE技术1 小时前
基于java+springboot+vue实现的畅销图书推荐系统(文末源码+lw+ppt)23-500
java·vue.js·spring boot
ToBeWhatYouWannaBe.1 小时前
代码随想录-Day49
java·数据结构·算法·leetcode
彧A1 小时前
数据库的学习(4)
java·开发语言·数据库
Jinyi5031 小时前
Spring Boot 高级配置:如何轻松定义和读取自定义配置
java·spring boot·后端·spring·java-ee·maven·intellij-idea
虫小宝2 小时前
Spring Boot中的API文档生成
java·spring boot·后端
武子康2 小时前
Hadoop-12-Hive 基本介绍 下载安装配置 MariaDB安装 3台云服务Hadoop集群 架构图 对比SQL HQL
java·大数据·hive·hadoop·分布式·hdfs·mariadb