Java反射_JDBC操作数据
生活随笔
收集整理的這篇文章主要介紹了
Java反射_JDBC操作数据
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
</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();//獲取屬性類型 intClass type = field.getType();//Method rsGetMethod = ResultSet.class.getMethod("getObject", String.class);Object value = rsGetMethod.invoke(rs, fname);//更改修飾符權限field.setAccessible(true);field.set(obj, value);}
核心類 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();//獲取屬性類型 intClass 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反射_JDBC操作数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: web项目没有run on server
- 下一篇: java美元兑换,(Java实现) 美元