Spring和Mybatis整合

7 篇文章 0 订阅
2 篇文章 0 订阅

1.导入依赖jar包

 <!--mybatis -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.4.6</version>
   </dependency>
   <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis-spring</artifactId>
      <version>1.3.1</version>
    </dependency>
    <dependency>
      <groupId>com.github.pagehelper</groupId>
      <artifactId>pagehelper</artifactId>
      <version>5.1.2</version>
    </dependency>
   
  <!--spring -->
   <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>4.3.10.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>4.3.10.RELEASE</version>
    </dependency>
    <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-beans</artifactId>
          <version>4.3.10.RELEASE</version>
      </dependency>
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-web</artifactId>
          <version>4.3.10.RELEASE</version>
      </dependency>
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-webmvc</artifactId>
          <version>4.3.10.RELEASE</version>
      </dependency>
      <dependency>
	      <groupId>org.springframework</groupId>
	      <artifactId>spring-test</artifactId>
	      <version>4.3.10.RELEASE</version>
	      <scope>test</scope>
     </dependency>
     <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-aop</artifactId>
      <version>4.3.10.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-jdbc</artifactId>
      <version>4.3.10.RELEASE</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-tx</artifactId>
      <version>4.3.10.RELEASE</version>
    </dependency>
 
 <!--c3p0 -->
 	 <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.38</version>
    </dependency>
    <dependency>
      <groupId>com.mchange</groupId>
      <artifactId>c3p0</artifactId>
      <version>0.9.5.2</version>
    </dependency>
    <dependency>
      <groupId>com.mchange</groupId>
      <artifactId>mchange-commons-java</artifactId>
      <version>0.2.11</version>
    </dependency>
    
 <!--jstl -->
	<dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>jstl</artifactId>
      <version>1.2</version>
    </dependency>
    <dependency>
      <groupId>taglibs</groupId>
      <artifactId>standard</artifactId>
      <version>1.1.2</version>
    </dependency>

2.创建Mybatis配置文件(mybatis-config.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.demo.pojo"/>
        </typeAliases>

        <!-- 配置分页插件 -->
        <plugins>
            <plugin interceptor="com.github.pagehelper.PageInterceptor"></plugin>
        </plugins>
</configuration>

3.创建spring配置文件(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:tx="http://www.springframework.org/schema/tx"
       xsi:schemaLocation="
       http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/tx
        http://www.springframework.org/schema/tx/spring-tx.xsd
       http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans.xsd">
       
	<!--开启注解-->
    <context:component-scan base-package="com.demo"/>
    <!--数据源-->
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="driverClass" value="com.mysql.jdbc.Driver"/>
        <property name="jdbcUrl" value="jdbc:mysql:///csdn"/>
        <property name="user" value="root"/>
        <property name="password" value="mysql"/>
    </bean>
    <!--创建SQLSession-->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="configLocation" value="classpath:mybatis-config.xml"/>
        <property name="dataSource" ref="dataSource"/>
    </bean>
    <!--mapper接口批量扫描-->
    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <property name="basePackage" value="com.demo.mapper"/>
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
    </bean>
   <!-- 配置事务-->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"/>
    </bean>
   <!-- 开启事务注解-->
    <tx:annotation-driven transaction-manager="transactionManager"/>
</beans>

4.配置StudentMapper.xml(配置在resources目录下,新建包名和配置文件名和src下的目录一致,在resources创建目录注意使用 (.)(/)有的时候使用(.)创建目录会出现问题,例如(com.demo.test一般情况是创建一个三级目录,使用(.)可能只会创建一个(com.demo.test)目录)

<?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.demo.mapper.StudentMapper">
    <insert id="add" parameterType="Student">
        insert into student(sname,sage)values(#{stu.name},#{stu.age})
    </insert>

    <delete id="delete">
        delete from student where sid = #{id}
    </delete>

    <update id="update">
        update student
        <set>
            <if test="stu.name!=null">sname=#{stu.name},</if>
            <if test="stu.age>0">sage=#{stu.age},</if>
        </set>
        where sid = #{stu.id}
    </update>

    <select id="queryById" resultMap="queryMap">
        select * from student where sid=#{id}
    </select>

    <select id="queryAll" resultMap="queryMap">
        select * from student
    </select>

    <select id="query" resultMap="queryMap">
        select * from student
        <where>
            <if test="stu.name!=null">sname=#{stu.name}</if>
            <if test="stu.age>0"> and sage=#{stu.age}</if>
        </where>
    </select>

    <resultMap id="queryMap" type="Student">
        <id column="sid" property="id"/>
        <result column="sname" property="name"/>
        <result column="sage" property="age"/>
    </resultMap>
</mapper>

5.pojo类(Student)

public class Student {
    private int id;
    private String name;
    private int age;
    public int getId() {
        return id;
    }
    public String getName() {
        return name;
    }
    public int getAge() {
        return age;
    }
    public void setId(int id) {
        this.id = id;
    }
    public void setName(String name) {
        this.name = name;
    }
    public void setAge(int age) {this.age = age; }
    @Override
    public String toString() {
        return "Student{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                '}'; }

    public Student() { }
    public Student(int id, String name, int age) {
        this.id = id;
        this.name = name;
        this.age = age;
    }
}

6.编写StudentMapper接口

public interface StudentMapper {
    public boolean add(@Param("stu") Student stu);
    public boolean delete(@Param("id")int id);
    public boolean update(@Param("stu")Student stu);
    public Student queryById(@Param("id")int id);
    public List<Student> query(@Param("stu")Student stu);
    public List<Student> queryAll();
}

7.StudentService

@Service
@Transactional  //事务注解
public class StudentService {
    @Resource
    private StudentMapper studentMapper;

    public boolean add(Student stu){
        return studentMapper.add(stu);
    }
    public boolean delete(int id){
        return studentMapper.delete(id);
    }
    public boolean update(Student stu){
        return studentMapper.update(stu);
    }
    public Student queryById(int id){
        return studentMapper.queryById(id);
    }
    public List<Student> query(Student stu){
        return studentMapper.query(stu);
    }
    public List<Student> queryAll(){
        return studentMapper.queryAll();
    }
}

8.Test(没有具体测试事务)

@Test
    public void myTest() {
        ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
        StudentService service = (StudentService) context.getBean("studentService");
        PageHelper.startPage(1, 1);
        List<Student> list = service.queryAll();
        PageInfo<Student> pageInfo = new PageInfo<>(list);
        System.out.println(pageInfo.getList().get(1));
    }

项目目录
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值