日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

MyBatis简介与配置MyBatis+Spring+MySql

發(fā)布時間:2025/4/14 javascript 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MyBatis简介与配置MyBatis+Spring+MySql 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

一、MyBatis簡介與配置MyBatis+Spring+MySql

原文出自:http://limingnihao.iteye.com/blog/781671

MyBatis學(xué)習(xí) 之 一、MyBatis簡介與配置MyBatis+Spring+MySql

MyBatis學(xué)習(xí) 之 二、SQL語句映射文件(1)resultMap

MyBatis學(xué)習(xí) 之 二、SQL語句映射文件(2)增刪改查、參數(shù)、緩存

MyBatis學(xué)習(xí) 之 三、動態(tài)SQL語句

MyBatis學(xué)習(xí) 之 四、MyBatis配置文件

?

1.1MyBatis簡介

????? MyBatis 是一個可以自定義SQL、存儲過程和高級映射的持久層框架。MyBatis 摒除了大部分的JDBC代碼、手工設(shè)置參數(shù)和結(jié)果集重獲。MyBatis 只使用簡單的XML 和注解來配置和映射基本數(shù)據(jù)類型、Map 接口和POJO 到數(shù)據(jù)庫記錄。相對Hibernate和Apache OJB等“一站式”O(jiān)RM解決方案而言,Mybatis 是一種“半自動化”的ORM實現(xiàn)。
需要使用的Jar包:mybatis-3.0.2.jar(mybatis核心包)。mybatis-spring-1.0.0.jar(與Spring結(jié)合包)。

下載地址:
http://ibatis.apache.org/tools/ibator
http://code.google.com/p/mybatis/

?

1.2MyBatis+Spring+MySql簡單配置

1.2.1搭建Spring環(huán)境

1,建立maven的web項目;
2,加入Spring框架、配置文件;
3,在pom.xml中加入所需要的jar包(spring框架的、mybatis、mybatis-spring、junit等);
4,更改web.xml和spring的配置文件;
5,添加一個jsp頁面和對應(yīng)的Controller;
6,測試。

可參照:http://limingnihao.iteye.com/blog/830409。使用Eclipse的Maven構(gòu)建SpringMVC項目


1.2.2建立MySql數(shù)據(jù)庫

建立一個學(xué)生選課管理數(shù)據(jù)庫。
表:學(xué)生表、班級表、教師表、課程表、學(xué)生選課表。
邏輯關(guān)系:每個學(xué)生有一個班級;每個班級對應(yīng)一個班主任教師;每個教師只能當(dāng)一個班的班主任;

使用下面的sql進(jìn)行建數(shù)據(jù)庫,先建立學(xué)生表,插入數(shù)據(jù)(2條以上)。

更多sql請下載項目源文件,在resource/sql中。

