一、知識點題目:JDBC核心API的使用
關鍵字:JDBC核心API
內容:
1)加載JDBC驅動:
Oracle:Class.forName(“oracle.jdbc.driver.OracleDriver”);
MYSQL:Class.forName(“com.mysql.jdbc.Driver”);
2)通過DriverManage獲取連接:
Connection conn=
DriverManage.getConnection(String url,String username,String pwd);
其中url:
Oracle=jdbc:oracle:thin:@hostIP:port:databaseName
MYSQL=jdbc:mysql://hostIP:port/databaseName
3)通過Connection創建Statement對象
非預編譯:
Statement stat=conn.createStatement();
預編譯:
String sql=”select * from table where id=?”;
PreparedStatement stat=conn.PreparedStatement(sql);
4)執行SQL語句,獲得結果
stat.setXxx(1,value);
stat.executeUpdate();
stat.execute();
ResultSet rs=stat.executeQurey();
5)獲取結果集中的值
rs.next():判斷集合裏下一個是否有值
rs.getXxx(字段名)或rs.getInt(1)結果集每項第一列的值
6)關閉打開的對象
if(rs!=null){
rs.colse();
}
if(stat!=null){
stat.colse();
}
if(conn!=null){
conn.colse();
}
二、知識點題目:DBUtil工具類的編寫
關鍵字:DBUtil
內容:以mysql實現爲例:
方法:private static Connection getMConn()//用於獲取連接對象的方法
1 先編寫mysql.properties配置文件,用於配置連接所需的字段信息
內容以鍵值對的形式(key=value):
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/futao
jdbc.username=futao
jdbc.password=1234
2 創建對象來加載配置文件
Properties prop=new Properties();
prop.load(DBUtil.class.getClassLoader().getResourceAsStream("util/mysql.properties"));
3 根據Properties對象的getProperty(key)方法來獲取相應的字段名
4 按照知識點一的方法獲取連接對象並返回該對象
方法:public static Connection getMConnection()//以事務的方法返回連接對象,並且該對象始終只被一個線程所使用
1.ThreadLocal<Connection> connections=new ThreadLocal<Connection>();
用於存放當前線程所使用的連接對象
2. conn=getMConn();
connections.set(conn);
獲取連接並把連接放入ThreadLocal用於當前線程使用
3.返回連接對象
方法:public static void closeConnection()//用戶關閉當前線程所使用的連接對象
1.關閉conn連接
2.將ThreadLocal集合裏設爲null
方法:public static void beginTransaction()//用於啓動事務
1.獲取當前線程的連接
2.conn.setAutoCommit(false);關閉事務的自動提交
方法:public static void commitTransaction()//用於事務的提交
1.獲取當前線程的連接
2.conn.commit();提交事務
3.關閉連接
方法:public static void rollbackTransaction()//用於回滾事務
1.獲取當前線程連接
2.conn.rollback();回滾事務
3.關閉連接
三、知識點題目:用於返回類的實例的工廠方法
關鍵字:Factory 工廠方法
內容:
1.編寫配置文件,將需要返回的對象的類與字段對應起來,以鍵值對的形式(key=value)
例:factory.preperties文件中寫入
IAccountDAO=implement.AccountDAOImpl
IStockDAO=implement.StockDAOImpl
2.通過Properties對象加載配置文件
3.方法:public static Object getInstance(String type)//根據type指定的字段在配置文件中匹配並返回相應類的對象
1)獲取type對應的value值
2)通過反射Class c=Class.forName(value);獲取指定類的類對象
4.通過類對象的newInstance()方法創建一個該類的實例
5.將該實例返回
四、知識點題目:編寫DAO的思路
關鍵字:DAO
內容:
1)根據業務編寫實體類entity與數據庫中的表一一對應
2)編寫接口,定義一些操作數據庫的方法
3)編寫操作數據庫的類實現接口,訪問數據庫,對數據庫進行相關的操作
4)編寫業務類,通過調用一系列操作數據的類的方法來實現具體的業務
小結:以上具體表現了在開發中將數據層、業務層等進行分離的開發方法.提高代碼的可維護性,減少耦合,是MVC模式的基礎
五、知識點題目:DOM4J核心API的使用
關鍵字:DOM4J XML
內容:
1)向XML中寫內容:以Point類爲例
1.在內存中創造一棵樹
Document doc=DocumentHelper.createDocument();
2.爲樹添加一個根節點
Element root=doc.addElement("point");
3.在根節點下,爲樹添加子節點
Element xElement=root.addElement("x");
Element yElement=root.addElement("y");
4.爲子節點賦值
xElement.setText(point.getX());
yElement.setText(point.getY());
5.創建字節文件輸出流
OutputStream ops=new FileOutputStream("d:/fu/point.xml");
6.可以設置XML寫內容時的對齊排版格式
OutputFormat format=OutputFormat.createPrettyPrint();
爲帶換行的標準格式
7.將內存中樹的數據輸出到流指定的文件
XMLWriter writer=new XMLWriter(ops);
writer.write(doc);
8.關閉輸出流
注:除了在根節點下添加葉子節點外還可以:
A.添加屬性root.addAttribute("type", cus.getType());
B.添加CDATA:root.addCDATA(xxx);
等內容.
2)向XML文件中讀內容
1.創建字節文件輸入流
InputStream ips=new FileInputStream("d:/fu/point.xml");
2.創建讀取XML的類
SAXReader reader=new SAXReader();
Document doc=reader.read(ips);
3.獲取根節點
Element root=doc.getRootElement();
4.獲取屬性的值
String type=root.attributeValue("type");
5.獲取子節點的值
String x=root.elementText("x");
String y=root.elementText(“y");
6.關閉輸入流