JAVA语言之mybatis spring 全注解配置
小标 2019-02-28 来源 : 阅读 1308 评论 0

摘要:本文主要向大家介绍了JAVA语言之mybatis spring 全注解配置,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

本文主要向大家介绍了JAVA语言之mybatis spring 全注解配置,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助。

JAVA语言之mybatis spring 全注解配置

pom引入jar包


        <!-- mybatis jar start -->
        <!-- mybatis核心包 -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.6</version>
        </dependency>
        <!-- mybatis/spring包 -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis-spring</artifactId>
            <version>1.3.2</version>
        </dependency>


spring配置


    <!--导入外部配置文件  -->
    <context:property-placeholder location="classpath:jdbc.properties"
        ignore-unresolvable="true"/>

    <!-- 使用annotation 自动注册bean, 并保证@Required、@Autowired的属性被注入 -->
    <!-- spring注解扫描包 -->
    <context:component-scan base-package="com.services" >
       <context:exclude-filter type="annotation"
            expression="org.springframework.stereotype.Controller" />
    </context:component-scan>

    <!-- 数据源 -->
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"  
        destroy-method="close">
        <property name="driverClassName" value="${jdbc.mysql.driverClassName}" />
        <property name="url" value="${jdbc.mysql.url}" />
        <property name="username" value="${jdbc.mysql.username}" />
        <property name="password" value="${jdbc.mysql.password}" />
        <!-- 初始化连接大小 -->
        <property name="initialSize" value="${initialSize}"></property>
        <!-- 连接池最大数量 -->
        <property name="maxActive" value="${maxActive}"></property>
        <!-- 连接池最大空闲 -->
        <property name="maxIdle" value="${maxIdle}"></property>
        <!-- 连接池最小空闲 -->
        <property name="minIdle" value="${minIdle}"></property>
        <!-- 获取连接最大等待时间 -->
        <property name="maxWait" value="${maxWait}"></property>
        <!-- 禁止默认自动提交 -->
        <property name="defaultAutoCommit">
            <value>false</value>
        </property>
        <!-- 开启测试连接 -->
        <property name="testWhileIdle">
                <value>true</value>
        </property>
        <property name="testOnBorrow">
                <value>true</value>
        </property>
        <property name="validationQuery">
                   <value>select 1 from dual</value>
        </property>
        <property name="timeBetweenEvictionRunsMillis">
                   <value>300000</value>
        </property>
        <property name="numTestsPerEvictionRun">
                   <value>3</value>
        </property>
        <property name="minEvictableIdleTimeMillis">
                   <value>600000</value>
        </property>
    </bean>

    <!-- spring和MyBatis整合 -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource" />
        <!-- mybatis-config.xml -->
        <property name="configLocation" value="classpath:spring/mybatis-config.xml"/>
    </bean>

    <!-- DAO接口所在包名,Spring会自动查找其下的类 -->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.daos" />
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
    </bean>

    <!-- (事务管理)transaction manager, use JtaTransactionManager for global tx -->
    <bean id="transactionManager"
        class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource" />
    </bean>

    <!-- 注解事务扫描 -->
    <tx:annotation-driven transaction-manager="transactionManager"/>


jdbc.properties 数据库配置文件


###mysql表
jdbc.mysql.driverClassName=com.mysql.jdbc.Driver
#[ 测试用 ]
jdbc.mysql.url=jdbc:mysql://10.143.131.52:3306/test
jdbc.mysql.username=test
jdbc.mysql.password=test

#初始化连接大小
initialSize=3
#连接池最大数量
maxActive=50
#连接池最大空闲
maxIdle=10
#连接池最小空闲
minIdle=0
#获取连接最大等待时间
maxWait=-1


使用方法


例:查询


实体类


package com.dto;

public class TestDTO {

    private String id;
    private String name;
    private int age;
    public String getId() {
        return id;
    }
    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }

}


DAO层


package com.daos;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import com.dto.TestDTO;

@Mapper
public interface TestDAO {

    @Select("<script> " +
            "select " +
            "t.ID  as id " +
            ",t.NAME  as name " +
            ",t.AGE as age " +

            "from " + 
            "${tablename} t " +
            "where " +
            "t.age in " +
            "<foreach item='item' index='index' collection='ages' open='(' separator=',' close=')'> " +
            "#{item} " +
            "</foreach> " +
            "</script> "
            )
    List<TestDTO> list(@Param("tablename")String tablename, @Param("ages")List<int> ages);
}


service层接口


package com.services;

import java.util.List;

import com.dto.TestDTO;

public interface TestService {

    /**
     * 信息
     * @param 
     */
    public List<TestDTO> list(String tablename, List<int> ages);

}


service层实现


package com.services.impl;

import java.util.List;

import com.daos.TestDAO;
import com.dto.TestDTO;
import com.services.TestService;

@Service
public class TestService implements TestService{

    @Autowired
    private TestDAO testDAO;

    /**
     * 信息
     * @param 
     */
    public List<TestDTO> list(String tablename, List<int> ages){
      try {
            return testDAO.list(tablename, ages);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return new ArrayList<TestDTO>();
    }

}


controller层


package com.web;

import java.util.ArrayList;
import java.util.List;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import com.daos.TestDAO;
import com.dto.TestDTO;
import com.services.TestService;

/**
 * @功能 处理相关请求
 * @author zjw
 * 
 */
@Controller
@RequestMapping("/test")
public class TestController extends BaseController {
    private static final Logger log = LoggerFactory
            .getLogger(TestController.class);

    @Autowired
    private TestService testServiceImpl;

    /************************************* 任务管理 **********************************/
    /**
     * @functional 页面跳转
     * @param model
     * @param request
     * @param response
     * @return
     * @throws Exception
     */
    @RequestMapping("/test.do")
    public String test(Model model, HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        List<int> ageList = new ArrayList<>();
        mobileList.add(80);
        List<TestDTO> tests = testServiceImpl.list("t_test", ageList);
        System.out.println("tests:"+tests+":"+tests.size());
        return "/view/test/listTest";
    }

}

   

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注编程语言JAVA频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程