Java數(shù)據(jù)庫(kù)連接技術(shù)JDBC.ppt
《Java數(shù)據(jù)庫(kù)連接技術(shù)JDBC.ppt》由會(huì)員分享,可在線閱讀,更多相關(guān)《Java數(shù)據(jù)庫(kù)連接技術(shù)JDBC.ppt(37頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、1,第十二章 JDBC技術(shù),賀玉珍 ,計(jì)算機(jī)科學(xué)與技術(shù)系,,2,主要內(nèi)容,JDBC概述 JDBC API的幾個(gè)基本類和接口 應(yīng)用JDBC訪問(wèn)數(shù)據(jù)庫(kù),計(jì)算機(jī)科學(xué)與技術(shù)系,3,ODBC,12.1 JDBC概述,計(jì)算機(jī)科學(xué)與技術(shù)系,Open DataBase Connectivity 開放數(shù)據(jù)庫(kù)互連 是微軟開發(fā)的、當(dāng)前被業(yè)界廣泛接受的、用于數(shù)據(jù)庫(kù)訪問(wèn)的應(yīng)用程序編程接口(API)。 是用C語(yǔ)言實(shí)現(xiàn)的,標(biāo)準(zhǔn)應(yīng)用程序數(shù)據(jù)接口。 支持異構(gòu)的DBMS。,4,,12.1 JDBC概述,5,12.1 JDBC概述,JDBC(Java DataBase Connectivity),JDBC是為在Java Apple
2、t和應(yīng)用程序中訪問(wèn)關(guān)系數(shù)據(jù)庫(kù)而設(shè)計(jì)的API類和接口。 JDBC獨(dú)立于平臺(tái)和數(shù)據(jù)庫(kù)。 在JDBC規(guī)范中,成功地提供了SQL數(shù)據(jù)庫(kù)訪問(wèn)的 JAVA方法。 JDBC結(jié)構(gòu)如下圖所示:,計(jì)算機(jī)科學(xué)與技術(shù)系,6,JDBC應(yīng)用框架,,7,12.1 JDBC概述,12.1.2 JDBC驅(qū)動(dòng)程序的類型,有四種,分別用于不同的場(chǎng)合。,JDBC-ODBC橋接驅(qū)動(dòng)程序 本機(jī)應(yīng)用編程接口部分Java驅(qū)動(dòng)程序 數(shù)據(jù)庫(kù)中間件的純Java驅(qū)動(dòng)程序 直接連接數(shù)據(jù)庫(kù)的純Java驅(qū)動(dòng)程序,計(jì)算機(jī)科學(xué)與技術(shù)系,8,,,JDBC驅(qū)動(dòng)類型,9,12.1.2 JDBC驅(qū)動(dòng)類型,JDBC-ODBC橋接驅(qū)動(dòng)程 序 這種類型的驅(qū)動(dòng)實(shí)際是把所有j
3、dbc的調(diào)用傳遞給odbc ,再由odbc調(diào)用本地?cái)?shù)據(jù)庫(kù)驅(qū)動(dòng)代碼 jdbc-odbc橋 - odbc- 廠商DB代碼-----數(shù)據(jù)庫(kù)Server 優(yōu)點(diǎn):只要本地機(jī)裝有相關(guān)的odbc驅(qū)動(dòng),那么采用jdbc-odbc橋幾乎可以訪問(wèn)所有的數(shù)據(jù)庫(kù) 缺點(diǎn):執(zhí)行效率比較低;平臺(tái)的依賴性。,計(jì)算機(jī)科學(xué)與技術(shù)系,10,12.1.2 JDBC驅(qū)動(dòng)類型,本機(jī)應(yīng)用編程接口部分Java驅(qū)動(dòng)程序 直接把jdbc調(diào)用轉(zhuǎn)變?yōu)閿?shù)據(jù)庫(kù)的標(biāo)準(zhǔn)調(diào)用再去訪問(wèn)數(shù)據(jù)庫(kù)。 本地api驅(qū)動(dòng)---廠商DB代碼---數(shù)據(jù)庫(kù)Server 優(yōu)點(diǎn):這種驅(qū)動(dòng)比起jdbc-odbc橋加odbc執(zhí)行效率大大提高了缺點(diǎn):仍然需要在客戶端加載數(shù)據(jù)庫(kù)廠商提供的代
4、碼庫(kù)。這樣就不適合基于internet的應(yīng)用,計(jì)算機(jī)科學(xué)與技術(shù)系,11,12.1.2 JDBC驅(qū)動(dòng)類型,數(shù)據(jù)庫(kù)中間件的純Java驅(qū)動(dòng)程序 使用與具體數(shù)據(jù)庫(kù)無(wú)關(guān)的網(wǎng)絡(luò)應(yīng)用通信協(xié)議,將java應(yīng)用程序中對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)發(fā)送給網(wǎng)絡(luò)上的中間件服務(wù)器。中間件服務(wù)器再把請(qǐng)求翻譯為符合數(shù)據(jù)庫(kù)規(guī)范的調(diào)用,再把這種調(diào)用傳給數(shù)據(jù)庫(kù)服務(wù)器 網(wǎng)絡(luò)協(xié)議驅(qū)動(dòng)---中間件服務(wù)器----數(shù)據(jù)庫(kù)Server 優(yōu)點(diǎn):不需要在客戶端加載數(shù)據(jù)庫(kù)廠商提供的代碼庫(kù);在執(zhí)行效率和可升級(jí)性方面是比較好的。 缺點(diǎn):這種驅(qū)動(dòng)在中間件層仍然需要有配置其它數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序,并且由于多了一個(gè)中間層傳遞數(shù)據(jù),計(jì)算機(jī)科學(xué)與技術(shù)系,12,12.1.2 JDBC
5、驅(qū)動(dòng)類型,直接連接數(shù)據(jù)庫(kù)的純Java驅(qū)動(dòng)程序 這種驅(qū)動(dòng)直接把jdbc調(diào)用轉(zhuǎn)換為符合相關(guān)數(shù)據(jù)庫(kù)系統(tǒng)規(guī)范的請(qǐng)求。由于這種驅(qū)動(dòng)寫的應(yīng)用可以直接和數(shù)據(jù)庫(kù)服務(wù)器通信,這種類型的驅(qū)動(dòng)完全由java實(shí)現(xiàn),因此實(shí)現(xiàn)了平臺(tái)獨(dú)立性. 本地協(xié)議驅(qū)動(dòng)---------數(shù)據(jù)庫(kù)Server 優(yōu)點(diǎn)1:所以它的執(zhí)行效率是非常高的優(yōu)點(diǎn)2:平臺(tái)獨(dú)立性 缺點(diǎn):雖然驅(qū)動(dòng)程序可以動(dòng)態(tài)的被下載,但是對(duì)于不同的數(shù)據(jù)庫(kù)需要下載不同的驅(qū)動(dòng)程序,計(jì)算機(jī)科學(xué)與技術(shù)系,13,12.2 JDBC API,JDBC API的基本功能,建立一個(gè)與數(shù)據(jù)源的連接; 向數(shù)據(jù)源發(fā)出查詢和更新語(yǔ)句; 處理得到的結(jié)果,計(jì)算機(jī)科學(xué)與技術(shù)系,14,12.2 JDBC A
6、PI,Java中有關(guān)JDBC API的類,java.sql包,DriverManager類:驅(qū)動(dòng)程序管理類 Driver接口:數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序 Connection接口:到特定數(shù)據(jù)庫(kù)的連接 Statement接口:用于執(zhí)行靜態(tài) SQL 語(yǔ)句并返回它所生成結(jié)果的對(duì)象。 ResultSet接口:數(shù)據(jù)庫(kù)結(jié)果集的一個(gè)數(shù)據(jù)表,計(jì)算機(jī)科學(xué)與技術(shù)系,15,使用JDBC訪問(wèn)數(shù)據(jù)庫(kù),基本上需要以下幾個(gè)方法和步驟,計(jì)算機(jī)科學(xué)與技術(shù)系,裝入合適的驅(qū)動(dòng)程序; 創(chuàng)建一個(gè)連接對(duì)象; 生成一個(gè)SQL語(yǔ)句并執(zhí)行; 處理結(jié)果集; 關(guān)閉連接。,12.3 基于JDBC的數(shù)據(jù)庫(kù)應(yīng)用開發(fā)方法,16,裝入驅(qū)動(dòng)程序,計(jì)算機(jī)科學(xué)與技術(shù)系,Dr
7、iverManager類,12.3 基于JDBC的數(shù)據(jù)庫(kù)應(yīng)用開發(fā)方法,驅(qū)動(dòng)程序管理類 實(shí)現(xiàn)驅(qū)動(dòng)程序的裝載,并實(shí)現(xiàn)與JDBC數(shù)據(jù)源的連接。 是JDBC的管理層,工作在用戶和驅(qū)動(dòng)程序之間。它跟蹤可用的驅(qū)動(dòng)程序,并在數(shù)據(jù)庫(kù)和相應(yīng)驅(qū)動(dòng)程序之間建立連接。 Class.forName(“數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序類”);,Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”); Class.forName(“oracle.jdbc.driver.OracleDriver”); Class.forName(“com.mysql.jdbc.Driver”);,17,Class類,jav
8、a.lang.Class類 一個(gè)普通類,可以提供程序中每個(gè)類的信息,如類名、類的父類、接口、類的成員變量、類的構(gòu)造方法和方法等。 主要方法:,12.3 基于JDBC數(shù)據(jù)庫(kù)應(yīng)用開發(fā)方法,public static Class forName (String className) throws ClassNotFoundException; //該方法根據(jù)給定的字符串參數(shù)返回相應(yīng)的Class對(duì)象。,計(jì)算機(jī)科學(xué)與技術(shù)系,18,Class類,主要方法:,12.3 基于JDBC數(shù)據(jù)庫(kù)應(yīng)用開發(fā)方法,public boolean isInterface(); public Object new
9、Instance() throws InstantiationException, IllegalAccessException; public Class getInterfaces(); public String getName(); public Class getSuperclass();,計(jì)算機(jī)科學(xué)與技術(shù)系,19,建立與數(shù)據(jù)源的連接。,計(jì)算機(jī)科學(xué)與技術(shù)系,JDBC URL,12.3 基于JDBC數(shù)據(jù)庫(kù)應(yīng)用開發(fā)方法,JDBC數(shù)據(jù)源url的標(biāo)準(zhǔn)格式: jdbc::,jdbc:總協(xié)議 子協(xié)議:驅(qū)動(dòng)程序名或數(shù)據(jù)庫(kù)連接機(jī)制(可由一個(gè)或多個(gè)驅(qū)動(dòng)程序支持)的名稱。 子名稱:指定具體數(shù)據(jù)庫(kù)或數(shù)據(jù)源
10、的連接信息(數(shù)據(jù)庫(kù)服務(wù)器的IP地址,端口號(hào),ODBC數(shù)據(jù)源名稱,連接用戶名/密碼等)。,例:jdbc:odbc:bookstore jdbc:dbnet://wombat:356 jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=stud,20,建立與數(shù)據(jù)源的連接。,計(jì)算機(jī)科學(xué)與技術(shù)系,建立連接,12.3 基于JDBC數(shù)據(jù)庫(kù)應(yīng)用開發(fā)方法,Connection DriverManager.getConnection(url),例: String url = “jdbc:odbc:bookstore”; Connection con
11、 = DriverManager.getConnection(url);,21,Connection類,計(jì)算機(jī)科學(xué)與技術(shù)系,數(shù)據(jù)庫(kù)的連接類。 定義了上下文的行為,在其中發(fā)布SQL語(yǔ)句并接收結(jié)果 提供的主要方法:,12.3 基于JDBC數(shù)據(jù)庫(kù)應(yīng)用開發(fā)方法,createStatement(); //創(chuàng)建Statement 對(duì)象來(lái)將 SQL 語(yǔ)句發(fā)送到數(shù)據(jù)庫(kù)。 2) prepareStatement(String query); //創(chuàng)建PreparedStatement 對(duì)象來(lái)將參數(shù)化的 SQL 語(yǔ)句發(fā)送到數(shù)據(jù)庫(kù) 3) close(); 4) commit(); //事務(wù)提交 5) rollba
12、ck(); //事務(wù)回滾,22,創(chuàng)建SQL語(yǔ)句,計(jì)算機(jī)科學(xué)與技術(shù)系,Statement類,SQL語(yǔ)句類。 執(zhí)行SQL語(yǔ)句并獲得處理結(jié)果。 PrepareStatement類,預(yù)編譯類。 用于執(zhí)行預(yù)編譯的SQL語(yǔ)句。 CallableStatement類,存儲(chǔ)過(guò)程類。 用于執(zhí)行對(duì)一個(gè)數(shù)據(jù)庫(kù)存儲(chǔ)過(guò)程的調(diào)用。,12.3 基于JDBC數(shù)據(jù)庫(kù)應(yīng)用開發(fā)方法,23,執(zhí)行SQL語(yǔ)句,計(jì)算機(jī)科學(xué)與技術(shù)系,方法executeQuery() 用于產(chǎn)生單個(gè)結(jié)果集的語(yǔ)句,例如SELECT語(yǔ)句。 方法executeUpdate() 用于執(zhí)行INSERT、UPDATE或DELETE語(yǔ)句以及SQL DDL語(yǔ)句,例如CREA
13、TE TABLE和DROP TABLE。 方法execute() 用于執(zhí)行返回多個(gè)結(jié)果集、多個(gè)更新計(jì)數(shù)或二者組合的語(yǔ)句。,12.3 基于JDBC數(shù)據(jù)庫(kù)應(yīng)用開發(fā)方法,24,Statement類,計(jì)算機(jī)科學(xué)與技術(shù)系,主要方法:,12.3 基于JDBC數(shù)據(jù)庫(kù)應(yīng)用開發(fā)方法,ResultSet executeQuery(String query); int executeUpdate(String query); boolean execute(String query); setMaxRows(int rownum); getMaxRows(); close(); ResultSet getResul
14、tSet(); int getUpdateCount(); boolean getMoreResults();,25,Statement類,計(jì)算機(jī)科學(xué)與技術(shù)系,示例:,12.3 基于JDBC數(shù)據(jù)庫(kù)應(yīng)用開發(fā)方法,Statement stmt = con.createStatement(); String query = “SELECT * FROM books”; ResultSet r = stmt.executeQuery(query);,stmt.executeUpdate(UPDATE information SET bk_num = 130WHERE name=袖珍英漢詞典 );,26
15、,處理結(jié)果集,計(jì)算機(jī)科學(xué)與技術(shù)系,ResultSet類,12.3 基于JDBC數(shù)據(jù)庫(kù)應(yīng)用開發(fā)方法,結(jié)果集類 提供對(duì)結(jié)果集進(jìn)行處理的方法。 主要方法:,boolean next(); //first();last();previous(); getXxx(String itemname/int num); ResultSetMetaData getMetaData() //檢索此 ResultSet 對(duì)象的列的編號(hào)、類型和名字,27,ResultSet類,計(jì)算機(jī)科學(xué)與技術(shù)系,示例:,String query = “SELECT * FROM books”; ResultSet r = stmt.
16、executeQuery(query); //stmt.executeQuery(query); //r=stmt.getResultSet(); while(r.next()) String r1 = r.getString(name);double r4 = r.getDouble(4); ,12.3 基于JDBC數(shù)據(jù)庫(kù)應(yīng)用開發(fā)方法,28,關(guān)閉連接,計(jì)算機(jī)科學(xué)與技術(shù)系,關(guān)閉結(jié)果集 關(guān)閉Statement對(duì)象 關(guān)閉連接,12.3 基于JDBC數(shù)據(jù)庫(kù)應(yīng)用開發(fā)方法,29,利用JDBC/ODBC橋接驅(qū)動(dòng)程序訪問(wèn)數(shù)據(jù)庫(kù)的一般步驟:,計(jì)算機(jī)科學(xué)與技術(shù)系,通過(guò)ODBC建立訪問(wèn)的數(shù)據(jù)源,其URL地址為ur
17、l。 創(chuàng)建驅(qū)動(dòng)程序管理類的對(duì)象。常用的方法如下:Class.forName(數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序類); 建立與數(shù)據(jù)源的連接。方法如下:Connection con = DriverManager.getConnection(url);,應(yīng)用JDBC/ODBC橋訪問(wèn)數(shù)據(jù)庫(kù),創(chuàng)建數(shù)據(jù)庫(kù)。 設(shè)置系統(tǒng)的ODBC數(shù)據(jù)源。,30,利用JDBC/ODBC橋接驅(qū)動(dòng)程序訪問(wèn)數(shù)據(jù)庫(kù)的一般步驟:,計(jì)算機(jī)科學(xué)與技術(shù)系,利用Statement或它的子類對(duì)象,實(shí)現(xiàn)把SQL語(yǔ)句發(fā)送到DBMS。以查詢數(shù)據(jù)庫(kù)表為例。步驟如下: 對(duì)返回的記錄集進(jìn)行處理。 關(guān)閉結(jié)果集;關(guān)閉Statement對(duì)象;關(guān)閉連接。,應(yīng)用JDBC/ODB
18、C橋訪問(wèn)數(shù)據(jù)庫(kù),創(chuàng)建Statement對(duì)象; 執(zhí)行SQL語(yǔ)句。 另外,還可獲取和設(shè)置選項(xiàng)。,31,應(yīng)用JDBC/ODBC橋訪問(wèn)數(shù)據(jù)庫(kù),計(jì)算機(jī)科學(xué)與技術(shù)系,例: 對(duì)一個(gè)數(shù)據(jù)庫(kù)的數(shù)據(jù)表進(jìn)行選擇、插入、刪除、更新記錄的操作,對(duì)表進(jìn)行創(chuàng)建和刪除操作,32,import java.sql.*; class Query public static void main(String args) try Class t=Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch (ClassNotFoundException ce) System
19、.out.println(SQLException:+ce.getMessage()); try Connection con = DriverManager.getConnection(jdbc:odbc:mydb); Statement stmt = con.createStatement(); ResultSet rs=stmt.executeQuery(select * from mytable); while (rs.next()) System.out.println( 姓名 + rs.getString(name) + t + 性別 + rs.getS
20、tring(sex) + t + 工資 + rs.getFloat(salary) ); rs.close(); stmt.close(); con.close() catch (SQLException e) System.out.println(SQLException:+e.getMessage()); ,33,import java.sql.*; class Insert public static void main(String args) try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); catc
21、h (ClassNotFoundException ce) System.out.println(SQLException:+ce.getMessage()); try Connection con = DriverManager.getConnection(jdbc:odbc:mydb,li,1234); Statement stmt = con.createStatement(); String sqlstr = insert into mytable values(2001, 邢雪花,女,650); stmt.executeUpdate(sqlstr); stm
22、t.executeUpdate(insert into mytable values(2020,翟建設(shè),男,746)); stmt.close(); con.close(); catch (SQLException e) System.out.println(SQLException:+e.getMessage()); ,34,import java.sql.*; class Delete public static void main(String args) try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); ca
23、tch (ClassNotFoundException ce) System.out.println(SQLException:+ce.getMessage()); try Connection con = DriverManager.getConnection(jdbc:odbc:mydb,li,1234); Statement stmt = con.createStatement(); String sql = delete from mytable where name=王五; stmt.executeUpdate(sql); stmt.close();
24、 con.close(); catch (SQLException e) System.out.println(SQLException:+e.getMessage()); ,35,import java.sql.*; class Create public static void main(String args) try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch (ClassNotFoundException ce) System.out.println(SQLException:+ce.getM
25、essage()); try Connection con = DriverManager.getConnection(jdbc:odbc:mydb,li,1234); Statement stmt = con.createStatement(); String sql= create table student (s_num char(4), s_name char(6) null, score int); stmt.executeUpdate(sql); sql = insert into student(s_num, s_name,score
26、) values(9901, 張學(xué)軍,85); stmt.executeUpdate(sql); stmt.close(); con.close(); catch (SQLException e) System.out.println(SQLException:1 +e.getMessage()); ,36,import java.sql.*; class Drop public static void main(String args) try Class.forName(sun.jdbc.odbc.JdbcOdbcDriver); catch (Class
27、NotFoundException ce) System.out.println(SQLException:+ce.getMessage()); try Connection con = DriverManager.getConnection(jdbc:odbc:mydb,li,1234); Statement stmt = con.createStatement(); String sql = drop table student; stmt.executeUpdate(sql); stmt.close(); con.close(); catch (SQ
28、LException e) System.out.println(SQLException:1 +e.getMessage()); ,37,//將結(jié)果集放到表格中顯示 Vector columnHeads = new Vector(); Vector rows = new Vector(); try String query = SELECT * FROM stud; statement = connection.createStatement(); resultSet = statement.executeQuery( query ); rsmd = resultSet
29、.getMetaData(); for ( int i = 1; i <= rsmd.getColumnCount(); ++i ) columnHeads.addElement( rsmd.getColumnName( i ) ); while ( resultSet.next() ) Vector currentRow = new Vector(); for ( int i = 1; i <= rsmd.getColumnCount(); ++i ) currentRow.addElement( resultSet.getString( i ) ); rows.addElement(currentRow); JTable table = new JTable( rows, columnHeads );,
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年防凍教育安全教育班會(huì)全文PPT
- 2025年寒假安全教育班會(huì)全文PPT
- 初中2025年冬季防溺水安全教育全文PPT
- 初中臘八節(jié)2024年專題PPT
- 主播直播培訓(xùn)提升人氣的方法正確的直播方式如何留住游客
- XX地區(qū)機(jī)關(guān)工委2024年度年終黨建工作總結(jié)述職匯報(bào)
- 心肺復(fù)蘇培訓(xùn)(心臟驟停的臨床表現(xiàn)與診斷)
- 我的大學(xué)生活介紹
- XX單位2024年終專題組織生活會(huì)理論學(xué)習(xí)理論學(xué)習(xí)強(qiáng)黨性凝心聚力建新功
- 2024年XX單位個(gè)人述職述廉報(bào)告
- 一文解讀2025中央經(jīng)濟(jì)工作會(huì)議精神(使社會(huì)信心有效提振經(jīng)濟(jì)明顯回升)
- 2025職業(yè)生涯規(guī)劃報(bào)告自我評(píng)估職業(yè)探索目標(biāo)設(shè)定發(fā)展策略
- 2024年度XX縣縣委書記個(gè)人述職報(bào)告及2025年工作計(jì)劃
- 寒假計(jì)劃中學(xué)生寒假計(jì)劃安排表(規(guī)劃好寒假的每個(gè)階段)
- 中央經(jīng)濟(jì)工作會(huì)議九大看點(diǎn)學(xué)思想強(qiáng)黨性重實(shí)踐建新功