一、不用純jdbc的原因,即缺點(diǎn)。
1、數(shù)據(jù)庫理解,使用時(shí)創(chuàng)建,不用時(shí)釋放,會對數(shù)據(jù)庫進(jìn)行頻繁的鏈接開啟和關(guān)閉,造成數(shù)據(jù)庫的資源浪費(fèi),影響數(shù)據(jù)庫的性能。
設(shè)想:使用數(shù)據(jù)庫的連接池。
2、將sql語句硬編碼到j(luò)ava代碼中,不利于系統(tǒng)維護(hù)。
設(shè)想:將sql放到配置文件中。
3、向preparedstatement中設(shè)置參數(shù),對占位符位置和設(shè)置參數(shù)值,硬編碼在Java代碼中,不利于系統(tǒng)維護(hù)。
設(shè)想:將sql語句及占位符配置到xml中。
4、從resultset中便利結(jié)果集時(shí),存在硬編碼,將獲取表的字段進(jìn)行硬編碼,不利于系統(tǒng)維護(hù)。
設(shè)想;將結(jié)果集,自動映射成Java對象
二、mybatis是什么
1、mybatis讓程序員將主要精力放在sql上,通過mybatis提供的映射方式,自由靈活生成滿足需要的sql語句。
2、mybatis可以將輸入?yún)?shù)自動映射,可以將結(jié)果集映射為Java對象,并且sql相對自由,不想hibernate那樣看不到sql。
3、mybatis需要一個(gè)SqlMapConfig.xml,它是mybatis的全局配置文件,其中包括了數(shù)據(jù)庫連接池,配置了數(shù)據(jù)源、事務(wù)等。
4、還需要一個(gè)SQLMap配置文件,它配置了映射關(guān)系(配置sql語句),sql語句要寫在這個(gè)配置文件里,其實(shí)就是配置了一個(gè)statement,避免了sql語句硬編碼到Java源文件中。后面會詳細(xì)介紹這個(gè)配置文件的使用。
5、SqlsessionFactory是mybatis中生成Sqlsession的工廠,操作數(shù)據(jù)庫。
mybatis框架結(jié)構(gòu)是把sql語句的映射文件加載到SQLMapConfig中去,然后SqlSessionFactory加載SQLMapConfig后生成SQLSession,SQLSession來執(zhí)行Statement。
三、構(gòu)建一個(gè)mybatis工程。
1.所需要的jar包