利用反射获取SQL数据库的对象
来源:互联网 发布:传经破解软件 编辑:程序博客网 时间:2024/05/16 01:19
import java.io.InputStream;
import java.lang.reflect.Field;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import org.junit.Test;
public class WildQuaryDemo {
//1.获取Connection
private Connection conn=null;
private PreparedStatement ps=null;
private ResultSet rs=null;
@Test
public Connection getConn() throws Exception{
InputStream is=this.getClass().getClassLoader().getResourceAsStream("jdbc.properties");
Properties property=new Properties();
property.load(is);
String driver=property.getProperty("jdbc.driverClassName");
String userName=property.getProperty("jdbc.username");
String password=property.getProperty("jdbc.password");
String url=property.getProperty("jdbc.url");
Class.forName(driver);
conn=DriverManager.getConnection(url, userName, password);
System.out.println(conn);
return conn;
}
//2.获取PreparedStatement,并给PreparedStatement赋值
public void getPrepareS(String sql,Object...args) throws Exception{
ps=conn.prepareCall(sql);
for(int i=0;i<args.length;i++){
ps.setObject(i+1, args[i]);
}
}
// 3.获取Resultset,ResultSetMetaData,
public List<Object> getRS(Class clazz) throws Exception, IllegalAccessException{
// 4.根据传入的类的类型,反射创建类的对象,并将对应的属性和值封装到对象里面使用自定义反射或者直接用Beanutils.setProperty封装。或者将属性和值加入到Map<String,Object>中去
rs=ps.executeQuery();
ResultSetMetaData rsmd=rs.getMetaData();
List<Object> listObj=new ArrayList<Object>();
while(rs.next()){
Object newobj=clazz.newInstance();
System.out.println("newobj"+newobj);
for(int i=0;i<rsmd.getColumnCount();i++){
Object columnValue=rs.getObject(i+1);
String columnLableName=rsmd.getColumnLabel(i+1);
Field fld=clazz.getDeclaredField(columnLableName);
fld.setAccessible(true);
fld.set(newobj, columnValue);
// 使用反射设定属性的值,因为BeanUtils这个类只能针对Bean类。有限制。
}
listObj.add(newobj);
}
System.out.println("listObj:"+listObj);
return listObj;
}
import java.lang.reflect.Field;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import org.junit.Test;
public class WildQuaryDemo {
//1.获取Connection
private Connection conn=null;
private PreparedStatement ps=null;
private ResultSet rs=null;
@Test
public Connection getConn() throws Exception{
InputStream is=this.getClass().getClassLoader().getResourceAsStream("jdbc.properties");
Properties property=new Properties();
property.load(is);
String driver=property.getProperty("jdbc.driverClassName");
String userName=property.getProperty("jdbc.username");
String password=property.getProperty("jdbc.password");
String url=property.getProperty("jdbc.url");
Class.forName(driver);
conn=DriverManager.getConnection(url, userName, password);
System.out.println(conn);
return conn;
}
//2.获取PreparedStatement,并给PreparedStatement赋值
public void getPrepareS(String sql,Object...args) throws Exception{
ps=conn.prepareCall(sql);
for(int i=0;i<args.length;i++){
ps.setObject(i+1, args[i]);
}
}
// 3.获取Resultset,ResultSetMetaData,
public List<Object> getRS(Class clazz) throws Exception, IllegalAccessException{
// 4.根据传入的类的类型,反射创建类的对象,并将对应的属性和值封装到对象里面使用自定义反射或者直接用Beanutils.setProperty封装。或者将属性和值加入到Map<String,Object>中去
rs=ps.executeQuery();
ResultSetMetaData rsmd=rs.getMetaData();
List<Object> listObj=new ArrayList<Object>();
while(rs.next()){
Object newobj=clazz.newInstance();
System.out.println("newobj"+newobj);
for(int i=0;i<rsmd.getColumnCount();i++){
Object columnValue=rs.getObject(i+1);
String columnLableName=rsmd.getColumnLabel(i+1);
Field fld=clazz.getDeclaredField(columnLableName);
fld.setAccessible(true);
fld.set(newobj, columnValue);
// 使用反射设定属性的值,因为BeanUtils这个类只能针对Bean类。有限制。
}
listObj.add(newobj);
}
System.out.println("listObj:"+listObj);
return listObj;
}
0 0
- 利用反射获取SQL数据库的对象
- java开发中利用反射获取对象静态的方法
- 利用反射,注解获取建表的sql
- 利用反射获取并使用自定义对象
- C#利用反射获取对象属性值
- C#利用反射获取对象属性值
- SQL Server数据库对象信息的获取
- 利用反射实现mysql数据库sql查询 返回List<E>泛型(持久化)对象
- Java笔记:[反射篇] 利用反射,获取类中的私有内部类对象,并调用该对象的方法
- 利用java反射获取泛型类的类型参数具体类对象
- 利用反射机制从数据库中获取数据,提高代码的可修改性
- android中利用java反射原理将对象添加到sqlit数据库的万能方法
- 利用反射获取类的属性名称
- C#利用反射获取属性的值
- 利用反射获取GridView的高度
- 如何利用反射获取字段的数据
- 利用反射机制动态获取对象属性名称及数据类型
- 利用反射机制动态获取对象属性名称及数据类型
- C++ Primer 笔记
- Zephys OS nano 内核篇:栈 stack
- 2016弱校联盟十一专场10.7(12点场) E. Training little cats
- 解析英国最有前途专业之一:大数据分析技术
- java io系列15之 DataOutputStream(数据输出流)的认知、源码和示例
- 利用反射获取SQL数据库的对象
- rhel7 grub配置文件及排错 破解root密码
- Zephys OS nano 内核篇:环形缓冲 Ring Buffer
- LeetCode 167. Two Sum II - Input array is sorted 题解(C++)
- 设计模式--单例模式
- 如何写一封专业的英文电子邮件
- Matlab选择mingw编译器
- POJ 3252 Round Numbers 数位DP .
- spring scheduled-task集群问题