【java+MySQL】调用方法对MySQL的表进行增删改查操作

这篇具有很好参考价值的文章主要介绍了【java+MySQL】调用方法对MySQL的表进行增删改查操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、java+MySQL,java对数据库表进行增删改查任务前提:

要求一:创建lib文件夹

要求二:添加druid.properties

要求三:创建四个子文件夹

二、具体要求如下:

1、编写DbUtils类,连接数据库;

2、写一个实体类Product.java

3、写一个产品表数据访问类ProductDao.java

4、写一个测试类TestProDao.java

三、数据库表配置和java完整代码如下:

1、在MySQL数据库中,我创建的数据库,命名为mydata1

2、DbUtils.java连接数据库的类:

3、实体类Product.java

4、ProductDao.java包含增删改查的方法

5、TestProDao.java调用方法,对数据库表进行增删改查

四、运行结果

1、添加产品:

2、修改产品:

3、根据pro_Id查询一个产品:

4、查询所有产品,返回一个list列表:

5、删除产品


一、java+MySQL,java对数据库表进行增删改查任务前提:

要求一:创建lib文件夹

已在项目路径下,创建了一个lib文件夹,粘贴两个jar包:duruid-1.0.9.jar和mysql-connector-java-5.1.37-bin.jar;

并分别鼠标右键,选中add as library,添加到环境配置中;

要求二:添加druid.properties

在本项目的src目录下,粘贴druid.properties;

【java+MySQL】调用方法对MySQL的表进行增删改查操作

要求三:创建四个子文件夹

在本项目的src目录下创建四个文件夹,分别命名为com.qingruan.dao、com.qingruan.entity、com.qingruan.test、com.qingruan.util(com后面的是公司名,可替换):

文件夹下分别放相应功能的java文件,这样分工明确,不会混乱。

com.qingruan.dao:创建包含增删改查的方法的类,命名为:ProductDao.java

com.qingruan.entity:创建实体类,命名为:Product.java

com.qingruan.test:创建测试类,命名为:TestProDao.java

com.qingruan.util:创建java连接数据库的类,命名为:DbUtils.java

分割线————————————————————————————

二、具体要求如下:

1、编写DbUtils类,连接数据库;

java连接MySQL的具体讲解在上一篇。

2、写一个实体类Product.java

同时在MySQL创建产品表product,注意数据类型和属性要一致;在实体类应有三个私有属性:

产品序号pro_Id、产品名称pro_name、产品价格pro_price,其中pro_Id要设置为主键,并自增;

最后创建get/set方法;

3、写一个产品表数据访问类ProductDao.java

包含增删改查的方法:

(在这个类中先抛出异常,在测试类调用方法时,再进行try..catch...)

提示如下:

增加产品的方法:public int addProd(Product p)throws Exception;

删除产品的方法:public int delProd(int pro_Id) throws Exception;

修改产品的方法:public int updateProd(Product p)throws Exception;

查询所有产品的方法,并返回产品集合:public List selectAll() throws Exception;

根据pro_Id产品id查询单个产品的方法:public Product selectProdById(int id)throws Exception;

4、写一个测试类TestProDao.java

要求使用数据访问ProductDao.java中的增删改查方法,并测试打印结果。

分割线——————————————————————————

三、数据库表配置和java完整代码如下:

1、在MySQL数据库中,我创建的数据库,命名为mydata1

数据库下的表名为product;

表的配置如下:

【java+MySQL】调用方法对MySQL的表进行增删改查操作

2、DbUtils.java连接数据库的类:

我的MySQL的账号名为:root,密码为1234;(请根据自身情况,对以下代码进行改动)

package com.qingruan.util;


import com.alibaba.druid.pool.DruidDataSourceFactory;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Properties;

// 针对数据库的连接作用
public class DbUtils {

	//定义私有成员
	private static  DataSource ds;

