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包
springmvc+mybatis配置过程及示例_第1张图片
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文件下,添加数据源


    <bean class="org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer">
        <property name="locations">
            <list>
                <value>classpath:jdbc.propertiesvalue>
            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"/> 
         
         <property name="configLocation" value="classpath:MyBatis-config.xml"/> 
       bean>

其中,MyBatis-config.xml的代码如下:



<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: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插入记录功能


<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,对数据库进行增删改查的操作,基本参考第二步来实现

点击下载

你可能感兴趣的:(javaweb,spring,mvc,mybatis)