1. 程式人生 > 實用技巧 >【持久化框架】SpringMVC+Spring4+Mybatis3整合,開發簡單Web專案+原始碼下載【轉】

【持久化框架】SpringMVC+Spring4+Mybatis3整合,開發簡單Web專案+原始碼下載【轉】

>>> hot3.png

第一步:建立資料庫表

在Navicat下執行如下sql命令建立資料庫mybatis和表t_user

  1. CREATEDATABASEIFNOTEXISTSmybatis;
  1. USEmybatis;
  1. createtablet_user
  2. (
  3. user_idint(11)NOTNULLAUTO_INCREMENT,
  4. user_namevarchar(20)notnull,
  5. user_agevarchar(20)notnull,
  6. PRIMARYKEY(user_id)
  7. )ENGINE=InnoDBDEFAULTCHARSET=utf8;


我們先看一下專案的完整目錄,再繼續下面的內容


第二步:新增jar包

對於下面程式碼的內容,我們就不再一一貼出來,只是把最重要的內容貼出來,大家可以下載原始碼。

第三步:建立model

建立一個model包並在其下建立一個User.java檔案。

  1. packagecom.tgb.model;
  2. /**
  3. *使用者
  4. *@authorliang
  5. *
  6. */
  7. publicclassUser{
  8. privateintid;
  9. privateStringage;
  10. privateStringuserName;
  11. publicUser(){
  12. super();
  13. }
  14. publicintgetId(){
  15. returnid;
  16. }
  17. publicvoidsetId(intid){
  18. this.id=id;
  19. }
  20. publicStringgetAge(){
  21. returnage;
  22. }
  23. publicvoidsetAge(Stringage){
  24. this.age=age;
  25. }
  26. publicStringgetUserName(){
  27. returnuserName;
  28. }
  29. publicvoidsetUserName(StringuserName){
  30. this.userName=userName;
  31. }
  32. publicUser(intid,Stringage,StringuserName){
  33. super();
  34. this.id=id;
  35. this.age=age;
  36. this.userName=userName;
  37. }
  38. }


第四步:建立DAO介面


建立一個包mapper,並在其下建立一個UserMapper.java檔案作為DAO介面。

  1. packagecom.tgb.mapper;
  2. importjava.util.List;
  3. importcom.tgb.model.User;
  4. publicinterfaceUserMapper{
  5. voidsave(Useruser);
  6. booleanupdate(Useruser);
  7. booleandelete(intid);
  8. UserfindById(intid);
  9. List<User>findAll();
  10. }


第五步:實現DAO介面


