Java 封装update,Class使用
来源:互联网 发布:药物合成工艺优化 编辑:程序博客网 时间:2024/05/18 22:11
第一个元素为主键,为修改索引
将修改后的对象传入
------------test----------------package fozzz;public class myTest { public static void main(String[] args) { // User user = new User(); // // user.setId(1); // // user.setName("name"); // // user.setPassword("pwd"); // // Update update=new Update(user); Student student = new Student(1, "王宝强", "马蓉", "经纪人", "爱绿"); Update update = new Update(student); boolean ok = update.isOk(); System.out.println(ok); }}
----------------连接工厂类---------------------package fozzz;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;public class MyConnection { public Connection getConnection() { Connection connection = null; try { connection = DriverManager.getConnection("jdbc:mysql://192.168.1.101/fozzz", "root", "root"); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } return connection; }}
-----------------连接数据库---------------------package fozzz;import java.sql.Connection;import java.sql.PreparedStatement;import java.sql.SQLException;public class Update { private boolean ok = false; public Update(Object object) { myUpdate myUpdate = new myUpdate(object); Connection connection = new MyConnection().getConnection(); String sql = myUpdate.getSql(); int length = myUpdate.getLength(); Object[] resultArray = myUpdate.getResultArray(); try { PreparedStatement prepareStatement = connection.prepareStatement(sql); prepareStatement.setObject(length, resultArray[0]); for(int i=1;i<length;i++){ prepareStatement.setObject(i, resultArray[i]); } int executeUpdate = prepareStatement.executeUpdate(); if (executeUpdate > 0) { ok = true; } } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { try { connection.close(); } catch (SQLException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } public boolean isOk() { return ok; }}
-------------反射,得到sql语句,get方法结果------------------------package fozzz;import java.lang.reflect.Field;import java.lang.reflect.InvocationTargetException;public class myUpdate { private Class<? extends Object> myClass; private Object object; private String[] memberArray;// 类变量 private Object[] resultArray;// get结果 private int length;// 变量个数 private String className; public myUpdate(Object object) { this.myClass = object.getClass(); this.object = object; try { myInit(); } catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalArgumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InvocationTargetException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (NoSuchMethodException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (SecurityException e) { // TODO Auto-generated catch block e.printStackTrace(); } } private void myInit() throws IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException { // 成员变量 Field[] declaredFields = myClass.getDeclaredFields(); length = declaredFields.length; memberArray = new String[length]; resultArray = new Object[length]; for (int i = 0; i < length; i++) { String name = declaredFields[i].getName(); memberArray[i] = name; // 得到get方法的结果 resultArray[i] = myClass.getMethod("get" + (char) (name.charAt(0) - 32) + name.substring(1)).invoke(object); } String[] split = myClass.getName().split("\\."); className = split[split.length - 1]; } // 拼接sql语句 public String getSql() { String sql = "update " + className + " set " + memberArray[1]; for (int i = 2; i < length; i++) { sql += "=? ," + memberArray[i]; } sql += "=? where " + memberArray[0] + "=?"; return sql; } public Object[] getResultArray() { return resultArray; } public int getLength() { return length; }}
0 0
- Java 封装update,Class使用
- JAVA封装类和Class类
- class 封装
- Java Class对象使用
- php CSS Update Class
- update 的封装方法
- 1031学习记录 形参列表使用class进行封装
- 使用Java生成insert,select,update语句
- linux使用update-alternatives切换java版本
- 使用ant编译java class
- java j2me 使用M3G封装
- java-小心使用自动封装
- 封装weixin.class.php
- js封装class
- class 封装 内联
- 20161206封装Class类
- class类的封装
- java反射-java Class基本使用
- 用Java语言写的万年历的小程序
- 《学术研究,你的成功之道》 读书笔记
- 删除rman备份
- 创建虚拟sdcard.img + 读取sdcard卡中的文件路径有效
- atom安装插件被墙问题
- Java 封装update,Class使用
- 从线上问题谈spring生命周期类lifeCycle类和bean的生命周期
- 漫步微积分二十八——极限思想下的面积计算
- 一个支持 cgi 的简易 http 服务器
- iOS上使用Quartz 2D绘制简单图形
- expectedModCount和modCount关系,以及concurrentHashMap不加读锁的原因
- NoSQL数据库入门概述
- 常见的软件系统缩写
- Fragment的一些理解