Java连接MySQL数据库增删改查的通用方法(推荐)

运行环境:eclipse+MySQL

以前我们Java连接MySQL数据库都是一个数据库写一个类,类下面写好多方法,要是多个数据库,就要写多个类多个方法,导致代码编写太过于繁琐,所以为了改变这样的繁琐,我将连接数据库的方法进行了一系列的封装,使用户传入一个对象值Object就可以得到想要的。

我在之前写过一篇普通的Java连接MySQL数据库,大家可以看看,以便对比参考之后就知道差距了 数据库——MySQL——>Java篇

接下来我给大家讲讲如何将这个不可复用,又多重复的连接代码,封装起来,非常好用

基本思想:

我们连接数据库的时候,写的方法都是要一个个类 的去写,其中的方法不计其数,连接数据库都是需要:

Class.forName():加载驱动 ——》com.mysql.jdbc.Driver

DriverManager.getConnection():驱动管理,连接到数据库 三个属性1.数据库地址 2.数据库用户名 3.密码

createStatement():创建Statement对象

ResultSet:执行sql语句获得结果集,再遍历

那么我们为了能通用,那么其中的:数据库名,sql语句,遍历结果集要得到的结果,都是要根据不同数据库根据传入参数不同而变化的

首先每个项目开始前都要将数据库实体化,每个表都是一个实体类,表名是类名,字段为其属性,再用set和get方法这些属性

再根据反射机制,对象是我们表的实例化对象,根据我传入方法的这个参数对象,获取其中的方法,属性,属性值,类型等一系列的东西,来实现方法的封装通用

代码演示

先演示一个查询:通过传入这个表的实体类,通过一系列的放射机制,对比拼装成一个查询方法

public static List<Object> query(Class<?> obj) {
    Statement st=null;
    List<Object> list=new ArrayList<>();
    //数据库MySQL的地址
        String DBURL="jdbc:mysql://localhost:3306/lms_leave?useUnicode=true&characterEncoding=utf-8";
        String DBName="root"; //登入用户名
        String DBPwd="123456";//登入密码
        //加载驱动
        try {
          Class.forName("com.mysql.jdbc.Driver");
        //连接数据库
        Connection conn=DriverManager.getConnection(DBURL,DBName,DBPwd);
        //创建Statement对象
        st=conn.createStatement();
        ResultSet rs=st.executeQuery("select * from "+obj.getSimpleName());
        //获取传入类中的方法
        Method[] methods=obj.getMethods();
        //设置一个方法的list集合,下面将方法放入其中,以便调用
        List<Method> list_m= new ArrayList<>();
        //类中有许多方法,过滤一些方法,获取自己想要的方法
        for(int i=0;i<methods.length;i++){ //过滤方法
          //判断方法名字中是否有set这个提取
          if (methods[i].getName().contains("set")) {
            //将方法添加到list中
            list_m.add(methods[i]);
          }
        }
        //创建字符串string集合,获取下面的字段名存入
        List<String> fieldname=new ArrayList<>();
        //获取类中的属性,其属性对应数据库中的字段
        Field[]  f=obj.getDeclaredFields();
        //循环将字段中的名字首个变大写
        for (int i = 0; i < f.length; i++) {
          //获取名字
          String field=f[i].getName();
          //变大小写,存入fieldname集合
          fieldname.add(upperCase(field));
        }
        //获取得到结果集(rs)的结构,比如字段数、字段名等。
        ResultSetMetaData rsmd=  rs.getMetaData();
        //循环读取结果集中的数据添加到list集合中
        while (rs.next()) {
          //创建一个传入类对象user
          Object user=obj.newInstance();
          //遍历方法的集合
          for (Method m : list_m) {
            //遍历字段的集合
            for (int i = 0; i < f.length; i++) {
              //方法和字段作比较,查看方法名中是否含有这个字段名,两者匹配
              if (m.getName().contains("set"+fieldname.get(i))) {
                //匹配成功 ,则去得到rsmd去获取数据库中的字段名,rs.getObject,再根据获取的这个字段名去得到这个字段值
                Object value=rs.getObject(rsmd.getColumnName(i+1));
                //获取这个字段的类型,以便去储存这个值的类型
                Class<?> type=f[i].getType();
                //是int类型的转化
                if (type==int.class) {
                  value=new Integer(value.toString());
                }
                //string类型的转化
                if (type==String.class) {
                  value=value.toString();
                }
                //m是user对象中的方法,设置其值
                m.invoke(user, value);
              }
            }
          }
          //将的到的user对象实例添加到list集合中
          list.add(user);
        }
        } catch (Exception e) {
          // TODO Auto-generated catch block
          e.printStackTrace();
        }
        return list;
  }

