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

  

<>强运行环境:eclipse + MySQL

  

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

  

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

  

  

  

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

  

<强> forname(): 加载驱动——》com.mysql.jdbc.Driver

  

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

  

<强> createStatement(): 强创建声明对象

  

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

  

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

  

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

  

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

  

<强>代码演示

  

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

        公共静态List查询(Class<& # 63;比;obj) {   声明圣=零;   List,列表=new ArrayList<的在();//数据库MySQL的地址   字符串DBURL=" jdbc: mysql://localhost: 3306/lms_leave& # 63; useUnicode=true& characterEncoding=utf - 8”;   字符串DBName=案?//登入用户名   字符串DBPwd=" 123456 ";//登入密码//加载驱动   尝试{   forname(“com.mysql.jdbc.Driver”);//连接数据库   连接康涅狄格州=DriverManager.getConnection (DBURL, DBName DBPwd);//创建声明对象   圣=conn.createStatement ();   ResultSet rs=圣。executeQuery (“select * from”+ obj.getSimpleName ());//获取传入类中的方法   方法[]方法=obj.getMethods ();//设置一个方法的单集合、下面将方法放入其中,以便调用   List,list_m=new ArrayList<的在();//类中有许多方法,过滤一些方法,获取自己想要的方法   for (int i=0; i字段名=new ArrayList<在();//获取类中的属性,其属性对应数据库中的字段   场[]f=obj.getDeclaredFields ();//循环将字段中的名字首个变大写   for (int i=0;我& lt;f.length;我+ +){//获取名字   字符串字段=f[我]. getname ();//变大小写,存入fieldname集合   fieldname.add(大写(字段));   }//获取得到结果集(rs)的结构,比如字段数,字段名等。   ResultSetMetaData rsmd=rs.getMetaData ();//循环读取结果集中的数据添加到列表集合中   而(rs.next ()) {//创建一个传入类对象用户   对象用户=obj.newInstance ();//遍历方法的集合   (方法m: list_m) {//遍历字段的集合   for (int i=0;我& lt;f.length;我+ +){//方法和字段作比较,查看方法名中是否含有这个字段名,两者匹配   如果(m.getName () .contains(“套”+ fieldname.get(我))){//匹配成功,则去得到rsmd去获取数据库中的字段名,rs.getObject,再根据获取的这个字段名去得到这个字段值   对象价值=https://www.yisu.com/zixun/rs.getObject (rsmd.getColumnName (i + 1));//获取这个字段的类型,以便去储存这个值的类型   类<?>类型=f[我]. gettype ();//是int类型的转化   如果(type==int.class) {   值=new Integer (value.toString ());   }//字符串类型的转化   如果(type==String.class) {   值=value.toString ();   }//m是用户对象中的方法,设置其值   m。调用(用户、价值);   }   }   }//将的到的用户对象实例添加到列表集合中   list.add(用户);   }   }捕捉(异常e) {//TODO自动生成的catch块   e.printStackTrace ();   }   返回列表;   }      

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

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

Copyright © 2020-2023 feiqueyun.cn. All Rights Reserved. 肥雀云_南京肥雀信息技术有限公司版权所有 南京肥雀信息技术有限公司 苏ICP备16063723号-5