(2019-3-13) Spring和MyBatis、JDBC整合

版权声明:本文为博主原创文章,请随意转载。 https://blog.csdn.net/sy755754582/article/details/88541495

Spring和MyBatis整合

1.pom.xml添加依赖

 <!-- Spring依赖 -->
    <!-- 1.Spring核心依赖 -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>4.3.7.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>4.3.7.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>4.3.7.RELEASE</version>
    </dependency>
    <!-- 2.Spring dao依赖 -->

    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-tx</artifactId>
      <version>4.3.7.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>4.3.11.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-orm</artifactId>
      <version>5.0.4.RELEASE</version>
    </dependency>
    <!-- 3.Spring web依赖 -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>4.3.7.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>4.3.7.RELEASE</version>
    </dependency>
    <!-- 4.Spring test依赖:方便做单元测试和集成测试 -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>4.3.7.RELEASE</version>
    </dependency>
    <!--mybatis-->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.4.6</version>
    </dependency>
    <!--spring整合mybatis-->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>1.3.2</version>
    </dependency>

2.添加jar包以及开启mysql服务

在这里插入图片描述
在这里插入图片描述

3.pom.xml中Build里添加(用来找到mapper.xml文件)

<resources>
    <resource>
      <directory>src/main/java</directory>
      <includes>
        <include>**/*.xml</include>
      </includes>
      <filtering>true</filtering>
    </resource>
  </resources>
</build>

4.创建实体类(添加构造函数,getter,setter,toString方法)

在这里插入图片描述

5.创建Dao层以及其mapper实现类

UserDao.java:

public interface UserDao {
    List<User> query();
    void delete(int id);
}

UserDao.xml:

<?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.zy100.dao.UserDao">
    <select id="query" resultType="com.zy100.pojo.User">
        select u_id id,username user_name,password from USER
    </select>
    <delete id="delete" parameterType="int">
        delete from USER where id=#{u_id}
    </delete>
</mapper>

6.创建Service.interface及其实现类UserServiceImpl

public interface UserService {
    List<User> query();
    void delete(int id);
}
@Service
public class UserServiceImpl implements UserService {
    @Resource
    private UserDao userDao;
    @Override
    public List<User> query() {
        return this.userDao.query();
    }
    @Override
    public void delete(int id){
        userDao.delete(id);
    }
}

7.添加resources文件

在这里插入图片描述
applicationContext.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!-- 约束文件 -->
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="http://www.springframework.org/schema/beans 
           http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
           http://www.springframework.org/schema/context
           http://www.springframework.org/schema/context/spring-context-4.0.xsd
            http://www.springframework.org/schema/tx 
            http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
    		 http://www.springframework.org/schema/aop 
     		http://www.springframework.org/schema/aop/spring-aop-4.0.xsd
           ">
    <!-- spring配置 -->
    <!-- 一个bean就是一个被spring容器管理的类   管理他的生命周期 IOC
			class  就是被spring管理的类
			id是bean的标志  id必须唯一  id的值一般情况下是类名的首字母小写 -->
    <!--识别注释-->
    <context:annotation-config></context:annotation-config>
    <!--Spring配置-->
    <context:component-scan base-package="com.zy100"></context:component-scan>
    <aop:aspectj-autoproxy></aop:aspectj-autoproxy>
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="com.mysql.jdbc.Driver"></property>
        <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/user?serverTimezone=Asia/Shanghai&amp;characterEncoding=UTF-8&amp;useSSL=false"></property>
        <property name="user" value="root"></property>
        <property name="password" value="123456"></property>
    </bean>
    <!--在spring中配置sqlSessionfactoryBean-->
    <bean id="sessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="dataSource"></property>
        <property name="mapperLocations" value="classpath:com/zy100/dao/*.xml"></property>
        <property name="configLocation" value="classpath:mybatsi-cfg.xml"></property>
    </bean>
    <!--配置mapper-->
    <bean id="mapperScanner" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.zy100.dao"></property>
        <property name="sqlSessionFactoryBeanName" value="sessionFactory"></property>
    </bean>
    <!--事务控制-->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"></property>
    </bean>
</beans>

mydatis-cfg.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>
    <!--启动二级缓存-->
    <settings>
        <setting name="cacheEnabled" value="true"/>
    </settings>
    <typeAliases>
        <typeAlias type="com.zy100.pojo.User" alias="user"></typeAlias>
    </typeAliases>
</configuration>

8.测试

public class App {
    @Test
    public void query() {
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        UserService userService = context.getBean("userServiceImpl",UserService.class);
        List<User> list = userService.query();
        if (list.size()!=0){
            for (User user:list) {
                System.out.println(user.toString());
            }
        }
    }
}

run:
User{id=1, user_name='声音', password='123'}
User{id=2, user_name='adsa', password='asdas'}
User{id=3, user_name='sda', password='ada'}
User{id=4, user_name='11', password='11'}

猜你喜欢

转载自blog.csdn.net/sy755754582/article/details/88541495
今日推荐