大家可以参考这个方法完全可以改装成剩余的插入,修改,删除

再给大家提示一下插入的方法封装重要的一点是,获取其中要插入的字段,根据插入语句拼接成一个完整的sql语句就可以完成

//m.invoke(user);我的理解是运行user类下的方法m,得到返回值
Object object=m.invoke(user);

这些东西需要自己多去思考总结,希望对大家有用,我就不多写了,留给大家一点思考的空间,需要剩下的方法封装可以留言告诉我

以上这篇Java连接MySQL数据库增删改查的通用方法(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • java jdbc连接mysql数据库实现增删改查操作

    jdbc相信大家都不陌生,只要是个搞java的,最初接触j2ee的时候都是要学习这么个东西的,谁叫程序得和数据库打交道呢!而jdbc就是和数据库打交道非常基础的一个知识,也是比较接近底层的,在实际的工作中大家用得更多的其实还是比较成熟的框架,例如Hibernate.Mybatis. 但是作为这些成熟框架的底层的jdbc却也是我们应该去掌握的,只有了解了jdbc的增删改查,这样在以后如果有兴趣去研究Hibernate或者Mybatis的源代码的时候才能更好的去理解这些成熟的框架是如何去实现增删改查

  • java连接mysql数据库的方法

    看了一阵 spring 框架,不怎么好懂,最近脑子也有点不够用,于是乎来点简单的,用java连接数据库玩玩,顺便回顾一下数据库的增删改查~ 使用的是 eclipse .创建了个项目,然后网上找了篇教程看,有几点值得注意: 1.需要 mysql 的驱动包,官网下载很easy:http://dev.MySQL.com/downloads/connector/.下载个 zip 包,解压后找到一个 mysql-connector-java-5.1.42-bin.jar 的 jar 包,然后拉到你的实验项

  • Java连接mysql数据库并进行内容查询的方法

    最近用框架做了几个项目,感觉当初底层的东西有点忘了,写一个JDBC的简单的连接代码来熟悉回顾一下,也希望对刚接触的新手能有所帮助.这也是我的第一篇随笔,废话不多说,直接上代码: public Connection getCon() { //数据库连接名称 String username="root"; //数据库连接密码 String password=""; String driver="com.mysql.jdbc.Driver"; //其中

  • Java对MySQL数据库进行连接、查询和修改操作方法

    0. 一般过程: (1) 调用Class.forName()方法加载驱动程序. (2) 调用DriverManager对象的getConnection()方法,获得一个Connection对象. (3) 创建一个Statement对象,准备一个SQL语句,这个SQL语句可以是Statement对象(立即执行的的语句).PreparedStatement语句(预编译的语句)或CallableStatement对象(存储过程调用的语句). (4) 调用excuteQuery()等方法执行SQL语句,

  • 详解通过JDBC进行简单的增删改查(以MySQL为例)

    前言:什么是JDBC Java 数据库连接,(Java Database Connectivity,简称JDBC)是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法.JDBC也是Sun Microsystems的商标.它JDBC是面向关系型数据库的. 简单地说,就是用于执行SQL语句的一类Java API,通过JDBC使得我们可以直接使用Java编程来对关系数据库进行操作.通过封装,可以使开发人员使用纯Java API完成SQL的执行. 一.

  • java操作mysql实现增删改查的方法

    本文实例讲述了java操作mysql实现增删改查的方法.分享给大家供大家参考,具体如下: 首先,需要把MySQL与Java连接的jar(mysql-connector-java-5.1.6-bin.jar)包导入工程. package com.cn.edu; import java.beans.Statement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatemen

  • Java连接MySQL数据库增删改查的通用方法(推荐)

    运行环境:eclipse+MySQL 以前我们Java连接MySQL数据库都是一个数据库写一个类,类下面写好多方法,要是多个数据库,就要写多个类多个方法,导致代码编写太过于繁琐,所以为了改变这样的繁琐,我将连接数据库的方法进行了一系列的封装,使用户传入一个对象值Object就可以得到想要的. 我在之前写过一篇普通的Java连接MySQL数据库,大家可以看看,以便对比参考之后就知道差距了 数据库--MySQL-->Java篇 接下来我给大家讲讲如何将这个不可复用,又多重复的连接代码,封装起来,非常

  • Java连接MongoDB进行增删改查的操作

    Java连接MongoDB进行增删改查的操作 1.创建数据库的连接,进行增删改查 (分别为接口和实现类) package com.dao; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mo

  • Spring MVC实现mysql数据库增删改查完整实例

    最近刚学了springmvc框架,感觉确实方便了不少,减少了大量的冗余代码.就自己做了个小项目练练手,这是个初级的springmvc应用的项目,没有用到mybatis,项目功能还算完善,实现了基本的增删改查的功能. 项目环境: -系统:win10 -开发环境:eclipseOxygenReleaseCandidate3(4.7) -jdk版本:java1.8(121) -mysql:5.7 -spring:4.0 -tomcat:8.5 用到的技术: springmvcspringjspjdbc

  • java连接Mongodb实现增删改查

    本文实例为大家分享了java连接Mongodb实现增删改查的具体代码,供大家参考,具体内容如下 1.创建maven项目 <dependency> <groupId>org.mongodb</groupId> <artifactId>mongodb-driver</artifactId> <version>3.4.1</version> </dependency> 2.编写代码 1.查询所有 package co

  • Python连接Mysql进行增删改查的示例代码

    Python连接Mysql 1.安装对应的库 使用Python连接Mysql数据库需要安装相应的库 以管理员身份运行cmd,输入命令 pip install mysql.connector 安装完成后建立 test.py 写入 import mysql.connector 保存后运行 python test.py 用以测试模块库是否安装完成,如果不报错,说明安装完成 2.进行连接测试 编写connectTest.py文件 文件内容: import mysql.connector connect

  • QT5连接MySQL实现增删改查

    目录 实现代码 运行结果 测试数据 实现代码 #include #include #include #include #include #include #include #include using namespace std; #include #include #include const char *kDbType = "QMYSQL"; // 数据库类型 const QString& kHost = "127.0.0.1"; // 数据库的ipd地

  • MySQL基本增删改查语句练习(最新推荐)

    目录 MySQL基本增删改查语句练习 创建数据库: 创建数据库表: 插入数据库 查询数据库: 插入数据库: 查询数据库: 修改数据库: 删除数据库: 修改数据库: 补充:Mysql基础增删改查语句 一.增Insert 二.删delete 三.改update 四.查select MySQL基本增删改查语句练习 创建数据库: 1.在cmd窗口中输入mysql -u root -p登录MySQL环境 2.创建数据库 为了便于在命令提示符下显示中文, 在创建时通过 character set gbk 将

  • 自写的利用PDO对mysql数据库增删改查操作类

    前言 PDO一是PHP数据对象(PHP Data Object)的缩写. 并不能使用PDO扩展本身执行任何数据库操作,必须使用一个database-specific PDO driver(针对特定数据库的PDO驱动)访问数据库服务器. PDO并不提供数据库抽象,它并不会重写SQL或提供数据库本身缺失的功能,如果你需要这种功能,你需要使用一个更加成熟的抽象层. 最近在做项目时用到了PDO操作mysql数据库,于是自己写了一个类文件,命名为mysql_class.php文件代码如下: 示例代码 <?

随机推荐