在dao包下建立一個UserMapper.xml檔案作為上一步建立的DAO介面的實現。

  1. <?xmlversion="1.0"encoding="UTF-8"?>
  2. <!DOCTYPEmapperPUBLIC"-//mybatis.org//DTDMapper3.0//EN"
  3. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  4. <!--
  5. namespace:必須與對應的介面全類名一致
  6. id:必須與對應介面的某個對應的方法名一致
  7. -->
  8. <mappernamespace="com.tgb.mapper.UserMapper">
  9. <insertid="save"parameterType="User">
  10. insertintot_user(user_name,user_age)values(#{userName},#{age})
  11. </insert>
  12. <updateid="update"parameterType="User">
  13. updatet_usersetuser_name=#{userName},user_age=#{age}whereuser_id=#{id}
  14. </update>
  15. <deleteid="delete"parameterType="int">
  16. deletefromt_userwhereuser_id=#{id}
  17. </delete>
  18. <!--mybsits_config中配置的alias類別名,也可直接配置resultType為類路勁-->
  19. <selectid="findById"parameterType="int"resultType="User">
  20. selectuser_idid,user_nameuserName,user_ageagefromt_userwhereuser_id=#{id}
  21. </select>
  22. <selectid="findAll"resultType="User">
  23. selectuser_idid,user_nameuserName,user_ageagefromt_user
  24. </select>
  25. </mapper>


這裡對這個xml檔案作幾點說明:
1、namespace必須與對應的介面全類名一致。
2、id必須與對應介面的某個對應的方法名一致即必須要和UserMapper.java介面中的方法同名。

第六步:Mybatis和Spring的整合

對於Mybatis和Spring的整合是這篇博文的重點,需要配置的內容在下面有詳細的解釋。

  1. <?xmlversion="1.0"encoding="UTF-8"?>
  2. <beansxmlns="http://www.springframework.org/schema/beans"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:p="http://www.springframework.org/schema/p"
  4. xmlns:context="http://www.springframework.org/schema/context"xmlns:tx="http://www.springframework.org/schema/tx"
  5. xsi:schemaLocation="
  6. http://www.springframework.org/schema/beans
  7. http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
  8. http://www.springframework.org/schema/context
  9. http://www.springframework.org/schema/context/spring-context-4.0.xsd
  10. http://www.springframework.org/schema/tx
  11. http://www.springframework.org/schema/tx/spring-tx-4.0.xsd">
  12. <!--1.資料來源:DriverManagerDataSource-->
  13. <beanid="dataSource"
  14. class="org.springframework.jdbc.datasource.DriverManagerDataSource">
  15. <propertyname="driverClassName"value="com.mysql.jdbc.Driver"/>
  16. <propertyname="url"value="jdbc:mysql://localhost:3306/mybatis"/>
  17. <propertyname="username"value="root"/>
  18. <propertyname="password"value="123456"/>
  19. </bean>
  20. <!--
  21. 2.mybatis的SqlSession的工廠:SqlSessionFactoryBeandataSource:引用資料來源
  22. MyBatis定義資料來源,同意載入配置
  23. -->
  24. <beanid="sqlSessionFactory"class="org.mybatis.spring.SqlSessionFactoryBean">
  25. <propertyname="dataSource"ref="dataSource"></property>
  26. <propertyname="configLocation"value="classpath:config/mybatis-config.xml"/>
  27. </bean>
  28. <!--
  29. 3.mybatis自動掃描載入Sql對映檔案/介面:MapperScannerConfigurersqlSessionFactory
  30. basePackage:指定sql對映檔案/介面所在的包(自動掃描)
  31. -->
  32. <beanclass="org.mybatis.spring.mapper.MapperScannerConfigurer">
  33. <propertyname="basePackage"value="com.tgb.mapper"></property>
  34. <propertyname="sqlSessionFactory"ref="sqlSessionFactory"></property>
  35. </bean>
  36. <!--
  37. 4.事務管理:DataSourceTransactionManagerdataSource:引用上面定義的資料來源
  38. -->
  39. <beanid="txManager"
  40. class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
  41. <propertyname="dataSource"ref="dataSource"></property>
  42. </bean>
  43. <!--5.使用宣告式事務
  44. transaction-manager:引用上面定義的事務管理器
  45. -->
  46. <tx:annotation-driventransaction-manager="txManager"/>
  47. </beans>


第七步:mybatis的配置檔案

  1. <?xmlversion="1.0"encoding="UTF-8"?>
  2. <!DOCTYPEconfigurationPUBLIC"-//mybatis.org//DTDConfig3.0//EN"
  3. "http://mybatis.org/dtd/mybatis-3-config.dtd">
  4. <configuration>
  5. <!--實體類,簡稱-設定別名-->
  6. <typeAliases>
  7. <typeAliasalias="User"type="com.tgb.model.User"/>
  8. </typeAliases>
  9. <!--實體介面對映資源-->
  10. <!--
  11. 說明:如果xxMapper.xml配置檔案放在和xxMapper.java統一目錄下,mappers也可以省略,因為org.mybatis.spring.mapper.MapperFactoryBean預設會去查詢與xxMapper.java相同目錄和名稱的xxMapper.xml
  12. -->
  13. <mappers>
  14. <mapperresource="com/tgb/mapper/userMapper.xml"/>
  15. </mappers>
  16. </configuration>


總結

Mybatis和Spring的整合相對而言還是很簡單的,祝你成功。

框架/平臺構成:
Maven+Springmvc + Mybatis + Shiro(許可權)+ Tiles(模板) +ActiveMQ(訊息佇列) + Rest(服務) + WebService(服務)+ EHcache(快取) + Quartz(定時排程)+ Html5(支援PC、IOS、Android)

使用者許可權系統:
組織結構:角色、使用者、使用者組、組織機構;許可權點:頁面、方法、按鈕、資料許可權、分級授權

專案管理新體驗:
快速出原型系統、元件樹、版本控制、模組移植、協同開發、實時監控、釋出管理

可持續整合:
所有元件可移植、可定製、可擴充,開發成果不斷積累,形成可持續發展的良性迴圈

支援平臺平臺:
Windows XP、Windows 7 、Windows 10 、 Linux 、 Unix

伺服器容器:
Tomcat 5/6/7 、Jetty、JBoss、WebSphere 8.5

JEESZ通用版本分散式模組化開發平臺 - zookeeperflume - zookeeperflume的部落格

JEESZ通用版本分散式模組化開發平臺 - zookeeperflume - zookeeperflume的部落格

JEESZ通用版本分散式模組化開發平臺 - zookeeperflume - zookeeperflume的部落格

JEESZ通用版本分散式模組化開發平臺 - zookeeperflume - zookeeperflume的部落格

JEESZ通用版本分散式模組化開發平臺 - zookeeperflume - zookeeperflume的部落格

JEESZ通用版本分散式模組化開發平臺 - zookeeperflume - zookeeperflume的部落格

JEESZ通用版本分散式模組化開發平臺 - zookeeperflume - zookeeperflume的部落格

JEESZ通用版本分散式模組化開發平臺 - zookeeperflume - zookeeperflume的部落格

JEESZ通用版本分散式模組化開發平臺 - zookeeperflume - zookeeperflume的部落格

JEESZ通用版本分散式模組化開發平臺 - zookeeperflume - zookeeperflume的部落格

JEESZ通用版本分散式模組化開發平臺 - zookeeperflume - zookeeperflume的部落格

JEESZ通用版本分散式模組化開發平臺 - zookeeperflume - zookeeperflume的部落格

JEESZ通用版本分散式模組化開發平臺 - zookeeperflume - zookeeperflume的部落格

JEESZ通用版本分散式模組化開發平臺 - zookeeperflume - zookeeperflume的部落格

JEESZ通用版本分散式模組化開發平臺 - zookeeperflume - zookeeperflume的部落格

JEESZ通用版本分散式模組化開發平臺 - zookeeperflume - zookeeperflume的部落格

JEESZ通用版本分散式模組化開發平臺 - zookeeperflume - zookeeperflume的部落格

JEESZ通用版本分散式模組化開發平臺 - zookeeperflume - zookeeperflume的部落格

JEESZ通用版本分散式模組化開發平臺 - zookeeperflume - zookeeperflume的部落格

JEESZ通用版本分散式模組化開發平臺 - zookeeperflume - zookeeperflume的部落格

JEESZ通用版本分散式模組化開發平臺 - zookeeperflume - zookeeperflume的部落格

JEESZ通用版本分散式模組化開發平臺 - zookeeperflume - zookeeperflume的部落格

JEESZ通用版本分散式模組化開發平臺 - zookeeperflume - zookeeperflume的部落格

JEESZ通用版本分散式模組化開發平臺 - zookeeperflume - zookeeperflume的部落格

JEESZ通用版本分散式模組化開發平臺 - zookeeperflume - zookeeperflume的部落格

JEESZ通用版本分散式模組化開發平臺 - zookeeperflume - zookeeperflume的部落格

JEESZ通用版本分散式模組化開發平臺 - zookeeperflume - zookeeperflume的部落格

JEESZ通用版本分散式模組化開發平臺 - zookeeperflume - zookeeperflume的部落格

JEESZ通用版本分散式模組化開發平臺 - zookeeperflume - zookeeperflume的部落格

JEESZ通用版本分散式模組化開發平臺 - zookeeperflume - zookeeperflume的部落格

JEESZ通用版本分散式模組化開發平臺 - zookeeperflume - zookeeperflume的部落格

JEESZ通用版本分散式模組化開發平臺 - zookeeperflume - zookeeperflume的部落格

JEESZ通用版本分散式模組化開發平臺 - zookeeperflume - zookeeperflume的部落格

JEESZ通用版本分散式模組化開發平臺 - zookeeperflume - zookeeperflume的部落格

JEESZ通用版本分散式模組化開發平臺 - zookeeperflume - zookeeperflume的部落格

JEESZ通用版本分散式模組化開發平臺 - zookeeperflume - zookeeperflume的部落格

JEESZ通用版本分散式模組化開發平臺 - zookeeperflume - zookeeperflume的部落格

JEESZ通用版本分散式模組化開發平臺 - zookeeperflume - zookeeperflume的部落格

JEESZ通用版本分散式模組化開發平臺 - zookeeperflume - zookeeperflume的部落格

JEESZ通用版本分散式模組化開發平臺 - zookeeperflume - zookeeperflume的部落格

JEESZ通用版本分散式模組化開發平臺 - zookeeperflume - zookeeperflume的部落格

JEESZ通用版本分散式模組化開發平臺 - zookeeperflume - zookeeperflume的部落格

JEESZ通用版本分散式模組化開發平臺 - zookeeperflume - zookeeperflume的部落格

轉載於:https://my.oschina.net/grthrj/blog/753868