基于Spring4.x 搭建 Spring MVC + MyBatis

来源:互联网 发布:sql重命名列名 编辑:程序博客网 时间:2024/05/23 18:46

此次为大家分享 Spring MVC + MyBatis 环境搭建。

好我们迅速开始:

还是使用上篇讲述的这三个类来完成:
1。ApplicationBoot //配置DispatcherServlet信息的类
2。RootConfig //配置 root applicationcontext 信息
3。MvcConfig //配置servlet applicationcontext 信息

MvcConfig 中不需要有太多变化 只需要去掉 OpenEntityManagerInViewInterceptor 这拦截器即可

我们来看一下 RootConfig 中的配置情况:

@Configuration@EnableTransactionManagement@ComponentScan({"com.mycompany.myapp.dao"                        ,"com.mycompany.myapp.service"})public class RootConfig {    @Bean    public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() {        PropertySourcesPlaceholderConfigurer config  = new PropertySourcesPlaceholderConfigurer();        String filePath = "META-INF/system-cnf-test.properties";        config.setLocation(            newClassPathResource(filePath,RootConfig.class.getClassLoader()));        return config;    }    /**     * 数据库配置     */    @Bean    public DataSource  dataSource(            @Value("${db.url}")String url,            @Value("${db.user}")String username,            @Value("${db.password}")String password,            @Value("${db.driver}")String driverClassName            ){        DriverManagerDataSource dataSource = new DriverManagerDataSource(url, username, password);        dataSource.setDriverClassName(driverClassName);        return dataSource;    }    //定义 MyBatis 的 SessionFactory,需要配置 mybatis-config.xml配置文件的位置信息。    @Bean    public SqlSessionFactoryBean  sqlSessionFactory(DataSource ds){        SqlSessionFactoryBean  factory = new SqlSessionFactoryBean();        factory.setDataSource(ds);        factory.setConfigLocation(new ClassPathResource("META-INF/mybatis-config.xml"));        return factory;    }    //用来配置,MyBatis 扫包范围,从而为我们创建Dao层的实现。    @Bean    public MapperScannerConfigurer mapperScannerConfigurer(){        MapperScannerConfigurer configurer = new MapperScannerConfigurer();        configurer.setBasePackage("com.mycompany.myapp.mapper");        //方法名即为BeanName        configurer.setSqlSessionFactoryBeanName("sqlSessionFactory");        return configurer;    }    //用来在 MyBatis 环境中控制数据库事物的,使用即在你的service 方法上加 @Transactional 即可    @Bean    public DataSourceTransactionManager  dataSourceTransactionManager(DataSource ds){        DataSourceTransactionManager  tm  = new DataSourceTransactionManager();        tm.setDataSource(ds);        return tm;    }}

到这里 Spring 这边的配置就算完了,我们来看看,MyBatis这边的配置
首先是mybatis-config.xml

<configuration>      <!-- 实体类,简称 -设置别名,这样在mapp.xml的文件里面就可以使用简称,而不用使用全名 -->      <typeAliases>          <typeAlias alias="_User"    type="com.mycompany.myapp.model._User"/>    </typeAliases>      <!-- 这里不写也可以,MyBatis 默认会在 你的mapper包下 找 和 mapper同名的xml文件                         如:UserMapper.java 那么它默认会找UserMapper.xml,                            但小编为了方便管理,就另放了一个地方 -->    <mappers>        <mapper resource="META-INF/mapper/UserMapper.xml"/>    </mappers></configuration>   

那么就剩 单个 实体的文件了,我们就以UserMapper.xml 和 UserMapper.java 为例。

为_User 这个实体构建 mapper 接口

public interface UserMapper {    void create(_User user);}

里面就一个 创建方法,然而我们并不要再为这个接口写实现类了,在UserMapper.xml 里面配置就好了

<mapper namespace="com.mycompany.myapp.mapper.UserMapper">    <!-- id 对于方法名,  parameterType 对应参数,             后两个参数表示在数据库保存成功后,可以将id回填到 参数这个_User中-->    <insert id="create" parameterType="_User" useGeneratedKeys="true" keyProperty="id">        INSERT  INTO  _users (created_at,username,email,mobile_phone,password)          VALUES  (#{createdAt},#{username},#{email},#{mobilePhone},#{password})    </insert></mapper>

好的到这里项目就差不多搭建完了,希望小编的分享,对您有帮助。

pom 片段

 <!-- mybatis -->           <dependency>            <groupId>org.mybatis</groupId>            <artifactId>mybatis</artifactId>            <version>3.3.1</version>        </dependency>        <dependency>            <groupId>org.mybatis</groupId>            <artifactId>mybatis-spring</artifactId>            <version>1.2.5</version>        </dependency>
1 0
原创粉丝点击