	//1.静态代码块 加载配置文件,初始化连接池对象
	static{     // 特点:用于给类进行初始化,只加载一次,随着类的加载而加载
		try {
			Properties pro =new Properties();
			//加载属性文件
			pro.load(DbUtils.class.getClassLoader().getResourceAsStream("druid.properties"));
			//获得连接池对象
			ds = DruidDataSourceFactory.createDataSource(pro);
		}catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}



	//2.定义一个方法:获取连接对象
	public static Connection getConnection(){
		try {
			return  ds.getConnection();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return null;
	}

	//3.定义一个方法:用于释放资源
	public static void close(ResultSet rs,PreparedStatement ps,Connection cn){
		if(rs!=null){
			try {
				rs.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		if(ps!=null){
			try {
				ps.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
		if(cn!=null){
			try {
				cn.close();  //  此时的关闭,是归还给连接池对象
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}

	/**
	 * 获得连接池的方法
	 * @return
	 */
	public static  DataSource getDataSource(){
		return ds;
	}

}

3、实体类Product.java

package com.qingruan.entity;

// 产品类 与 数据库中的product产品表是与之对应的
// 将数据库的产品表 看作是 java中的一个产品类   数据库中产品表的字段可以看作是 java中产品类的属性
public class Product {
    private Integer pro_Id;  //产品编号(给程序使用)
    private String pro_name; // 产品名称
    private Integer pro_price; // 产品价格
    public Product() {
        // TODO Auto-generated constructor stub
    }
    public Product( String pro_name, Integer pro_price) {
        this.pro_name = pro_name;
        this.pro_price = pro_price;
    }
    public Product(Integer pro_Id, String pro_name, Integer pro_price) {
        this.pro_Id = pro_Id;
        this.pro_name = pro_name;
        this.pro_price = pro_price;
    }
    @Override
    public String toString() {
        return "Product [pro_Id=" + pro_Id +  ", pro_name=" + pro_name + ", pro_price="
                + pro_price + "]";
    }
    public Integer getPro_Id() {
        return pro_Id;
    }
    public void setPro_Id(Integer pro_id) {
        this.pro_Id = pro_id;
    }
    public String getPro_name() {
        return pro_name;
    }
    public void setPro_name(String pro_name) {
        this.pro_name = pro_name;
    }
    public Integer getPro_price() {
        return pro_price;
    }
    public void setPro_price(Integer pro_price) {
        this.pro_price= pro_price;
    }
}

4、ProductDao.java包含增删改查的方法

package com.qingruan.test;

import com.qingruan.entity.Product;
import com.qingruan.util.DbUtils;

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

// dao  负责与数据库交互的,目前实现的技术是jdbc
public class ProductDao {
    private static PreparedStatement ps = null;
    private static Connection cn = null;
    private static ResultSet rs = null;

    /**
     * 添加产品
     *
     * @param p 需要传入的参数是产品对象
     * @return 返回受影响的行数
     */
    public int addProd(Product p) throws Exception { // 传入一个产品对象
        // 1.获得连接
        cn = DbUtils.getConnection();
        // 2.获得预处理对象
        String sql = "insert into product values(null,?,?)";
        ps = cn.prepareStatement(sql);
        // 3.赋予实际的参数
        ps.setString(1, p.getPro_name());
        ps.setInt(2, p.getPro_price());
        // 4.得到结果集
        int result1 =  ps.executeUpdate();
        DbUtils.close(null, ps, cn);// 5.释放资源
        return result1;
    }

    /**
     * 修改产品信息
     *
     * @param p 需要修改的产品信息
     * @return 返回受影响的行数
     */
    public int updateProd(Product p) throws Exception {
        cn = DbUtils.getConnection();
        String sql = "update product set pro_name=?,pro_price=?where pro_Id=?";
        ps = cn.prepareStatement(sql);
        ps.setString(1, p.getPro_name());
        ps.setInt(2, p.getPro_price());
        ps.setInt(3, p.getPro_Id());
        int result2 = ps.executeUpdate();
        DbUtils.close(null, ps, cn);
        return result2;
    }

    /**
     * 依据产品id删除产品信息
     *
     * @param pro_Id 需要删除的产品id
     * @return 返回受影响的行数
     */
    public int delProd(int pro_Id) throws Exception {
        cn = DbUtils.getConnection();
        String sql = "delete from product where pro_Id=?";
        ps = cn.prepareStatement(sql);
        ps.setInt(1, pro_Id);
        int result = ps.executeUpdate();
        return result;
    }

    /**
     * 依据产品id查询产品详细信息
     *
     * @param pro_Id 需要传入的产品编号
     * @return 返回产品信息
     */
    public Product selectProdById(int pro_Id) throws Exception {
        Product pro = null;
        cn = DbUtils.getConnection();
        String sql = "select * from product where pro_id=?";
        ps = cn.prepareStatement(sql);
        ps.setInt(1, pro_Id);
        rs = ps.executeQuery();
        if (rs.next()) {
            pro = new Product(rs.getInt(1), rs.getString(2),rs.getInt(3));
        }
        DbUtils.close(null, ps, cn);
        return pro;
    }

    /**
     * 查询产品列表
     *
     * @return 返回产品集合
     */
    public List selectAll() throws Exception{
        List<Product> list = new ArrayList<Product>();
        cn = DbUtils.getConnection();
        String sql = "select * from product";
        ps = cn.prepareStatement(sql);
        rs = ps.executeQuery();
        while (rs.next()) {
            list.add(new Product(rs.getInt(1), rs.getString(2),rs.getInt(3)));//放到集合中
        }
        return list;
    }
}



5、TestProDao.java调用方法,对数据库表进行增删改查

package com.qingruan.test;

import com.qingruan.entity.Product;
import org.junit.Test;

import java.util.List;

public class TestProDao {
    ProductDao dao =new ProductDao();
    //添加产品
    @Test
    public void save(){
        int result = 0;
        try {
            result = dao.addProd(new Product("苹果", 22));

        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println(result>0?"添加成功":"添加失败");
    }

    //单个查询
    @Test
    public void findById() {
        Product pro = null;
        try {
            pro = dao.selectProdById(1);
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println(pro);
    }

    //查询所有
    @Test
    public void findAll(){
        List<Product> list = null;
        try {
            list = dao.selectAll();

        } catch (Exception e) {
            e.printStackTrace();
        }
        for(Product  pro : list){
            System.out.println(pro);
        }
    }

    //删除
    @Test
    public void delete(){
        int result = 0;
        try {
            result = dao.delProd(5);
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println(result > 0 ? "删除成功" : "删除失败");
    }

    //修改
    @Test
    public void update() {
        Product pro = null;
        int result2 = 0;
        try {
            pro = dao.selectProdById(2);
            pro.setPro_name("哇塞");
            result2 = dao.updateProd(pro);
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println(result2 > 0 ? "删除成功" : "删除失败");
    }


}

四、运行结果

1、添加产品:

【java+MySQL】调用方法对MySQL的表进行增删改查操作

2、修改产品:

【java+MySQL】调用方法对MySQL的表进行增删改查操作

3、根据pro_Id查询一个产品:

【java+MySQL】调用方法对MySQL的表进行增删改查操作

4、查询所有产品,返回一个list列表:

【java+MySQL】调用方法对MySQL的表进行增删改查操作

5、删除产品

【java+MySQL】调用方法对MySQL的表进行增删改查操作

 文章来源地址https://www.toymoban.com/news/detail-497113.html

到了这里,关于【java+MySQL】调用方法对MySQL的表进行增删改查操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 关于安卓13中Android/data目录下的文件夹只能查看无法进行删改的问题

    因为升级了安卓13,然后有个app需要恢复数据,打算和以前一样直接删除Android/data下对应目录再添加,结果不行,以下是结合网上以及自己手机情况来做的一种解决方案。 准备: 待恢复app(包名com.test.ai) 其他app(包名com.other.ai,这个app当做临时变量就行,随便任意app,且知

    2024年02月09日
    浏览(76)
  • Python对MySQL数据库进行增删改查

    Python连接MySQL数据库后,可以使用SQL语句对数据库进行增删改查操作。以下是使用pymysql库实现Python对MySQL数据库进行增删改查的示例。 1. 连接MySQL数据库 ```python import pymysql # 打开数据库连接 db = pymysql.connect(host=\\\'localhost\\\', user=\\\'root\\\', password=\\\'password\\\', database=\\\'test_db\\\') # 使用 cursor()

    2024年02月05日
    浏览(40)
  • 【MySQL】增删改查操作(基础)

    在我们的数据库中,用insert into来进行新增操作,首先我们需要一张表 注意:在进行下列操作时,要选中数据库进行操作 一次只插入一行,每一行都会插入数据 举例如下: 举例如下: 这里通过 mysql 客户端给出的信息,也能看到我们成功插入了 2 行数据 注意:values()括号中

    2024年04月15日
    浏览(28)
  • 【MySQL学习】MySQL表的增删改查操作

    MySQL的 CURD 是一个数据库技术中的缩写词,一般的项目开发的各种参数的基本功能都是CURD,他的作用是用于处理数据的基本原子操作。CURD 分别代表创建(Create)、更新(Update)、读取(Read)和删除(Delete)操作。 新增数据的语法: 案例: 插入两条记录,value_list 数量必须

    2024年02月02日
    浏览(47)
  • MySQL表的操作『增删改查』

    ✨个人主页: 北 海 🎉所属专栏: MySQL 学习 🎃操作环境: CentOS 7.6 阿里云远程服务器 🎁软件版本: MySQL 5.7.44 首先创建一个 数据库 testForTable 当前创建的 数据库 testForTable 字符集和校验集分别为 utf8 和 utf8_general_ci ,这是由配置文件中的默认编码集决定的 接下来创建一张

    2024年02月04日
    浏览(41)
  • MySQL操作命令详解:增删改查

    CRUD操作是指对数据库进行创建(Create)、读取(Read)、更新(Update)和删除(Delete)等操作的过程。 创建、选择、删除数据库 1.2.1 五大约束 1)非空约束(Not Null) 非空约束用于限制列中的值不能为空。这样可以确保表中的特定列不包含空值。 2)自增约束(auto_increment)

    2024年02月14日
    浏览(37)
  • flask 框架中对 MySQL 数据库进行增删改查

    以下是一个简单的示例代码,可以在 Flask 中使用 SQLAlchemy 库来实现对 MySQL 数据库的增删改查: 在上面的示例代码中,我们定义了一个名为 User 的数据模型,然后在 Flask 中创建了五个路由,分别用于创建用户、获取所有用户、获取单个用户、更新用户和删除用户。在每个路由

    2024年02月12日
    浏览(41)
  • java进行数据库操作的并发控制的2种方法

    本文分享自华为云社区《java进行数据库操作的并发控制》,作者:张俭。 在现代应用编码中,从数据库里面find出来,进行一些业务逻辑操作,最后再save回去。即: 但是这样的业务操作,如果一个线程修改年龄,另一个线程修改昵称,最后save回去,可能会导致年龄/昵称某一

    2024年02月04日
    浏览(43)
  • 通过HTML网页对mysql数据库进行增删改查(CRUD实例)

    首先我们得了解一下大致的架构 ,如下: 我们采用自底向上的方式进行开发, 一、先写mysql数据库 二、再写java后端(Spring MVC架构)(这个是什么东西不懂不要紧,跟着步骤做就行了) 三、最后写前端页面(HTML) 一、 Mysql数据库部分 我们要通过网页对数据库进行开发,那么我们需要先准

    2024年02月02日
    浏览(39)
  • MySQL中的增删改方法

    目录 1.插入数据/添加数据 2.更新数据/修改数据 3.删除数据 4.小结: 方式一:一条一条添加 1.不指明添加的字段:insert into 表名 values (字段值)         注意:一定要按照声明的字段先后顺序添加 2.指明添加的字段(推荐):insert into 表名(字段名) values (字段值) 3.同时添加多

    2024年02月15日
    浏览(35)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包