反射机制编写数据库插入操作
来源:互联网 发布:网络女作家收入排行榜 编辑:程序博客网 时间:2024/06/06 20:47
对于不同的表都可根据传参,调用该方法实现数据库的信息插入,极大的减小了冗余度。
public class DB { private Connection conn = null; private Statement statement = null; private static DB instance = null; private ResultSet rs = null; private DB() { try { String url = "jdbc:mysql://localhost:3306/struts2"; Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection(url, "root", "root"); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { e.printStackTrace(); } } public static DB getInstance() { //保证数据库只创建一次链接 if (instance == null) { instance = new DB(); } return instance; } public void insert(String tableName,Class<?> clazz,Object obj){ StringBuffer sql = new StringBuffer(256); StringBuffer name = new StringBuffer(256); StringBuffer value = new StringBuffer(256); name.append('('); value.append(" values("); Field[] fields = clazz.getDeclaredFields(); int count = fields.length; Boolean peace = false; for (Field field : fields) { field.setAccessible(true); String n = field.getName(); if(!peace) peace=true; else { name.append(','); value.append(','); } name.append(n); value.append('?'); } name.append(')'); value.append(')'); sql.append("insert into " + tableName).append(name).append(value); try { PreparedStatement ps = conn.prepareStatement(sql.toString()); for(int i=1;i<=count;i++) ps.setObject(i, fields[i-1].get(obj)); ps.executeUpdate(); } catch (SQLException e) { e.printStackTrace(); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } }}
0 0
- 反射机制编写数据库插入操作
- 利用反射机制和事务机制编写的jdbc操作三层框架
- 数据库优化和反射机制
- Sqlite 反射机制封装数据库
- Java反射机制 -数据库相关
- 万能的JDBC工具类。通过反射机制直接简单处理数据库操作
- java通过反射实现数据库的编写
- android 反射来操作数据库
- 数据库操作---插入、修改、删除
- JDBC调用数据库 插入操作
- jsp操作数据库之插入
- PHP操作数据库(插入数据)
- 利用java反射机制进行对象操作
- 用Java反射机制模拟hibernateJDBC操作
- .class的程序化操作(java反射机制)
- 利用java反射机制进行对象操作
- 通过反射机制实现加一操作
- JAVA 反射机制下的类操作
- ubuntu下使用英文界面和中文输入法
- poj 2559 Largest Rectangle in a Histogram(单调栈)
- 1045. 快速排序(25)
- SpringMVC解析Excel并存入到MySQL数据库
- 快速幂
- 反射机制编写数据库插入操作
- ubuntu下安装codeblocks
- ES6
- Qutarz动态多任务定时功能实现
- swift3.0 浮点数四舍五入为整数
- ubuntu配置静态IP和DNS
- HDU1561 The more, The Better
- JAVA接口和抽象类
- java的8种排序