Sql代碼??
  • /*?建立數(shù)據(jù)庫?*/??
  • CREATE?DATABASE?STUDENT_MANAGER;??
  • USE?STUDENT_MANAGER;??
  • ??
  • /*****?建立student表?*****/??
  • CREATE?TABLE?STUDENT_TBL??
  • (??
  • ???STUDENT_ID?????????VARCHAR(255)?PRIMARY?KEY,??
  • ???STUDENT_NAME???????VARCHAR(10)?NOT?NULL,??
  • ???STUDENT_SEX????????VARCHAR(10),??
  • ???STUDENT_BIRTHDAY???DATE,??
  • ???CLASS_ID???????????VARCHAR(255)??
  • );??
  • ??
  • /*插入學(xué)生數(shù)據(jù)*/??
  • INSERT?INTO?STUDENT_TBL?(STUDENT_ID,??
  • ?????????????????????????STUDENT_NAME,??
  • ?????????????????????????STUDENT_SEX,??
  • ?????????????????????????STUDENT_BIRTHDAY,??
  • ?????????????????????????CLASS_ID)??
  • ??VALUES???(123456,??
  • ????????????'某某某',??
  • ????????????'女',??
  • ????????????'1980-08-01',??
  • ????????????121546??
  • ????????????)??
  • ?


    創(chuàng)建連接MySql使用的配置文件mysql.properties。

    Mysql.properties代碼??
  • jdbc.driverClassName=com.mysql.jdbc.Driver??
  • jdbc.url=jdbc:mysql://localhost:3306/student_manager?user=root&password=limingnihao&useUnicode=true&characterEncoding=UTF-8??
  • ?

    ?

    1.2.3搭建MyBatis環(huán)境

    順序隨便,現(xiàn)在的順序是因為可以盡量的少的修改寫好的文件。


    1.2.3.1創(chuàng)建實體類: StudentEntity

    Java代碼??
  • public?class?StudentEntity?implements?Serializable?{??
  • ??
  • ????private?static?final?long?serialVersionUID?=?3096154202413606831L;??
  • ????private?ClassEntity?classEntity;??
  • ????private?Date?studentBirthday;??
  • ????private?String?studentID;??
  • ????private?String?studentName;??
  • ????private?String?studentSex;??
  • ??????
  • ????public?ClassEntity?getClassEntity()?{??
  • ????????return?classEntity;??
  • ????}??
  • ??
  • ????public?Date?getStudentBirthday()?{??
  • ????????return?studentBirthday;??
  • ????}??
  • ??
  • ????public?String?getStudentID()?{??
  • ????????return?studentID;??
  • ????}??
  • ??
  • ????public?String?getStudentName()?{??
  • ????????return?studentName;??
  • ????}??
  • ??
  • ????public?String?getStudentSex()?{??
  • ????????return?studentSex;??
  • ????}??
  • ??
  • ????public?void?setClassEntity(ClassEntity?classEntity)?{??
  • ????????this.classEntity?=?classEntity;??
  • ????}??
  • ??
  • ????public?void?setStudentBirthday(Date?studentBirthday)?{??
  • ????????this.studentBirthday?=?studentBirthday;??
  • ????}??
  • ??
  • ????public?void?setStudentID(String?studentID)?{??
  • ????????this.studentID?=?studentID;??
  • ????}??
  • ??
  • ????public?void?setStudentName(String?studentName)?{??
  • ????????this.studentName?=?studentName;??
  • ????}??
  • ??
  • ????public?void?setStudentSex(String?studentSex)?{??
  • ????????this.studentSex?=?studentSex;??
  • ????}??
  • }??
  • ?

    ?

    ?

    1.2.3.2創(chuàng)建數(shù)據(jù)訪問接口

    Student類對應(yīng)的dao接口:StudentMapper。

    Java代碼??
  • public?interface?StudentMapper?{??
  • ??????
  • ????public?StudentEntity?getStudent(String?studentID);??
  • ??????
  • ????public?StudentEntity?getStudentAndClass(String?studentID);??
  • ??????
  • ????public?List<StudentEntity>?getStudentAll();??
  • ??????
  • ????public?void?insertStudent(StudentEntity?entity);??
  • ??????
  • ????public?void?deleteStudent(StudentEntity?entity);??
  • ??????
  • ????public?void?updateStudent(StudentEntity?entity);??
  • }??
  • ?


    1.2.3.3創(chuàng)建SQL映射語句文件


    Student類的sql語句文件StudentMapper.xml
    resultMap標(biāo)簽:表字段與屬性的映射。
    Select標(biāo)簽:查詢sql。

    Xml代碼??
  • <?xml?version="1.0"?encoding="UTF-8"??>??
  • <!DOCTYPE?mapper?PUBLIC?"-//mybatis.org//DTD?Mapper?3.0//EN"?"http://mybatis.org/dtd/mybatis-3-mapper.dtd">??
  • <mapper?namespace="com.manager.data.StudentMapper">??
  • ??
  • ????<resultMap?type="StudentEntity"?id="studentResultMap">??
  • ????????<id?property="studentID"?column="STUDENT_ID"/>??
  • ????????<result?property="studentName"?column="STUDENT_NAME"/>??
  • ????????<result?property="studentSex"?column="STUDENT_SEX"/>??
  • ????????<result?property="studentBirthday"?column="STUDENT_BIRTHDAY"/>??
  • ????</resultMap>??
  • ??????
  • ????<!--?查詢學(xué)生,根據(jù)id?-->??
  • ????<select?id="getStudent"?parameterType="String"?resultType="StudentEntity"?resultMap="studentResultMap">??
  • ????????<![CDATA[?
  • ????????????SELECT?*?from?STUDENT_TBL?ST?
  • ????????????????WHERE?ST.STUDENT_ID?=?#{studentID}??
  • ????????]]>???
  • ????</select>??
  • ??????
  • ????<!--?查詢學(xué)生列表?-->??
  • ????<select?id="getStudentAll"??resultType="com.manager.data.model.StudentEntity"?resultMap="studentResultMap">??
  • ????????<![CDATA[?
  • ????????????SELECT?*?from?STUDENT_TBL?
  • ????????]]>???
  • ????</select>??
  • ??????
  • </mapper>??
  • ?

    ?


    1.2.3.4創(chuàng)建MyBatis的mapper配置文件

    在src/main/resource中創(chuàng)建MyBatis配置文件:mybatis-config.xml。
    typeAliases標(biāo)簽:給類起一個別名。com.manager.data.model.StudentEntity類,可以使用StudentEntity代替。
    Mappers標(biāo)簽:加載MyBatis中實體類的SQL映射語句文件。

    ?

    Xml代碼??
  • <?xml?version="1.0"?encoding="UTF-8"??>??
  • <!DOCTYPE?configuration?PUBLIC?"-//mybatis.org//DTD?Config?3.0//EN"?"http://mybatis.org/dtd/mybatis-3-config.dtd">??
  • <configuration>??
  • ????<typeAliases>??
  • ????????<typeAlias?alias="StudentEntity"?type="com.manager.data.model.StudentEntity"/>??
  • ????</typeAliases>??
  • ????<mappers>??
  • ????????<mapper?resource="com/manager/data/maps/StudentMapper.xml"?/>??
  • ????</mappers>??
  • </configuration>????
  • ?

    ?

    ?


    1.2.3.5修改Spring 的配置文件

    主要是添加SqlSession的制作工廠類的bean:SqlSessionFactoryBean,(在mybatis.spring包中)。需要指定配置文件位置和dataSource。
    和數(shù)據(jù)訪問接口對應(yīng)的實現(xiàn)bean。通過MapperFactoryBean創(chuàng)建出來。需要執(zhí)行接口類全稱和SqlSession工廠bean的引用。

    Xml代碼??
  • <!--?導(dǎo)入屬性配置文件?-->??
  • <context:property-placeholder?location="classpath:mysql.properties"?/>??
  • ??
  • <bean?id="dataSource"?class="org.springframework.jdbc.datasource.DriverManagerDataSource">??
  • ????<property?name="driverClassName"?value="${jdbc.driverClassName}"?/>??
  • ????<property?name="url"?value="${jdbc.url}"?/>??
  • </bean>??
  • ??
  • <bean?id="transactionManager"?class="org.springframework.jdbc.datasource.DataSourceTransactionManager">??
  • ????<property?name="dataSource"?ref="dataSource"?/>??
  • </bean>??
  • ??
  • <bean?id="sqlSessionFactory"?class="org.mybatis.spring.SqlSessionFactoryBean">??
  • ????<property?name="configLocation"?value="classpath:mybatis-config.xml"?/>??
  • ????<property?name="dataSource"?ref="dataSource"?/>??
  • </bean>??
  • ??
  • <!—?mapper?bean?-->??
  • <bean?id="studentMapper"?class="org.mybatis.spring.MapperFactoryBean">??
  • ????<property?name="mapperInterface"?value="com.manager.data.StudentMapper"?/>??
  • ????<property?name="sqlSessionFactory"?ref="sqlSessionFactory"?/>??
  • </bean>??
  • ?

    ?

    也可以不定義mapper的bean,使用注解:

    將StudentMapper加入注解

    ?

    Java代碼??
  • @Repository??
  • @Transactional??
  • public?interface?StudentMapper?{??
  • }??
  • ?

    ?

    對應(yīng)的需要在dispatcher-servlet.xml中加入掃描:

    ?

    Xml代碼??
  • <bean?class="org.mybatis.spring.mapper.MapperScannerConfigurer">??
  • ????<property?name="annotationClass"?value="org.springframework.stereotype.Repository"/>??
  • ????<property?name="basePackage"?value="com.liming.manager"/>??
  • ????<property?name="sqlSessionFactory"?ref="sqlSessionFactory"/>??
  • </bean>??
  • ?

    ?

    ?

    1.2.4測試StudentMapper

    使用SpringMVC測試,創(chuàng)建一個TestController,配置tomcat,訪問index.do頁面進(jìn)行測試:

    Java代碼??
  • @Controller??
  • public?class?TestController?{??
  • ??
  • ????@Autowired??
  • ????private?StudentMapper?studentMapper;??
  • ??????
  • ????@RequestMapping(value?=?"index.do")??
  • ????public?void?indexPage()?{?????
  • ????????StudentEntity?entity?=?studentMapper.getStudent("10000013");??
  • ????????System.out.println("name:"?+?entity.getStudentName());??
  • ????}?????
  • }??
  • ?

    ?

    使用Junit測試:

    Java代碼??
  • 使用Junit測試:??
  • Java代碼??
  • @RunWith(value?=?SpringJUnit4ClassRunner.class)??
  • @ContextConfiguration(value?=?"test-servlet.xml")??
  • public?class?StudentMapperTest?{??
  • ??????
  • ????@Autowired??
  • ????private?ClassMapper?classMapper;??
  • ??????
  • ????@Autowired??
  • ????private?StudentMapper?studentMapper;??
  • ??????
  • ????@Transactional??
  • ????public?void?getStudentTest(){??
  • ????????StudentEntity?entity?=?studentMapper.getStudent("10000013");??
  • ????????System.out.println(""?+?entity.getStudentID()?+?entity.getStudentName());??
  • ??????????
  • ????????List<StudentEntity>?studentList?=?studentMapper.getStudentAll();??
  • ????????for(?StudentEntity?entityTemp?:?studentList){??
  • ????????????System.out.println(entityTemp.getStudentName());??
  • ????????}??
  • ??????????
  • ????}??
  • } ?
  • 轉(zhuǎn)載于:https://www.cnblogs.com/ningxu/p/4359848.html

    總結(jié)

    以上是生活随笔為你收集整理的MyBatis简介与配置MyBatis+Spring+MySql的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。