springmvc+mybatis配置過程及示例

最近公司想做一個萬能遙控器,可以通過手機APP,遠程遙控到萬能遙控器,最後由萬能遙控器通過紅外線發射控制家居設備,如空調,窗簾等
如果要開發這麼一個遙控器,不難發現這部分離不開雲端的開發。目前公司還沒有做後臺的人員,而我是做Android開發的,我們公司是小公司,就目前這個項目來看,通過我的評估,招聘相關人員來開發,成本還是挺大的,所以公司是不願意招聘後臺人員的,那怎麼辦呢?我去做咯,誰叫我是全能的呢,不要笑,我也是做過後臺開發的,只是以前是打雜的!
不扯了,迴歸正題。所有的軟件開發的流程,大致如下:
第一:配置
第二:demo
第三:實戰

好了,
第一步,配置springmvc+mybatis
1.導入jar,導入springMVC和mybatis相關的所有jar包
2.創建spring配置文件
3.配置數據源
4.創建sqlsessionFactory
5.配置事務
6.配置事務的傳播性
7.配置aop
8.配置映射mapper
9.配置自動掃描

相關demo和截圖
1.導入jar,導入springMVC和mybatis相關的所有jar包
這裏寫圖片描述
2.創建spring配置文件
在源碼目錄下創建beans.xml的spring配置文件和jdbc.properties數據庫配置文件
其中,jdbc.properties的配置demo如下:

driverClass=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/employee
username=psc
password=powerstronic

3.配置數據源
在beans.xml文件下,添加數據源

<!-- 將屬性資源文件加載到Spring的上下文中 -->
    <bean class="org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer">
        <property name="locations">
            <list>
                <value>classpath:jdbc.properties</value>
            </list>
        </property>
    </bean>
    <!-- 配置數據源 -->
       <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> 
              <property name="driverClassName" value="${driverClass}"/> 
               <property name="url" value="${url}"/> 
               <property name="username" value="${username}"/> 
               <property name="password" value="${password}"/>  
       </bean> 

4.創建sqlsessionFactory

  <bean id="sqlSessionFactoryBean" class="org.mybatis.spring.SqlSessionFactoryBean">
       <!-- 指定數據源 -->
         <property name="dataSource" ref="dataSource"/> 
         <!-- 指定mybatis的配置文件 -->
         <property name="configLocation" value="classpath:MyBatis-config.xml"/> 
       </bean>

其中,MyBatis-config.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 type="com.psc.mrkong.user.User" alias="user"/>
    </typeAliases>

    <mappers>
        <mapper resource="com/psc/mrkong/mapper/User.xml"/>
    </mappers>

</configuration>

5.配置事務

 <!-- 配置事務 -->
       <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
         <property name="dataSource" ref="dataSource"/> 
       </bean>

6.配置事務的傳播性

 <!-- 指定事務的傳播特性 -->
        <tx:advice id="txAdvice" transaction-manager="transactionManager">
         <tx:attributes>
            <tx:method name="find*" read-only="true"/>
            <tx:method name="get*" read-only="true"/>
            <tx:method name="query*" read-only="true"/>
            <tx:method name="add*"  propagation="REQUIRED"/>
            <tx:method name="put*"  propagation="REQUIRED"/>
            <tx:method name="update*"  propagation="REQUIRED"/>
            <tx:method name="change*"  propagation="REQUIRED"/>
            <tx:method name="del*"  propagation="REQUIRED"/>
         </tx:attributes>
       </tx:advice>

7.配置aop

  <!-- 配置aop -->
       <aop:config>
            <aop:pointcut expression="execution(* com.psc.mrkong.service..*.*(..))" id="pointcut"/>
            <aop:advisor advice-ref="txAdvice" pointcut-ref="pointcut"/>
       </aop:config>

8.配置映射mapper

  <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
            <property name="basePackage" value="com.psc.mrkong.mapper"></property>
       </bean>

9.配置自動掃描,在beans.xml下第一行子節點下,添加如下配置

OK,到這裏,我們已經把springMVC和mybatis的基本配置配置完成,接下來我們寫一個測試demo,也就是
第二,demo
1.完成最基本的測試,創建一個包含main函數的類,用來測試獲取sqlSessionFactoryBean對象,然後打印出來,運行效果,可以正常把sqlSessionFactory對象打印出來
demo如下:

package com.psc.test;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.psc.mrkong.service.UserService;

public class MainTest {

    public static void main(String[] args) {
         ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
         SqlSessionFactory sqlSessionFactory=(SqlSessionFactory) context.getBean("sqlSessionFactoryBean");
         System.out.println(sqlSessionFactory);
    }
}

2.測試完成數據庫的連接和插入一條記錄

  • 創建User的bean類
package com.psc.mrkong.po;

public class User {

    private int sid;
    private String ename;

    private int eage;
    public String getEname() {
        return ename;
    }
    public void setEname(String ename) {
        this.ename = ename;
    }
    public int getEage() {
        return eage;
    }
    public void setEage(int eage) {
        this.eage = eage;
    }
    public int getSid() {
        return sid;
    }
    public void setSid(int sid) {
        this.sid = sid;
    }
}
  • 創建mapper接口UserMapper
package com.psc.mrkong.mapper;

import com.psc.mrkong.po.User;

public interface UserMapper {

    int addUser(User user);
}
  • 創建mapper的sql映射配置文件User.xml,實現sql插入記錄功能
<?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.psc.mrkong.mapper.UserMapper">
    <insert id="addUser" parameterType="user">
    insert into emp ( ename,age) values ( #{ename},#{eage})
    </insert>
</mapper>
  • 創建service接口和實現類

service接口UserService

package com.psc.mrkong.service;

import com.psc.mrkong.po.User;

public interface UserService {

    boolean addUser(User user);
}

service接口實現類

package com.psc.mrkong.service.impl;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.psc.mrkong.mapper.UserMapper;
import com.psc.mrkong.po.User;
import com.psc.mrkong.service.UserService;


public class UserServiceImpl implements UserService{

    UserMapper userMapper;
    @Override
    public boolean addUser(User user) {
        int add = userMapper.addUser(user);
        return add>0;
    }

}
  • 註解獲取mapper接口及其實現
package com.psc.mrkong.service.impl;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.psc.mrkong.mapper.UserMapper;
import com.psc.mrkong.po.User;
import com.psc.mrkong.service.UserService;
//註解註冊service
@Service
public class UserServiceImpl implements UserService{
    //註解獲取mapper實現
    @Resource(name="userMapper")
    UserMapper userMapper;
    @Override
    public boolean addUser(User user) {
        int add = userMapper.addUser(user);
        return add>0;
    }

}
  • main函數測試demo
package com.psc.test;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.psc.mrkong.service.UserService;

public class MainTest {

    public static void main(String[] args) {
         ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
         UserService userService=(UserService) context.getBean("userServiceImpl");
         User user=new User();
         user.setEname("大亨");
         user.setEage(30);
         System.out.println(userService.addUser(user));
    }

}

運行效果:成功添加一條記錄到數據庫中

第三,實戰
其實,實戰就是對springMVC+mybatis,對數據庫進行增刪改查的操作,基本參考第二步來實現

點擊下載

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章