Spring集成mybatis

一、环境配置

1.1 修改JDK版本

1.2 添加坐标依赖

   <dependencies>
        
   <!-- junit jar 包-->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
    </dependency>
 
       <!-- spring jar 包-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.2.4.RELEASE</version>
        </dependency>
       
        <!-- spring 测试jar 包-->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>5.2.4.RELEASE</version>
        </dependency>
       
       <!--spring管理的 jdbc ,以及事务相关的-->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>5.2.4.RELEASE</version>
    </dependency>
       
        <!--spring 事 务-->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-tx</artifactId>
        <version>5.2.4.RELEASE</version>
    </dependency>
       <!--aspect切面编程 jar包-->
    <dependency>
        <groupId>org.aspectj</groupId>							           <artifactId>aspectjweaver</artifactId>
        <version>1.9.5</version>
	</dependency>
    
    <!-- c3p0连接池-->
    <dependency>
        <groupId>com.mchange</groupId>
        <artifactId>c3p0</artifactId>
        <version>0.9.5.2</version>
    </dependency>
    
    <!-- mybatis jar 包-->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.5.3</version>
    </dependency>
       
  	<!-- mybatis与spring整合的核心jar包-->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis-spring</artifactId>
        <version>2.0.3</version>
    </dependency>
       
    <!-- mysql 的驱动包-->
    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.22</version>
    </dependency>
       
    <!--日志打印相关的jar-->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.7.2</version>
    </dependency>
 	 <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.2</version>
    </dependency>
   
 
   
 
   
 
    
</dependencies>

1.3 设置资源目录和插件

Maven项目:如果源代码(src/main/resouces)存在xml,properties,tld文件
Maven默认不会自动编译该文件到输出目录,如果要编译源代码中xml,properties,tld等文件需要
显式配置resources标签
<build>
  <!--
  Maven项目:如果源代码(src/main/resouces)存在xml,properties,tld文件
  Maven默认不会自动编译该文件到输出目录,如果要编译源代码中xml,properties,tld等文件需要
  显式配置resources标签
  -->
  <resources>
    <resource>
      <directory>src/main/resources</directory>
    </resource>
    <resource>
      <directory>src/main/java</directory>
      <includes>
        <include>**/*.xml</include>
        <include>**/*.properties</include>
        <include>**/*.tld</include>
      </includes>
      <filtering>false</filtering>
    </resource>
  </resources>
</build>

1.4 配置spring.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:p="http://www.springframework.org/schema/p"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xmlns:context="http://www.springframework.org/schema/context"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/aop
        http://www.springframework.org/schema/aop/spring-aop.xsd
        http://www.springframework.org/schema/tx
        http://www.springframework.org/schema/tx/spring-tx.xsd
        ">

    <!--扫描基本包-->
    <context:component-scan base-package="com.dl"/>
    <!--加载properties配置文件-->
    <context:property-placeholder location="classpath:db.properties"/>
    <!--aop-->
    <aop:aspectj-autoproxy/>
    <!--配置c3p0数据源-->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="${jdbc.driver}"></property>
        <property name="jdbcUrl" value="${jdbc.url}"></property>
        <property name="user" value="${jdbc.username}"></property>
        <property name="password" value="${jdbc.password}"></property>
     </bean>
    <!--配置事务管理器-->
    <bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"></property>
    </bean>
    <!--设置事务增强-->
    <tx:advice id="txAdvice" transaction-manager="txManager">
        <tx:attributes>
            <tx:method name="add*" propagation="REQUIRED"/>
            <tx:method name="insert**" propagation="REQUIRED"/>
            <tx:method name="update*" propagation="REQUIRED"/>
            <tx:method name="delete*" propagation="REQUIRED"/>
        </tx:attributes>
    </tx:advice>
    <!--aop切面配置-->
    <aop:config>
        <aop:pointcut id="servicePointcut" expression="execution(* com.dl.service..*.*(..))"/>
        <aop:advisor advice-ref="txAdvice" pointcut-ref="servicePointcut"/>
    </aop:config>
    <!--配置sqlSessionFactoty-->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"></property>
        <property name="configLocation" value="classpath:mybatis.xml"/>
        <property name="mapperLocations" value="classpath:com/dl/mapper/*.xml"/>
    </bean>
    <!--配置扫描器-->
    <bean id="mapperScanner" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <!--配置com.xxxx.dao包以及它的子包下的所有映射接口类-->
        <property name="basePackage" value="com.dl.dao"/>
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactoty"/>
    </bean>
</beans>

1.5 配置mybatis.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>
        <package name="com.dl.po"/>
    </typeAliases>
</configuration>

1.6 配置db.properties

jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis?serverTimezone=GMT%2B8&useUnicode=true&characterEncoding=utf-8
jdbc.username=root
jdbc.password=123456

1.7 UserMapper.xml

**注**:mapper文件中的update,delete,insert语句是不需要设置返回类型的,他们都是默认返回一个int
<?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.dl.dao.UserDao">
    <!--通过用户名查询-->
    <select id="queryUserByName" parameterType="string" resultType="com.dl.po.User">
        select user_id userId,user_name userName from t_user where user_name = #{userName}
    </select>
 <insert id="insertUser">
       insert into t_user(user_id,user_name)values(#{userId},#{userName})
    </insert>
</mapper>

1.8 相关代码

/*用户接口类*/
public interface UserDao {
    public User queryUserByName(String userName);
    public int insertUser(User user);
}
@Service
public class UserService {
    @Resource
    private UserDao userDao;
    /*
    * 通过用户名查询用户对象,返回user对象
    * */
    public User queryUserByName(String name) {
        User user = userDao.queryUserByName(name);
        return user;
    }
    public int insertUser(User user ) {
        return userDao.insertUser(user);
    }
}
@Controller
public class UserController {
    @Resource
    private UserService userService;

    public User queryByName(String uname){
        return userService.queryUserByName(uname);
    }
    public int insertUser(User user) {return userService.insertUser(user);}

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值