第十七章 数据库操作

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

}

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

相关推荐
武子康19 分钟前
大数据-258 离线数仓 - Griffin架构 配置安装 Livy 架构设计 解压配置 Hadoop Hive
java·大数据·数据仓库·hive·hadoop·架构
豪宇刘1 小时前
MyBatis的面试题以及详细解答二
java·servlet·tomcat
秋恬意1 小时前
Mybatis能执行一对一、一对多的关联查询吗?都有哪些实现方式,以及它们之间的区别
java·数据库·mybatis
FF在路上2 小时前
Knife4j调试实体类传参扁平化模式修改:default-flat-param-object: true
java·开发语言
真的很上进2 小时前
如何借助 Babel+TS+ESLint 构建现代 JS 工程环境?
java·前端·javascript·css·react.js·vue·html
众拾达人3 小时前
Android自动化测试实战 Java篇 主流工具 框架 脚本
android·java·开发语言
皓木.3 小时前
Mybatis-Plus
java·开发语言
不良人天码星3 小时前
lombok插件不生效
java·开发语言·intellij-idea
守护者1703 小时前
JAVA学习-练习试用Java实现“使用Arrays.toString方法将数组转换为字符串并打印出来”
java·学习
源码哥_博纳软云3 小时前
JAVA同城服务场馆门店预约系统支持H5小程序APP源码
java·开发语言·微信小程序·小程序·微信公众平台