Java反射_JDBC操作数据
2016-03-14 14:52
260 查看
</pre><p>使用反射 来操作 这里是练习反射的使用</p><p>链接数据库工具类</p><p><pre name="code" class="java">private static final String DRIVER = "com.mysql.jdbc.Driver"; private static final String USER = "root"; private static final String PW = "1234"; private static final String URL="jdbc:mysql://localhost:3306/reflction"; /** * 链接数据库 * @return */ public static Connection getConnection(){ try { Class.forName(DRIVER); Connection con = DriverManager.getConnection(URL, USER, PW); System.out.println("Connection OK ....."); return con; } catch (Exception e) { System.out.println("Connection error..."); e.printStackTrace(); } return null; }
核心类
public Object getById(Class clazz, Integer id) throws Exception{ Object obj = clazz.newInstance();//实列一个 //创建链接 Connection con = JdbcUtils.getConnection(); //获取实体的名字 须要拼接 从最后一个点開始 String tablename = clazz.getName().substring(clazz.getName().lastIndexOf(".")); //拼接sql 语句 String sql = "select * from "+tablename+" where id=?"; try { PreparedStatement psmt = con.prepareStatement(sql); psmt.setInt(1, id); //查到结果集 ResultSet rs = psmt.executeQuery(); //遍历结果 while(rs.next()){ //得到全部属性 Field[] fields = clazz.getDeclaredFields(); for (Field field : fields) {//遍历属性 //获取属性名 String fname = field.getName(); //获取属性类型 int Class type = field.getType(); // Method rsGetMethod = ResultSet.class.getMethod("getObject", String.class); Object value = rsGetMethod.invoke(rs, fname); //更改修饰符权限 field.setAccessible(true); field.set(obj, value); }
相关文章推荐
- java实现计算器
- win7和win8下的jdk环境变量设置
- Spring Web
- H-Index II | Java最短代码实现
- 关于java学习的一些感受
- Spring框架中CharacterEncodingFilter的作用真的没那么大
- java 死锁产生原因及解锁
- maven 项目(四) spring集成springMVC开发统一接入API(准备工作:第一部分)
- 【转】myeclipse 上安装 Maven3
- Myeclipse去除空行
- 简单归并算法-有序数组合并算法实现
- 用JAVA打暴雪星际争霸(1)--搭建开发环境
- [疯狂Java]AWT剪切板:图像传递
- Java中BIO,NIO,AIO的理解
- 【Junit】JUnit-4.12使用报java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing错误
- Java反射及其在开发数据库上面的运用
- springmvc中使用aop实现登录验证
- spring常用注解
- java微信开发-配置SpringMVC
- struts2注解配置