第十七章 数据库操作

数据库基础 和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();

}

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

相关推荐
Joy T5 小时前
Agent 确定性上下文设计:从 Prompt 参数注入到能力分层
java·开发语言·微服务·架构·prompt·agent context
m0_587383008 小时前
广州 24 小时自助健身房解决方案技术实现与实战指南
java·spring·小程序·架构·需求分析
·云扬·8 小时前
Prompt 工程与安全:从 System 设计到注入防御
java·人工智能·安全·ai·prompt
代码不停9 小时前
自动化测试(java)
java·开发语言·selenium·自动化
鬼手点金11 小时前
opencode-rules 插件
java·开发语言·前端·人工智能·chrome·git·github
paopaokaka_luck12 小时前
滑雪场管理系统(AI智能助手流式对话,ECharts 运营数据分析、教练、雪具与场地一体化预约,钱包支付退款、订单核销与服务评价)
java·人工智能·spring boot·网络协议·数据分析·echarts
Wang's Blog12 小时前
Java 项目实战: 交友项目 - Dubbo 的内部结构与一次调用的完整链路
java·dubbo
Wang's Blog12 小时前
Java 项目实战: 交友项目 - Dubbo 入门引导
java·dubbo·交友
蜗牛互联网13 小时前
Python Agent工具调用的白名单、参数校验与审批门禁
java·服务器·前端·人工智能·后端·python
SL_staff13 小时前
当规则引擎开始‘懂业务’:JVS-Rules金融风控四大原生能力拆解
java·python·全栈