真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

mybatis介紹與環(huán)境搭建-創(chuàng)新互聯(lián)

一、不用純jdbc的原因,即缺點(diǎn)。

在網(wǎng)站制作、成都網(wǎng)站建設(shè)過程中,需要針對客戶的行業(yè)特點(diǎn)、產(chǎn)品特性、目標(biāo)受眾和市場情況進(jìn)行定位分析,以確定網(wǎng)站的風(fēng)格、色彩、版式、交互等方面的設(shè)計(jì)方向。創(chuàng)新互聯(lián)還需要根據(jù)客戶的需求進(jìn)行功能模塊的開發(fā)和設(shè)計(jì),包括內(nèi)容管理、前臺展示、用戶權(quán)限管理、數(shù)據(jù)統(tǒng)計(jì)和安全保護(hù)等功能。

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包

mybatis介紹與環(huán)境搭建

即需要下載mybatis包和數(shù)據(jù)庫驅(qū)動包,可以從GitHub上下載mybatis,解壓后里面有l(wèi)ib文件夾和一個(gè)mybatis的核心包,lib中得包是mybatis的依賴包

mybatis的下載

2.工程結(jié)構(gòu)。

mybatis介紹與環(huán)境搭建

src中放源碼,lib中放所依賴的jar包,config中放各種配置文件,config文件下的sqlmap包中放sql映射文件。lib和config文件夾創(chuàng)建好后要記得郵件選擇build path->use a source folder

 3.編寫log4j.properties

mybatis介紹與環(huán)境搭建

# Global logging configuration
log4j.rootLogger=DEBUG, stdout
# MyBatis logging configuration...
log4j.logger.org.mybatis.example.BlogMapper=TRACE
# Console output...
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

mybatis介紹與環(huán)境搭建

 注意:開發(fā)時(shí)log4j.rootLogger=DEBUG,生產(chǎn)環(huán)境可以把DEBUG換成info

4.編寫SqlMapConfig.xml

mybatis介紹與環(huán)境搭建

   
    
                
          
              
                  
                  
                      
                      
                      
                      
                  
              
        
        
        
       
    

mybatis介紹與環(huán)境搭建

 中包括的是針對每個(gè)對象的sql映射文件,environment標(biāo)簽中配置的是數(shù)據(jù)源,需要變動的只有這兩個(gè)地方。

5.編寫user.xml

mybatis介紹與環(huán)境搭建






    
        select * from users where id=#{id}
    
    
        select * from users where name like '%${value}%'
    
    
        insert into users(name,birthday,address,sex) values(#{name},#{birthday},#{address},#{sex})
        
            select last_insert_id()
        
    
    
        delete from users where id=#{id}
    
    
        update users set name=#{name},address=#{address},birthday=#{birthday},sex=#{sex} where id=#{id}
    

mybatis介紹與環(huán)境搭建

 這里共寫了查詢,插入,刪除,更新四個(gè)sql語句,都用對應(yīng)的標(biāo)簽包裹起來,每一個(gè)標(biāo)簽最后會映射為一個(gè)statement,標(biāo)簽中的屬性id是此statement的唯一標(biāo)示,以后再Java中就是通過這個(gè)id來調(diào)用的。parameterType表示輸入?yún)?shù),類似于在jdbc的預(yù)編譯時(shí)為占位符賦值時(shí)的參數(shù)類型。

resultType是數(shù)據(jù)庫返回結(jié)果對應(yīng)的pojo類的類型。

標(biāo)簽是用來返回主鍵的,當(dāng)插入一條記錄后向立馬得到這條記錄的id就要加上這個(gè)標(biāo)簽,其中keyProperty屬性標(biāo)示的是實(shí)體類的主鍵屬性,order表示此查詢是在插入前執(zhí)行還是插入后執(zhí)行,resultType是查詢的結(jié)果類型

6.創(chuàng)建一個(gè)實(shí)體類對應(yīng)數(shù)據(jù)庫,因?yàn)楸容^簡單,此處不再給出代碼

7.用Junit來測試。

mybatis介紹與環(huán)境搭建

package mt;import java.io.IOException;import java.io.InputStream;import java.util.Date;import java.util.List;import org.apache.ibatis.io.Resources;import org.apache.ibatis.session.SqlSession;import org.apache.ibatis.session.SqlSessionFactory;import org.apache.ibatis.session.SqlSessionFactoryBuilder;import org.junit.Test;import entity.Classes;import entity.users;public class FirstDemo {
    @Test    public void findUserbyIdTest(){        
        try {
            String resource="SqlMapConfig.xml";
            InputStream stream=Resources.getResourceAsStream(resource);
            SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(stream);
            SqlSession sqlSession=sqlSessionFactory.openSession();
            users u=sqlSession.selectOne("test.srarchByid", 1);
            System.out.println(u.getBirthday().toString());
            sqlSession.close();
            
        } catch (IOException e) {            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    @Test    public void findUserByName(){        try {
            String resource="SqlMapConfig.xml";
            InputStream stream=Resources.getResourceAsStream(resource);
            SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(stream);
            SqlSession sqlSession=sqlSessionFactory.openSession();
            List u=sqlSession.selectList("test.searchByName", "張");
            sqlSession.close();
        } catch (IOException e) {            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
        
    }
    @Test    public void insertUser(){        try {
            String resource="SqlMapConfig.xml";
            InputStream stream=Resources.getResourceAsStream(resource);
            SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(stream);
            SqlSession sqlSession=sqlSessionFactory.openSession();
            users u=new users();
            u.setName("王磊");
            u.setSex("f");
            u.setBirthday(new Date());
            u.setAddress("上海");
            sqlSession.insert("test.insertUser", u);
            System.out.println(u.getId());
            sqlSession.commit();
            sqlSession.close();
        } catch (IOException e) {            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    
    @Test    public void deleteUser(){        try {
            String resource="SqlMapConfig.xml";
            InputStream stream=Resources.getResourceAsStream(resource);
            SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(stream);
            SqlSession sqlSession=sqlSessionFactory.openSession();
            sqlSession.insert("test.deleteUser",2);
            sqlSession.commit();
            sqlSession.close();
        } catch (IOException e) {            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    @Test    public void updateUser(){        try {
            String resource="SqlMapConfig.xml";
            InputStream stream=Resources.getResourceAsStream(resource);
            SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(stream);
            SqlSession sqlSession=sqlSessionFactory.openSession();
            users u=new users();
            u.setId(3);
            u.setName("王磊");
            u.setSex("f");
            u.setBirthday(new Date());
            u.setAddress("上海66666");
            sqlSession.update("updateUser",u);
            System.out.println(u.getId());
            sqlSession.commit();
            sqlSession.close();
        } catch (IOException e) {            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}

mybatis介紹與環(huán)境搭建

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。


網(wǎng)站標(biāo)題:mybatis介紹與環(huán)境搭建-創(chuàng)新互聯(lián)
轉(zhuǎn)載源于:http://weahome.cn/article/gscpi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部