zoukankan      html  css  js  c++  java
  • 【持久化框架】SpringMVC+Spring4+Mybatis3集成,开发简单Web项目+源码下载

      上篇博文我们介绍了mybatis的基本概念与原理,这篇博文我们通过Spring与Mybatis集成,开发一个简单用户增删改查的Web项目。

    基本准备工作

    1、安装JDK1.6以上版本,安装与配置

    2、下载mybatis-3.2.0版:https://repo1.maven.org/maven2/org/mybatis/mybatis/

    3、下载mybatis-spring-1.2.1版:https://repo1.maven.org/maven2/org/mybatis/mybatis-spring/

    4、Spring-4.0.0的版本

    5、tomacat6.x以上版本即可

    当然,这些jar还不够,还需要MySQL数据库与驱动,log4j的jar等等。下面我们开始今天的旅行:

    第一步:创建数据库表

    在Navicat下执行如下sql命令创建数据库mybatis和表t_user

    [sql] view plain copy
     
     print?
    1. CREATE DATABASE IF NOT EXISTS mybatis;  
    [sql] view plain copy
     
     print?
    1. USE mybatis;  
    [sql] view plain copy
     
     print?
    1. create table t_user  
    2. (  
    3.     user_id int(11) NOT NULL AUTO_INCREMENT,  
    4.     user_name varchar(20) not null,  
    5.     user_age varchar(20) not null,  
    6.     PRIMARY KEY (user_id)  
    7. )ENGINE=InnoDB DEFAULT CHARSET=utf8;  


    我们先看一下项目的完整目录,再继续下面的内容


    第二步:添加jar包

           对于下面代码的内容,我们就不再一一贴出来,只是把最重要的内容贴出来,大家可以下载源码。

    第三步:创建model

    创建一个model包并在其下创建一个User.java文件。

    [java] view plain copy
     
     print?
    1. package com.tgb.model;  
    2.   
    3. /** 
    4.  * 用户 
    5.  * @author liang 
    6.  * 
    7.  */  
    8. public class User {  
    9.   
    10.     private int id;  
    11.     private String age;  
    12.     private String userName;  
    13.     public User(){  
    14.         super();  
    15.     }  
    16.     public int getId() {  
    17.         return id;  
    18.     }  
    19.     public void setId(int id) {  
    20.         this.id = id;  
    21.     }  
    22.     public String getAge() {  
    23.         return age;  
    24.     }  
    25.     public void setAge(String age) {  
    26.         this.age = age;  
    27.     }  
    28.     public String getUserName() {  
    29.         return userName;  
    30.     }  
    31.     public void setUserName(String userName) {  
    32.         this.userName = userName;  
    33.     }  
    34.     public User(int id, String age, String userName) {  
    35.         super();  
    36.         this.id = id;  
    37.         this.age = age;  
    38.         this.userName = userName;  
    39.     }  
    40. }  


    第四步:创建DAO接口


    创建一个包mapper,并在其下创建一个UserMapper.java文件作为DAO接口。

    [java] view plain copy
     
     print?
    1. package com.tgb.mapper;  
    2.   
    3. import java.util.List;  
    4.   
    5. import com.tgb.model.User;  
    6.   
    7. public interface UserMapper {  
    8.   
    9.     void save(User user);  
    10.     boolean update(User user);  
    11.     boolean delete(int id);  
    12.     User findById(int id);  
    13.     List<User> findAll();  
    14. }  


    第五步:实现DAO接口


    在dao包下创建一个UserMapper.xml文件作为上一步创建的DAO接口的实现。 

    [html] view plain copy
     
     print?
    1. <?xml version="1.0" encoding="UTF-8"?>  
    2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"   
    3. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">  
    4. <!--   
    5.     namespace:必须与对应的接口全类名一致  
    6.     id:必须与对应接口的某个对应的方法名一致  
    7.       
    8.  -->  
    9. <mapper namespace="com.tgb.mapper.UserMapper">  
    10.       
    11.     <insert id="save" parameterType="User">  
    12.         insert into t_user(user_name,user_age) values(#{userName},#{age})  
    13.     </insert>  
    14.       
    15.     <update id="update" parameterType="User">  
    16.         update t_user set user_name=#{userName},user_age=#{age} where user_id=#{id}  
    17.     </update>  
    18.       
    19.     <delete id="delete" parameterType="int">  
    20.         delete from t_user where user_id=#{id}  
    21.     </delete>  
    22.       
    23.      <!-- mybsits_config中配置的alias类别名,也可直接配置resultType为类路劲 -->    
    24.     <select id="findById" parameterType="int" resultType="User">  
    25.         select user_id id,user_name userName,user_age age from t_user where user_id=#{id}  
    26.     </select>  
    27.       
    28.     <select id="findAll" resultType="User">  
    29.         select user_id id,user_name userName,user_age age from t_user  
    30.     </select>  
    31.       
    32. </mapper>  


    这里对这个xml文件作几点说明: 
    1、namespace必须与对应的接口全类名一致。 
    2、id必须与对应接口的某个对应的方法名一致即必须要和UserMapper.java接口中的方法同名。 

    第六步:Mybatis和Spring的整合

          对于Mybatis和Spring的整合是这篇博文的重点,需要配置的内容在下面有详细的解释。

    [html] view plain copy
     
     print?
    1. <?xml version="1.0" encoding="UTF-8"?>  
    2. <beans xmlns="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.   
    13.     <!-- 1. 数据源 : DriverManagerDataSource -->  
    14.     <bean id="dataSource"  
    15.         class="org.springframework.jdbc.datasource.DriverManagerDataSource">  
    16.         <property name="driverClassName" value="com.mysql.jdbc.Driver" />  
    17.         <property name="url" value="jdbc:mysql://localhost:3306/mybatis" />  
    18.         <property name="username" value="root" />  
    19.         <property name="password" value="123456" />  
    20.     </bean>  
    21.   
    22.     <!--  
    23.         2. mybatis的SqlSession的工厂: SqlSessionFactoryBean dataSource:引用数据源  
    24.   
    25.         MyBatis定义数据源,同意加载配置  
    26.     -->  
    27.     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
    28.         <property name="dataSource" ref="dataSource"></property>  
    29.         <property name="configLocation" value="classpath:config/mybatis-config.xml" />   
    30.     </bean>  
    31.   
    32.     <!--  
    33.         3. mybatis自动扫描加载Sql映射文件/接口 : MapperScannerConfigurer sqlSessionFactory  
    34.   
    35.         basePackage:指定sql映射文件/接口所在的包(自动扫描)  
    36.     -->  
    37.     <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">  
    38.         <property name="basePackage" value="com.tgb.mapper"></property>  
    39.         <property name="sqlSessionFactory" ref="sqlSessionFactory"></property>  
    40.     </bean>  
    41.   
    42.     <!-- 
    43.         4. 事务管理 : DataSourceTransactionManager dataSource:引用上面定义的数据源 
    44.     -->  
    45.     <bean id="txManager"  
    46.         class="org.springframework.jdbc.datasource.DataSourceTransactionManager">  
    47.         <property name="dataSource" ref="dataSource"></property>  
    48.     </bean>  
    49.   
    50.     <!-- 5. 使用声明式事务  
    51.          transaction-manager:引用上面定义的事务管理器  
    52.      -->  
    53.     <tx:annotation-driven transaction-manager="txManager" />  
    54.   
    55. </beans>  


    第七步:mybatis的配置文件

    [html] view plain copy
     
     print?
    1. <?xml version="1.0" encoding="UTF-8"?>  
    2. <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"   
    3. "http://mybatis.org/dtd/mybatis-3-config.dtd">  
    4. <configuration>  
    5.   
    6.     <!-- 实体类,简称 -设置别名 -->  
    7.     <typeAliases>  
    8.         <typeAlias alias="User" type="com.tgb.model.User" />  
    9.     </typeAliases>  
    10.     <!-- 实体接口映射资源 -->  
    11.     <!-- 
    12.         说明:如果xxMapper.xml配置文件放在和xxMapper.java统一目录下,mappers也可以省略,因为org.mybatis.spring.mapper.MapperFactoryBean默认会去查找与xxMapper.java相同目录和名称的xxMapper.xml 
    13.     -->  
    14.     <mappers>  
    15.         <mapper resource="com/tgb/mapper/userMapper.xml" />  
    16.     </mappers>  
    17.   
    18. </configuration>    



    总结

         Mybatis和Spring的集成相对而言还是很简单的,祝你成功。

         源码下载:SpringMVC+Spring4+Mybatis3

          下篇博文我们将Hibernate和Mybatis进行一下详细的对比

  • 相关阅读:
    Algebra, Topology, Differential Calculus, and Optimization Theory For Computer Science and Machine Learning 第4章 读书笔记(待更新)
    Algebra, Topology, Differential Calculus, and Optimization Theory For Computer Science and Machine Learning 第3章 读书笔记(待更新)
    Algebra, Topology, Differential Calculus, and Optimization Theory For Computer Science and Machine Learning 第1,2章 读书笔记(待更新)
    Tkinter的Message组件
    Git 实操/配置/实践
    mysq5.7.32-win安装步骤
    行为型模式之模板方法
    结构型模式之组合模式
    结构型模式之享元模式
    结构型模式之外观模式
  • 原文地址:https://www.cnblogs.com/jay36/p/7551884.html
Copyright © 2011-2022 走看看