详细解析java JDBC实现增删改查

这篇具有很好参考价值的文章主要介绍了详细解析java JDBC实现增删改查。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

实现java数据库的增删改查基本步骤

包与类的结构。

一,与数据库建立连接,驱动包导入。

​二,创建实体类(与数据库的属性相一致)

三,创建接口 

四,sql语句预编译和执行代码

         五,test测试类

 


实现java数据库的增删改查基本步骤

1, jdbc类数据库链接和驱动导入,test类测试增删改查。

2,Book类编写实体类(与数据库MySQL的属性一至)

3,BookDaoompl接口编写增删改查抽象方法

4,BookDao实现BookDaoompl接口中 的抽象方法

包与类的结构。

详细解析java JDBC实现增删改查

一,与数据库建立连接,驱动包导入。

package Util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class jdbc {
	static {
		try {
			Class.forName("com.mysql.jdbc.Driver");//驱动加载
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

	}

	public static Connection con() throws SQLException {
		String url = "jdbc:mysql://localhost:3306/test?characterEncoding=utf-8";
		Connection con = DriverManager.getConnection(url, "root", "sa");//与数据建立连接
		return con;

	}

	public static void main(String[] args) {
		try {
			Connection con = jdbc.con();
			System.out.println(con);//测试链接是否成功
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

连接测试成功显示地址; 

 二,创建实体类(与数据库的属性相一致)

package Entity;

public class Book {
	private int id;
	private String name;
	private int age;
	private String sex;
	private String dizhi;//设置私有属性
    //get和set得到和设置属性值
	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public int getAge() {
		return age;
	}

	public void setAge(int age) {
		this.age = age;
	}

	public String getSex() {
		return sex;
	}

	public void setSex(String sex) {
		this.sex = sex;
	}

	public String getDizhi() {
		return dizhi;
	}

	public void setDizhi(String dizhi) {
		this.dizhi = dizhi;
	}
    //建立有参和无参的构造方法
	public Book(int id, String name, int age, String sex, String dizhi) {
		super();
		this.id = id;
		this.name = name;
		this.age = age;
		this.sex = sex;
		this.dizhi = dizhi;
	}

	public Book() {
		super();
	}
    //建立tostring方法返回string值
	@Override
	public String toString() {
		return "Book [id=" + id + ", name=" + name + ", age=" + age + ", sex=" + sex + ", dizhi=" + dizhi + "]";
	}

}

三,创建接口 

package Dao;

import java.sql.SQLException;
import java.util.List;

import Entity.Book;

public interface BookDaoimpl {
	int insertbook(Book book) throws SQLException;//增

	int delete(int id) throws SQLException;//删

	int update(Book book) throws SQLException;//改

	List<Book> selectBook() throws SQLException;//查

}

四,sql语句预编译和执行代码

package Dao;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import Entity.Book;
import Util.jdbc;

public class BookDao implements BookDaoimpl {

	@Override
    //增
	public int insertbook(Book book) throws SQLException {
		// TODO Auto-generated method stub
		Connection con = jdbc.con();//连接数据库
        //sql语句的预编译防止sql注入 ,?代表占位符
        //表名和属性要与数据库表明和属性一至
		String sql = "insert into book (name,age,sex,dizhi) values(?,?,?,?)";
        //创建PreparedStatement对象用来执行sql语句
		PreparedStatement per = con.prepareStatement(sql);
        //添加和得到各个属性的值
		per.setString(1, book.getName());
		per.setInt(2, book.getAge());
		per.setString(3, book.getSex());
		per.setString(4, book.getDizhi());
        //执行sql语句,executeUpdate()获取影响的行数并返回
		int rows = per.executeUpdate();
        //返回执行影响的行数
		return rows;
	}
    //删
	@Override
	public int delete(int id) throws SQLException {
		// TODO Auto-generated method stub
        //连接数据库
		Connection con = jdbc.con();
        //删除sql语句预编译
		String sql = "delete from book where id=?";
		PreparedStatement per = con.prepareStatement(sql);
        //获取删除的id
		per.setInt(1, id);
        //执行删除sql语句
		int wors = per.executeUpdate();
        //返回影响行数,executeUpdate()获取影响的行数并返回
		return wors;
	}
    //改
	@Override
	public int update(Book book) throws SQLException {
        //获取连接
		Connection con = jdbc.con();
		// TODO Auto-generated method stub
        //sql语句编译
		String sql = "update book set name=?,age=?,sex=?,dizhi=?where id=?";
		PreparedStatement per = con.prepareStatement(sql);
        //得到修改的数据
		per.setString(1, book.getName());
		per.setInt(2, book.getAge());
		per.setString(3, book.getSex());
		per.setString(4, book.getDizhi());
		per.setInt(5, book.getId());
        //执行修改sql语句,executeUpdate()获取影响的行数并返回
		int wors = per.executeUpdate();
        //返回影响行数
		return wors;
	}
    //查
	@Override
	public List<Book> selectBook() throws SQLException {
		// TODO Auto-generated method stub
        //获取连接
		Connection con = jdbc.con();
        //查询语句编译
		String sql = "select * from book";
		PreparedStatement per = con.prepareStatement(sql);
        //executeQuery()方法查询到数据库的相应结果存放到ResultSet
		ResultSet rest = per.executeQuery();
        //建立list集合存放输出查询结果
		List<Book> book = new ArrayList<Book>();
        //rest.next()方法将指针下移直到没下一行返回FALSE。
		while (rest.next()) {
            //将查询结果依次储存
			int id = rest.getInt("id");
			String name = rest.getString("name");
			int age = rest.getInt("age");
			String sex = rest.getString("sex");
			String dizhi = rest.getString("dizhi");
            //建立一个新对象放置结果
			Book book1 = new Book(id, name, age, sex, dizhi);
			//将结果增加到list集合中
            book.add(book1);
		}
        返回查询结果
		return book;

	}

}

 增删改的执行语句的方法不一致,因为增删改只需要返回执行中影响的正确行数,so我们只要使用executeUpdate()方法,而查询需要返回查询的结果集要用executeQuery()方法进行储存文章来源地址https://www.toymoban.com/news/detail-472541.html

 五,test测试类

package Test;

import java.sql.SQLException;
import java.util.List;

import Dao.BookDao;
import Dao.BookDaoimpl;
import Entity.Book;

public class test {

	public static void main(String[] args) throws SQLException {
		// TODO Auto-generated method stub
        
		BookDaoimpl dao = new BookDao();
		Book book = new Book();
		List<Book> rows = dao.selectBook();
		System.out.println(rows);

	}

}

 查询结果

到了这里,关于详细解析java JDBC实现增删改查的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • JDBC-->java如何连接数据库(详细版小白必备)

     个人名片: 🐅作者简介:一名大二在校生,热爱生活,爱好敲码! 💅个人主页 🥇:holy-wangle ➡系列内容: 🖼️ tkinter前端窗口界面创建与优化 🖼️ Java实现ATP小系统 ✨个性签名: 🍭不积跬步,无以至千里;不积小流,无以成江海         最近在忙着复习期末考试

    2024年02月04日
    浏览(52)
  • 【JDBC篇】java 如何连接数据库(超详细步骤)

    本文以java连接mysql为例讲解;仅仅记录了一部分知识点,其余我还没学完,后面会补充!初学JDBC文章仅仅是我个人对知识点的理解,请谨慎参考! 目录 Java连接数据库前期工作: JDBC程序编写步骤总览  JDBC编程的六步: 1,注册驱动   2,获得连接   3,获得数据库操作对象

    2024年02月08日
    浏览(65)
  • Microsoft SQL Server 2019 下载、安装及Java JDBC配置连接数据库(多图详解 超详细)

    一、下载 下载链接Microsoft SQL Server 二、安装 1.找到刚刚下载的文件,双击打开后,选择基本并接受 2.选择接受 3.选择安装位置,并点击安装,然后等待下载安装完成 4.正在安装 -5.遇到了一个问题,重启一下(未遇到该问题的可忽略此步) 6.安装成功,点击安装SSMS 7.点击下载

    2024年02月04日
    浏览(108)
  • java链接hive数据库实现增删改查操作

    要在Java中连接Hive数据库并实现增删改查操作,需要使用Hive JDBC驱动程序。 首先,确保已经安装了Hive,并且Hadoop集群正在运行。 然后,根据Hive版本下载相应的Hive JDBC驱动程序。可以从Apache Hive官方网站下载。 接下来,编写Java代码来连接Hive数据库和执行增删改查操作。 以下

    2024年01月21日
    浏览(44)
  • java代码实现,利用JDBC接口-连接Mysql数据库

    1、JDBC本质上是一个接口,也就是java语言操作数据库的一套API(应用程序编程接口), 接口就规则,也就是sun公司创建了一个jdbc接口,各个sql(数据库管理系统)去实现接口提供jar包。其优点JDBC不是指单一操作某一个数据库。各个厂商使用相同的接口。不同的sql厂家实现

    2024年02月09日
    浏览(71)
  • Java连接数据库(学生管理系统案例,可以实现增删改查)

    首先,需要做一个准备工作 ——下载jar包,这个包是用来支持数据库的连接的 官网的下载链接:MySQL :: Download Connector/J 点击链接进入页面: 选择画红框的下载按钮。 与此同时,打开IDEA开发工具,在当前项目目录下新建一个lib目录文件夹用来存放第三方jar包,这样做方便管

    2024年02月07日
    浏览(55)
  • Java实现neo4j数据库连接及增删改查

    天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。 可参考文章: neo4j数据库的介绍及基础语法 neo4j数据库语法实例演示 在增删改查之前我

    2024年02月14日
    浏览(43)
  • MySQL数据库,JDBC连接数据库操作流程详细介绍

    在学完 MySQL 和 Java 后,我们通常会尝试使用 Java编译器 连接 MySQL数据库,从而达到使用编译器来操作数据库的效果。连接的这个过程会用 JDBC 相关知识,因此我把 JDBC 包的下载及导入流程,以及 JDBC 的使用流程整理下来分享给大家。 目录 1. 啥是JDBC? 2. JDBC依赖包 2.1 依赖包

    2024年02月06日
    浏览(104)
  • MySQL数据库,表的增删改查详细讲解

    目录 1.CRUD 2.增加数据 2.1创建数据 2.2插入数据 2.2.1单行插入 2.2.2多行插入 3.查找数据 3.1全列查询 3.2指定列查询 3.3查询字段为表达式 3.3.1表达式不包含字段 3.3.2表达式包含一个字段 3.3.3表达式包含多个字段  3.4起别名 3.5distinct(去重) 3.6order by(排序) 3.6.1某字段默认排序 3.6.2某字

    2023年04月14日
    浏览(43)
  • MySQL | JDBC连接数据库详细教程【全程干货】

    JDBC,即 Java Database Connectivity ,java数据库连接。是一种用于执行SQL语句的Java API,它是Java中的数据库连接规范。这个API由 java.sql.*,javax.sql.* 包中的一些类和接口组成,它为Java开发人员操作数据库提供了一个 标准的API ,可以为多种关系数据库提供统一访问 JDBC 为多种关系数据

    2024年02月06日
    浏览(79)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包