生活随笔
收集整理的這篇文章主要介紹了
Android之jdbc的学习
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1.什么是jdbc: 根據(jù)Sun的聲明,JDBC是一個(gè)商標(biāo)的術(shù)語,并非Java DataBase Connectivity。但將其當(dāng)成Java DataBase Connectivity更容易理解。jdbc是java程序訪問數(shù)據(jù)庫的一套接口,它結(jié)合了SQL語句。因?yàn)槭袌錾嫌卸喾N數(shù)據(jù)庫,他們的訪問協(xié)議不同,因此數(shù)據(jù)訪問方式不同。針對(duì)于這種情況,java提供了驅(qū)動(dòng)管理器與數(shù)據(jù)庫驅(qū)動(dòng)的概念,訪問方式有數(shù)據(jù)庫驅(qū)動(dòng)提供,是具體的數(shù)據(jù)庫廠商寫的。而java程序需要哪種方式訪問數(shù)據(jù)庫,只需要將這種數(shù)據(jù)庫的驅(qū)動(dòng)注冊到驅(qū)動(dòng)管理器就ok了(這樣java程序才知道以何種方式訪問數(shù)據(jù)庫)。 2.jdbc的操作步驟 (1)注冊jdbc驅(qū)動(dòng):向java驅(qū)動(dòng)管理器注冊使用的數(shù)據(jù)庫驅(qū)動(dòng)。 (2)連接數(shù)據(jù)庫:建立通信,先接通才能操作數(shù)據(jù)庫。 (3)操作數(shù)據(jù)庫:增,刪,改,查等。 (4)關(guān)閉數(shù)據(jù)庫。 以MySql為例: 1.先要下載mysql數(shù)據(jù)庫的驅(qū)動(dòng): http://pan.baidu.com/share/link?shareid=1725761810&uk=3056808396 將其加載到編寫的java工程中,剛測試了下載Android無法使用jdbc訪問數(shù)據(jù),報(bào)一大堆錯(cuò)誤,看stackoverflow上說建議使用webservice訪問數(shù)據(jù)庫。 2.編寫代碼: (1)注冊jdbc驅(qū)動(dòng)
?
[java] ?view plaincopy
?? ????????????Class.forName(driver).newInstance();?? ????????????System.out.println("驅(qū)動(dòng)注冊成功" );?? (2)連接數(shù)據(jù)庫:建立通信,先接通才能操作數(shù)據(jù)庫。
[java] ?view plaincopy
conn?=?DriverManager.getConnection(url,?username,?password);?? ????????????System.out.println("獲取鏈接成功" );?? (3)操作數(shù)據(jù)庫:增,刪,改,查等。
[java] ?view plaincopy
?? public ?boolean ?updateDB(String?sql,?List<Object>?params)??????{?? ????????boolean ?retFlag?=?false ;?? ????????try ?? ????????{?? ????????????pstm?=?conn.prepareStatement(sql);?? ?????????????? ????????????if ?(params?!=?null ?&&?!params.equals("" ))?? ????????????{?? ????????????????for ?(int ?i?=?0 ;?i?<?params.size();?i++)?? ????????????????{?? ????????????????????pstm.setObject(i?+?1 ,?params.get(i));?? ????????????????}?? ????????????}?? ????????????return ?pstm.executeUpdate()?>?0 ???true ?:?false ;?? ????????}?? ????????catch ?(SQLException?e)?? ????????{?? ????????????e.printStackTrace();?? ????????}?? ?????????? ????????return ?retFlag;?? ????}?? ?????? ????public ?Map<String,?Object>?QueryDB(String?sql,?List<Object>?params)?? ????{?? ????????Map<String,?Object>?map?=?null ;?? ????????try ?? ????????{?? ????????????pstm?=?conn.prepareStatement(sql);?? ????????????if ?(params?!=?null ?&&?!params.equals("" ))?? ????????????{?? ????????????????for ?(int ?i?=?0 ;?i?<?params.size();?i++)?? ????????????????{?? ????????????????????pstm.setObject(i?+?1 ,?params.get(i));?? ????????????????}?? ????????????}?? ????????????rs?=?pstm.executeQuery();?? ????????????ResultSetMetaData?rsMetaData?=?rs.getMetaData();?? ????????????while ?(rs.next())?? ????????????{?? ????????????????map?=?new ?HashMap<String,?Object>();?? ????????????????for ?(int ?i?=?0 ;?i?<?rsMetaData.getColumnCount();?i++)?? ????????????????{?? ????????????????????String?columnName?=?rsMetaData.getColumnName(i?+?1 );?? ????????????????????Object?columnVal?=?rs.getObject(i?+?1 );?? ?????????????????????? ????????????????????if ?(columnVal?==?null )?? ????????????????????{?? ????????????????????????columnVal?=?"" ;?? ????????????????????}?? ????????????????????map.put(columnName,?columnVal);?? ????????????????}?? ?????????????????? ????????????}?? ????????}?? ????????catch ?(SQLException?e)?? ????????{?? ?????????????? ????????????e.printStackTrace();?? ????????}?? ?????????? ????????return ?map;?? ?????????? ????}?? ?????? ?????? ????public ?List<Map<String,?Object>>?QueryMoreDB(String?sql,?List<Object>?params)?? ????{?? ????????List<Map<String,?Object>>?retList?=?new ?ArrayList<Map<String,?Object>>();?? ????????try ?? ????????{?? ????????????pstm?=?conn.prepareStatement(sql);?? ????????????if ?(params?!=?null ?&&?!params.equals("" ))?? ????????????{?? ????????????????for ?(int ?i?=?0 ;?i?<?params.size();?i++)?? ????????????????{?? ????????????????????pstm.setObject(i?+?1 ,?params.get(i));?? ????????????????}?? ????????????}?? ?????????????? ????????????ResultSet?rs?=?pstm.executeQuery();?? ????????????ResultSetMetaData?rsMetaData?=?rs.getMetaData();?? ????????????while ?(rs.next())?? ????????????{?? ????????????????Map<String,?Object>?map?=?new ?HashMap<String,?Object>();?? ????????????????for ?(int ?i?=?0 ;?i?<?rsMetaData.getColumnCount();?i++)?? ????????????????{?? ????????????????????String?columnName?=?rsMetaData.getColumnName(i?+?1 );?? ????????????????????Object?columnVal?=?rs.getObject(i?+?1 );?? ????????????????????if ?(columnVal?==?null )?? ????????????????????{?? ????????????????????????columnVal?=?"" ;?? ????????????????????}?? ????????????????????map.put(columnName,?columnVal);?? ????????????????}?? ????????????????retList.add(map);?? ????????????}?? ????????}?? ????????catch ?(SQLException?e)?? ????????{?? ????????????e.printStackTrace();?? ????????}?? ????????return ?retList;?? ????}?? ?????? ?????? ????public ?<T>?T?QueryDBObj(String?sql,?List<Object>?params,?Class<T>?cls)?? ????{?? ????????T?t?=?null ;?? ????????try ?? ????????{?? ????????????pstm?=?conn.prepareStatement(sql);?? ????????????if ?(params?!=?null ?&&?!params.equals("" ))?? ????????????{?? ????????????????for ?(int ?i?=?0 ;?i?<?params.size();?i++)?? ????????????????{?? ????????????????????pstm.setObject(i?+?1 ,?params.get(i));?? ????????????????}?? ????????????}?? ????????????rs?=?pstm.executeQuery();?? ????????????ResultSetMetaData?rsMetaData?=?rs.getMetaData();?? ????????????while ?(rs.next())?? ????????????{?? ????????????????t?=?cls.newInstance();?? ????????????????for ?(int ?i?=?0 ;?i?<?rsMetaData.getColumnCount();?i++)?? ????????????????{?? ????????????????????String?columnName?=?rsMetaData.getColumnName(i?+?1 );?? ????????????????????Object?columnVal?=?rs.getObject(i?+?1 );?? ?????????????????????? ????????????????????Field?field?=?cls.getDeclaredField(columnName);?? ?????????????????????? ????????????????????field.setAccessible(true );?? ????????????????????field.set(t,?columnVal);?? ????????????????}?? ????????????}?? ????????????return ?t;?? ????????}?? ????????catch ?(SQLException?e)?? ????????{?? ????????????e.printStackTrace();?? ????????}?? ????????catch ?(InstantiationException?e)?? ????????{?? ????????????e.printStackTrace();?? ????????}?? ????????catch ?(IllegalAccessException?e)?? ????????{?? ?????????????? ????????????e.printStackTrace();?? ????????}?? ????????catch ?(SecurityException?e)?? ????????{?? ?????????????? ????????????e.printStackTrace();?? ????????}?? ????????catch ?(NoSuchFieldException?e)?? ????????{?? ?????????????? ????????????e.printStackTrace();?? ????????}?? ?????????? ????????return ?t;?? ????}?? ?????? ?????? ????public ?<T>?List<T>?QueryDBMoreObj(String?sql,?List<Object>?params,?Class<T>?cls)?? ????{?? ????????List<T>?rstList?=?new ?ArrayList<T>();?? ????????try ?? ????????{?? ????????????pstm?=?conn.prepareStatement(sql);?? ????????????if ?(params?!=?null ?&&?!params.equals("" ))?? ????????????{?? ????????????????for ?(int ?i?=?0 ;?i?<?params.size();?i++)?? ????????????????{?? ????????????????????pstm.setObject(i?+?1 ,?params.get(i));?? ????????????????}?? ????????????}?? ????????????rs?=?pstm.executeQuery();?? ????????????ResultSetMetaData?rsMetaData?=?rs.getMetaData();?? ????????????while ?(rs.next())?? ????????????{?? ????????????????T?t?=?cls.newInstance();?? ????????????????for ?(int ?i?=?0 ;?i?<?rsMetaData.getColumnCount();?i++)?? ????????????????{?? ????????????????????String?columnName?=?rsMetaData.getColumnName(i?+?1 );?? ????????????????????Object?columnVal?=?rs.getObject(i?+?1 );?? ?????????????????????? ????????????????????Field?field?=?cls.getDeclaredField(columnName);?? ?????????????????????? ????????????????????field.setAccessible(true );?? ????????????????????field.set(t,?columnVal);?? ????????????????}?? ????????????????rstList.add(t);?? ????????????}?? ????????????return ?rstList;?? ????????}?? ????????catch ?(SQLException?e)?? ????????{?? ????????????e.printStackTrace();?? ????????}?? ????????catch ?(InstantiationException?e)?? ????????{?? ????????????e.printStackTrace();?? ????????}?? ????????catch ?(IllegalAccessException?e)?? ????????{?? ?????????????? ????????????e.printStackTrace();?? ????????}?? ????????catch ?(SecurityException?e)?? ????????{?? ?????????????? ????????????e.printStackTrace();?? ????????}?? ????????catch ?(NoSuchFieldException?e)?? ????????{?? ?????????????? ????????????e.printStackTrace();?? ????????}?? ?????????? ????????return ?rstList;?? ????}?? ?????? 4.關(guān)閉數(shù)據(jù)庫
[java] ?view plaincopy
public ?void ?releaseJdbc()??????{?? ?????????? ????????try ?? ????????{?? ?????????????? ????????????if ?(rs?!=?null )?? ????????????{?? ????????????????rs.close();?? ????????????}?? ????????????if ?(pstm?!=?null )?? ????????????{?? ????????????????pstm.close();?? ????????????}?? ????????????if ?(conn?!=?null )?? ????????????{?? ????????????????conn.close();?? ????????????}?? ????????}?? ????????catch ?(SQLException?e)?? ????????{?? ????????????e.printStackTrace();?? ????????}?? ?????????? ????}?? 完整源碼: jdbcUtil.java
[java] ?view plaincopy
package ?utl;???? 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.sql.SQLException;??import ?java.util.ArrayList;??import ?java.util.HashMap;??import ?java.util.List;??import ?java.util.Map;???? public ?class ?jdbcUtil??{?? ????private ?String?url?=?"jdbc:mysql://localhost:3306/moondatabase" ;?? ?????? ????private ?String?username?=?"root" ;?? ?????? ????private ?String?password?=?"byd" ;?? ?????? ????private ?String?driver?=?"com.mysql.jdbc.Driver" ;?? ?????? ????private ?String?driver1?=?"org.gjt.mm.mysql.Driver" ;?? ?????? ?????? ????PreparedStatement?pstm;?? ?????? ?????? ????Connection?conn;?? ?????? ?????? ????ResultSet?rs;?? ?????? ????public ?jdbcUtil(String?url,?String?username,?String?password)?? ????{?? ????????super ();?? ????????this .url?=?url;?? ????????this .username?=?username;?? ????????this .password?=?password;?? ????????try ?? ????????{?? ?????????????? ????????????Class.forName(driver).newInstance();?? ????????????System.out.println("驅(qū)動(dòng)注冊成功" );?? ????????}?? ????????catch ?(ClassNotFoundException?e)?? ????????{?? ????????????e.printStackTrace();?? ????????}?? ????????catch ?(InstantiationException?e)?? ????????{?? ????????????e.printStackTrace();?? ????????}?? ????????catch ?(IllegalAccessException?e)?? ????????{?? ?????????????? ????????????e.printStackTrace();?? ????????}?? ????}?? ?????? ????public ?jdbcUtil()?? ????{?? ????????try ?? ????????{?? ?????????????? ????????????Class.forName(driver1);?? ????????????System.out.println("驅(qū)動(dòng)注冊成功" );?? ????????}?? ????????catch ?(ClassNotFoundException?e)?? ????????{?? ????????????e.printStackTrace();?? ????????}?? ????}?? ?????? ????public ?void ?getConnection()?? ????{?? ????????try ?? ????????{?? ????????????conn?=?DriverManager.getConnection(url,?username,?password);?? ????????????System.out.println("獲取鏈接成功" );?? ????????}?? ????????catch ?(SQLException?e)?? ????????{?? ????????????e.printStackTrace();?? ????????}?? ????}?? ?????? ????public ?boolean ?updateDB(String?sql,?List<Object>?params)?? ????{?? ????????boolean ?retFlag?=?false ;?? ????????try ?? ????????{?? ????????????pstm?=?conn.prepareStatement(sql);?? ?????????????? ????????????if ?(params?!=?null ?&&?!params.equals("" ))?? ????????????{?? ????????????????for ?(int ?i?=?0 ;?i?<?params.size();?i++)?? ????????????????{?? ????????????????????pstm.setObject(i?+?1 ,?params.get(i));?? ????????????????}?? ????????????}?? ????????????return ?pstm.executeUpdate()?>?0 ???true ?:?false ;?? ????????}?? ????????catch ?(SQLException?e)?? ????????{?? ????????????e.printStackTrace();?? ????????}?? ?????????? ????????return ?retFlag;?? ????}?? ?????? ????public ?Map<String,?Object>?QueryDB(String?sql,?List<Object>?params)?? ????{?? ????????Map<String,?Object>?map?=?null ;?? ????????try ?? ????????{?? ????????????pstm?=?conn.prepareStatement(sql);?? ????????????if ?(params?!=?null ?&&?!params.equals("" ))?? ????????????{?? ????????????????for ?(int ?i?=?0 ;?i?<?params.size();?i++)?? ????????????????{?? ????????????????????pstm.setObject(i?+?1 ,?params.get(i));?? ????????????????}?? ????????????}?? ????????????rs?=?pstm.executeQuery();?? ????????????ResultSetMetaData?rsMetaData?=?rs.getMetaData();?? ????????????while ?(rs.next())?? ????????????{?? ????????????????map?=?new ?HashMap<String,?Object>();?? ????????????????for ?(int ?i?=?0 ;?i?<?rsMetaData.getColumnCount();?i++)?? ????????????????{?? ????????????????????String?columnName?=?rsMetaData.getColumnName(i?+?1 );?? ????????????????????Object?columnVal?=?rs.getObject(i?+?1 );?? ?????????????????????? ????????????????????if ?(columnVal?==?null )?? ????????????????????{?? ????????????????????????columnVal?=?"" ;?? ????????????????????}?? ????????????????????map.put(columnName,?columnVal);?? ????????????????}?? ?????????????????? ????????????}?? ????????}?? ????????catch ?(SQLException?e)?? ????????{?? ?????????????? ????????????e.printStackTrace();?? ????????}?? ?????????? ????????return ?map;?? ?????????? ????}?? ?????? ?????? ????public ?List<Map<String,?Object>>?QueryMoreDB(String?sql,?List<Object>?params)?? ????{?? ????????List<Map<String,?Object>>?retList?=?new ?ArrayList<Map<String,?Object>>();?? ????????try ?? ????????{?? ????????????pstm?=?conn.prepareStatement(sql);?? ????????????if ?(params?!=?null ?&&?!params.equals("" ))?? ????????????{?? ????????????????for ?(int ?i?=?0 ;?i?<?params.size();?i++)?? ????????????????{?? ????????????????????pstm.setObject(i?+?1 ,?params.get(i));?? ????????????????}?? ????????????}?? ?????????????? ????????????ResultSet?rs?=?pstm.executeQuery();?? ????????????ResultSetMetaData?rsMetaData?=?rs.getMetaData();?? ????????????while ?(rs.next())?? ????????????{?? ????????????????Map<String,?Object>?map?=?new ?HashMap<String,?Object>();?? ????????????????for ?(int ?i?=?0 ;?i?<?rsMetaData.getColumnCount();?i++)?? ????????????????{?? ????????????????????String?columnName?=?rsMetaData.getColumnName(i?+?1 );?? ????????????????????Object?columnVal?=?rs.getObject(i?+?1 );?? ????????????????????if ?(columnVal?==?null )?? ????????????????????{?? ????????????????????????columnVal?=?"" ;?? ????????????????????}?? ????????????????????map.put(columnName,?columnVal);?? ????????????????}?? ????????????????retList.add(map);?? ????????????}?? ????????}?? ????????catch ?(SQLException?e)?? ????????{?? ????????????e.printStackTrace();?? ????????}?? ????????return ?retList;?? ????}?? ?????? ?????? ????public ?<T>?T?QueryDBObj(String?sql,?List<Object>?params,?Class<T>?cls)?? ????{?? ????????T?t?=?null ;?? ????????try ?? ????????{?? ????????????pstm?=?conn.prepareStatement(sql);?? ????????????if ?(params?!=?null ?&&?!params.equals("" ))?? ????????????{?? ????????????????for ?(int ?i?=?0 ;?i?<?params.size();?i++)?? ????????????????{?? ????????????????????pstm.setObject(i?+?1 ,?params.get(i));?? ????????????????}?? ????????????}?? ????????????rs?=?pstm.executeQuery();?? ????????????ResultSetMetaData?rsMetaData?=?rs.getMetaData();?? ????????????while ?(rs.next())?? ????????????{?? ????????????????t?=?cls.newInstance();?? ????????????????for ?(int ?i?=?0 ;?i?<?rsMetaData.getColumnCount();?i++)?? ????????????????{?? ????????????????????String?columnName?=?rsMetaData.getColumnName(i?+?1 );?? ????????????????????Object?columnVal?=?rs.getObject(i?+?1 );?? ?????????????????????? ????????????????????Field?field?=?cls.getDeclaredField(columnName);?? ?????????????????????? ????????????????????field.setAccessible(true );?? ????????????????????field.set(t,?columnVal);?? ????????????????}?? ????????????}?? ????????????return ?t;?? ????????}?? ????????catch ?(SQLException?e)?? ????????{?? ????????????e.printStackTrace();?? ????????}?? ????????catch ?(InstantiationException?e)?? ????????{?? ????????????e.printStackTrace();?? ????????}?? ????????catch ?(IllegalAccessException?e)?? ????????{?? ?????????????? ????????????e.printStackTrace();?? ????????}?? ????????catch ?(SecurityException?e)?? ????????{?? ?????????????? ????????????e.printStackTrace();?? ????????}?? ????????catch ?(NoSuchFieldException?e)?? ????????{?? ?????????????? ????????????e.printStackTrace();?? ????????}?? ?????????? ????????return ?t;?? ????}?? ?????? ?????? ????public ?<T>?List<T>?QueryDBMoreObj(String?sql,?List<Object>?params,?Class<T>?cls)?? ????{?? ????????List<T>?rstList?=?new ?ArrayList<T>();?? ????????try ?? ????????{?? ????????????pstm?=?conn.prepareStatement(sql);?? ????????????if ?(params?!=?null ?&&?!params.equals("" ))?? ????????????{?? ????????????????for ?(int ?i?=?0 ;?i?<?params.size();?i++)?? ????????????????{?? ????????????????????pstm.setObject(i?+?1 ,?params.get(i));?? ????????????????}?? ????????????}?? ????????????rs?=?pstm.executeQuery();?? ????????????ResultSetMetaData?rsMetaData?=?rs.getMetaData();?? ????????????while ?(rs.next())?? ????????????{?? ????????????????T?t?=?cls.newInstance();?? ????????????????for ?(int ?i?=?0 ;?i?<?rsMetaData.getColumnCount();?i++)?? ????????????????{?? ????????????????????String?columnName?=?rsMetaData.getColumnName(i?+?1 );?? ????????????????????Object?columnVal?=?rs.getObject(i?+?1 );?? ?????????????????????? ????????????????????Field?field?=?cls.getDeclaredField(columnName);?? ?????????????????????? ????????????????????field.setAccessible(true );?? ????????????????????field.set(t,?columnVal);?? ????????????????}?? ????????????????rstList.add(t);?? ????????????}?? ????????????return ?rstList;?? ????????}?? ????????catch ?(SQLException?e)?? ????????{?? ????????????e.printStackTrace();?? ????????}?? ????????catch ?(InstantiationException?e)?? ????????{?? ????????????e.printStackTrace();?? ????????}?? ????????catch ?(IllegalAccessException?e)?? ????????{?? ?????????????? ????????????e.printStackTrace();?? ????????}?? ????????catch ?(SecurityException?e)?? ????????{?? ?????????????? ????????????e.printStackTrace();?? ????????}?? ????????catch ?(NoSuchFieldException?e)?? ????????{?? ?????????????? ????????????e.printStackTrace();?? ????????}?? ?????????? ????????return ?rstList;?? ????}?? ?????? ????public ?void ?releaseJdbc()?? ????{?? ?????????? ????????try ?? ????????{?? ?????????????? ????????????if ?(rs?!=?null )?? ????????????{?? ????????????????rs.close();?? ????????????}?? ????????????if ?(pstm?!=?null )?? ????????????{?? ????????????????pstm.close();?? ????????????}?? ????????????if ?(conn?!=?null )?? ????????????{?? ????????????????conn.close();?? ????????????}?? ????????}?? ????????catch ?(SQLException?e)?? ????????{?? ????????????e.printStackTrace();?? ????????}?? ?????????? ????}?? }?? Test.java
[java] ?view plaincopy
package ?test;???? import ?java.util.ArrayList;??import ?java.util.List;??import ?java.util.Map;???? import ?bean.User;???? import ?utl.jdbcUtil;???? public ?class ?Test??{?? ?????? ????? ? ?? ????public ?static ?void ?main(String[]?args)?? ????{?? ????????jdbcUtil?jUtilTest?=?new ?jdbcUtil();?? ????????jUtilTest.getConnection();?? ?????????? ????????List<Object>?params?=?new ?ArrayList<Object>();?? ?????????? ????????String?createTable?=?? ????????????"create?table?if?not?exists?userinfo?(id?int?primary?key?auto_increment,username?varchar(64),pswd?varchar(64))" ;?? ????????jUtilTest.updateDB(createTable,?null );?? ?????????? ?????????? ????????for ?(int ?i?=?0 ;?i?<?10 ;?i++)?? ????????{?? ????????????String?insertOne?=?"insert?into?userinfo?(username,pswd)?values?(?,?)" ;?? ????????????params.clear();?? ????????????params.add("byd" ?+?i);?? ????????????params.add("123" ?+?i);?? ????????????jUtilTest.updateDB(insertOne,?params);?? ????????}?? ?????????? ?????????? ????????String?deleteOne?=?"DeLete?from?userinfo?where?username?=??" ;?? ????????params.clear();?? ????????params.add("byd0" );?? ????????jUtilTest.updateDB(deleteOne,?params);?? ?????????? ?????????? ????????String?updateOne?=?"update?userinfo?set?pswd?=???where?username?=?" ;?? ????????params.clear();?? ????????params.add("bydxxoo" );?? ????????params.add("byd" );?? ????????jUtilTest.updateDB(updateOne,?params);?? ?????????? ?????????? ????????String?findOne?=?"select?*?from?userinfo?where?username?=??" ;?? ?????????? ????????params.clear();?? ????????params.add("byd2" );?? ????????Map<String,?Object>?rstOne?=?jUtilTest.QueryDB(findOne,?params);?? ????????System.out.println("-->" ?+?rstOne);?? ?????????? ?????????? ????????String?findMore?=?"select?*?from?userinfo" ;?? ????????List<Map<String,?Object>>?rstMore?=?jUtilTest.QueryMoreDB(findMore,?null );?? ????????System.out.println("-->" ?+?rstMore);?? ?????????? ?????????? ????????String?findOneRefl?=?"select?*?from?userinfo?where?username?=?" ;?? ????????params.clear();?? ????????params.add("byd2" );?? ????????User?userOne?=?jUtilTest.QueryDBObj(findOneRefl,?params,?User.class );?? ????????System.out.println("-->" ?+?userOne);?? ?????????? ?????????? ????????String?findMoreRefl?=?"select?*?from?userinfo" ;?? ????????List<User>?userMore?=?jUtilTest.QueryDBMoreObj(findMoreRefl,?null ,?User.class );?? ????????System.out.println("-->" ?+?userMore);?? ?????????? ?????????? ?????????? ?????????? ?????????? ????????jUtilTest.releaseJdbc();?? ????}?? ?????? }?? User.java
[java] ?view plaincopy
package ?bean;??public ?class ?User??{?? ????private ?int ?id;?? ????private ?String?username="" ;?? ????@Override ?? ????public ?String?toString()?? ????{?? ????????return ?"User?[id=" ?+?id?+?",?username=" ?+?username?+?",?pswd=" ?+?pswd?+?"]" ;?? ????}?? ????private ?String?pswd="" ;?? ????public ?int ?getId()?? ????{?? ????????return ?id;?? ????}?? ????public ?void ?setId(int ?id)?? ????{?? ????????this .id?=?id;?? ????}?? ????public ?String?getUsername()?? ????{?? ????????return ?username;?? ????}?? ????public ?void ?setUsername(String?username)?? ????{?? ????????this .username?=?username;?? ????}?? ????public ?String?getPswd()?? ????{?? ????????return ?pswd;?? ????}?? ????public ?void ?setPswd(String?pswd)?? ????{?? ????????this .pswd?=?pswd;?? ????}?? }?? ======================================================華麗的分隔符==============================================================
下面在說下安裝mysql遇到的問題:
MySql安裝包:http://pan.baidu.com/share/link?shareid=2375321572&uk=3056808396
1.安裝MySQl-5.5.22老是最后一步開在start Service 安裝的 MySQL 5.1.48 或是 MySQL 5.5.8,配置好最后點(diǎn)擊 Execute 按鈕了,但是進(jìn)行不到 Start service 這一步。檢查了下 MySQL 系統(tǒng)服務(wù)已添加,但是無法啟動(dòng),手工也不行。這時(shí)候用事件查看器可以看到程序事件里有幾個(gè)來自于 MySQL 的錯(cuò)誤:? Plugin 'InnoDB' registration as a STORAGE ENGINE failed.? Unknown/unsupported table type: INNODB?
原來是因?yàn)檫@兩版本的 MySQL 默認(rèn)使用了支持事物的 INNODB 引擎,打開 my.ini 文件,在 MySQL 的安裝文件夾, 如 c:program filesMySQL 中,看到:?
?
default-storage-engine=INNODB? 解決辦法是把該設(shè)置改為?
default-storage-engine=MYISAM?
?
仍然使用 MyISAM 作為默認(rèn)的數(shù)據(jù)庫引擎,保存 my.ini 文件,然后手工啟動(dòng) MySQL 服務(wù),成功;再把剛剛的配置窗口關(guān)掉就行了。? 你完全可以在創(chuàng)建數(shù)據(jù)庫時(shí)指定所創(chuàng)建數(shù)據(jù)庫所用的數(shù)據(jù)庫引擎,或創(chuàng)建表時(shí)所用的數(shù)據(jù)庫引擎,或者創(chuàng)建后再更改都可以。? 你可以再次回憶一下剛剛配置的過程:? 安裝的最后一個(gè)步驟,在點(diǎn) Finish 按鈕時(shí),可以選擇 Configure the MySQL Server now,或者是從開始菜單里直接運(yùn)行 MySQL 的 MySQL Server Instance Configuration Wizard 來進(jìn)行配置數(shù)據(jù)庫,在選擇 database usage 時(shí)有三個(gè)選項(xiàng):? 1) Multifunctional Database? 2) Transactional Database Only? 3) No-Transactional Database Only? 默認(rèn)是第一項(xiàng),選第二項(xiàng)也會(huì)讓數(shù)據(jù)庫默認(rèn)的引擎為 INNODB,生成的 my.ini 文件里都會(huì)是 default-storage-engine=INNODB。至于在 my.ini 中注釋掉了 --skip-innodb 并不太會(huì)影響到數(shù)據(jù)庫的啟動(dòng),只是決定了數(shù)據(jù)庫的事物特性。? 那么在最后一步 Processing configuration ... 里寫完 my.ini 文件后,進(jìn)行到 Start service 就不動(dòng)了,也就是啟動(dòng)不了 MySQL 服務(wù),在系統(tǒng)服務(wù)里已經(jīng)加了 MySQL 服務(wù)名。? 如果你這一步選擇的是第三項(xiàng),不使用支持事件的數(shù)據(jù)庫,那么在 my.ini 文件里就是 default-storage-engine=MYISAM,那么你也很幸運(yùn),能順利配置成功,并啟動(dòng)好數(shù)據(jù)庫。不過這將使你不能使用 INNODB 引擎(ERROR 1286 (42000): Unknown table engine 'InnoDB'),其實(shí)也就是把 my.ini 中的 skip-innodb 給啟用了,你可以把它再次注釋掉試試事物。? 作者 mywaylife 如果還是不能解決可以參考下面的方法: 安裝MySQL時(shí)無法啟動(dòng)服務(wù)(could not start the service )? 1、建議使用360卸載已經(jīng)安裝的mysql數(shù)據(jù)庫,因?yàn)?60會(huì)查看相關(guān)的注冊信息,卸載比較徹底。? 2、檢查3306端口是否已經(jīng)占用,如果已經(jīng)占有,殺死此進(jìn)程。? 3、查看服務(wù)列表中,是否還有mysql的服務(wù)進(jìn)程。? 4、要確保安裝目錄的訪問權(quán)限是everyone,這里我建議不要把mysql安裝的c盤中,因?yàn)閤p有時(shí)候?yàn)榱讼到y(tǒng)安全,會(huì)限制文件夾的訪問權(quán)限。? 5、建議安裝在干凈的文件夾里,如果安裝在上次安裝過的文件夾,建議刪除文件夾下的所有文件。? mysql安全設(shè)置后導(dǎo)致mysql無法運(yùn)行,建議重置運(yùn)行mysql服務(wù)的登陸用戶名密碼,然后進(jìn)服務(wù)里面重新輸入剛修改的用戶名與密碼,這樣就可以了 如果還是不可以,我們可以通過查看錯(cuò)誤日志的方法解決: mysql錯(cuò)誤日志位于mysql安裝目錄下的擴(kuò)展名為.err的文件,復(fù)制一份通過記事本等工具打開即開,如果err日志過大建議不要用記事本,可以用editplus打開?
詳細(xì)出處參考:http://www.jb51.net/article/30866.htm
?
2.利用Navigate for MySql工具查看數(shù)據(jù)庫,保存數(shù)據(jù)庫等操作時(shí)報(bào) ?“can't creat/write to file”
解決辦法:
打開MySql的安裝路徑:找到my.ini,在其中的[mysqld]下面添加?tmpdir="C:/Program Files/MySQL/MySQL Server 5.5/Temp",后面指定的Temp路徑,沒有的話先自己建一個(gè)在指定,路徑注意分隔符是否正確。
或者: 1、C:\Windows\TEMP 文件夾權(quán)限不夠,至少也要給出 USERS 組的可讀可寫權(quán)限;------------你的服務(wù)器裝了 MCAFEE 殺毒軟件,它的訪問保護(hù)禁止了 TEMP 文件可寫,修改訪問保護(hù)設(shè)置; 2、C:\Windows\TEMP 文件夾的磁盤滿了,文件寫不進(jìn)去了,清空 TEMP 文件夾;-------------------還是MCAFEE殺毒軟件的問題,解決步驟:按訪問掃描屬性 - 所有進(jìn)程 - 檢測項(xiàng) - 掃描文件(在寫入磁盤時(shí) )勾去掉就好了。
3、第三方限制(如殺毒軟件的限制)----------------------------關(guān)閉殺毒試試
====================================================================================================================================
本人技術(shù)很菜,如果文中存在錯(cuò)誤,還請(qǐng)給位多多指出!
轉(zhuǎn)載于:https://www.cnblogs.com/tfy1332/p/3655797.html
總結(jié)
以上是生活随笔 為你收集整理的Android之jdbc的学习 的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔 網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔 推薦給好友。