MyBatis+Spring整合

不多说,直接上案例!

1. 建立数据库+表

CREATE TABLE s_user(
    user_id INT AUTO_INCREMENT PRIMARY KEY,
    user_name VARCHAR(30),
    user_birthday DATE,
    user_salary DOUBLE
)

2. 加包

  • myBatis包:

  

  • spring包

  

  

  • MySQL驱动包

  

3. 建立实体类

package com.atguigu.ms.domain;

import java.util.Date;

public class User {

    private int id;
    private String name;
    private Date birthday;
    private double salary;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Date getBirthday() {
        return birthday;
    }
    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }
    public double getSalary() {
        return salary;
    }
    public void setSalary(double salary) {
        this.salary = salary;
    }
    public User(int id, String name, Date birthday, double salary) {
        super();
        this.id = id;
        this.name = name;
        this.birthday = birthday;
        this.salary = salary;
    }
    public User() {
        super();
    }
    @Override
    public String toString() {
        return "User [id=" + id + ", name=" + name + ", salary=" + salary + "]";
    }

}

4. 编写Spring的beans.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/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">

    <!-- 数据源 -->
    <bean id="driverManagerDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost/mybatis1"></property>
        <property name="username" value="root"></property>
        <property name="password" value="lfdy"></property>
    </bean>

    <!-- mybatis的SqlSessionFactory工厂 -->
    <bean id="sqlSessionFactory1" class="org.mybatis.spring.SqlSessionFactoryBean">
        <property name="dataSource" ref="driverManagerDataSource"></property>
        <property name="typeAliasesPackage" value="com.atguigu.ms.domain"></property>
        <property name="configLocation" value="classpath:mybatis-spring.xml"></property>
    </bean>
      <bean id="userDao" class="org.mybatis.spring.mapper.MapperFactoryBean">
        <property name="mapperInterface" value="com.atguigu.ms.mapper.UserMapper"/>
        <property name="sqlSessionFactory" ref="sqlSessionFactory1"></property>
    </bean>

</beans>

5.编写UserDao.java文件

package com.atguigu.ms.mapper;

import java.util.List;

import com.atguigu.ms.domain.User;

/**
 * @author hp
 *
 */
public interface UserMapper {

    void save(User user);

    void update(User user);

    void delete(int id);

    User findById(int id);

    List<User> findAll();

}

6. 编写sql映射文件userMapper.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">

    <!--
        namespace : 必须与对应的接口全类名一致
        id:    必须与对应接口的某个对应的方法名一致
    -->

    <mapper namespace="com.atguigu.ms.mapper.UserMapper">

        <resultMap type="User" id="userResult">
            <result column="user_id" property="id"/>
            <result column="user_name" property="name"/>
            <result column="user_birthday" property="birthday"/>
            <result column="user_salary" property="salary"/>
        </resultMap>

        <insert id="save" keyColumn="user_id" keyProperty="id" useGeneratedKeys="true">
            insert into s_user(user_name,user_birthday,user_salary)
             values(#{name},#{birthday},#{salary})
        </insert>

        <update id="update">
            update s_user set user_name=#{name},user_birthday=#{birthday},user_salary=#{salary}
            where user_id = #{id}
        </update>

        <delete id="delete">
            delete from s_user
            where user_id = #{id}
        </delete>

        <select id="findById" resultMap="userResult">
            select *
            from s_user
            where user_id = #{id}
        </select>

        <select id="findAll" resultMap="userResult">
            select *
            from s_user
        </select>

    </mapper>
    

7. 编写spring-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>
    <mappers>
        <mapper resource="com/atguigu/ms/mapper/userMapper.xml"/>
    </mappers>
</configuration>

8.测试

package com.atguigu.ms.test;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.atguigu.ms.domain.User;
import com.atguigu.ms.mapper.UserMapper;

public class Main {

    public static void main(String[] args){

        ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");

        UserMapper userMapper = (UserMapper) ctx.getBean("userDao");

        Object obj = userMapper.findById(1).toString();
        System.out.println(obj);
    }

}
时间: 2024-08-06 11:54:38

MyBatis+Spring整合的相关文章

springMVC+MyBatis+Spring 整合(3)

spring mvc 与mybatis 的整合. 加入配置文件: spring-mybaits.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" xm

springMVC+MyBatis+Spring 整合(4) ---解决Spring MVC 对AOP不起作用的问题

解决Spring MVC 对AOP不起作用的问题 分类: SpringMVC3x+Spring3x+MyBatis3x myibaits spring J2EE2013-11-21 11:22 640人阅读 评论(1) 收藏 举报 用的是 SSM3的框架 Spring MVC 3.1 + Spring 3.1 + Mybatis3.1第一种情况:Spring MVC 和 Spring 整合的时候,SpringMVC的springmvc.xml文件中 配置扫描包,不要包含 service的注解,S

MyBatis Spring整合配置映射接口类与映射xml文件

Spring整合MyBatis使用到了mybatis-spring,在配置mybatis映射文件的时候,一般会使用MapperScannerConfigurer,MapperScannerConfigurer会自动扫描basePackage指定的包,找到映射接口类和映射XML文件,并进行注入.配置如下: [html] view plain copy <!-- 数据源 --> <bean id="dataSource" class="com.mchange.v

2015/5/3~springMVC+mybatis+spring整合

一.准备工作 1.概述 springMVC+mybatis+spring+MySQL+log4j+maven 2.新建maven项目,现在web-app模版 新建项目后,可能个别目录会丢失,需要手动添加,整体目录结构如下所示: 3.通过maven管理依赖,仓库地址如下: <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instan

springMVC+mybatis+spring整合案例

1.web.xml a:配置spring监听,使web容器在启动时加载spring的applicationContext.xml <listener> <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> </listener> b:配置contextConfigLocation指定applicationContext的位置,同时可以修改其

Mybatis——Spring整合

一.引入依赖 Spring的相关jar包 mybatis-3.4.1.jar mybatis-spring-1.3.0.jar mysql-connector-java-5.1.37-bin.jar c3p0-0.9.1.2.jar 二.配置applicationContext.xml <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframewo

mybatis+spring整合入门案例

com.frank.domain User.java 1 package com.frank.domain; 2 3 public class User { 4 private Integer id; 5 private String name; 6 private Integer age; 7 public Integer getId() { 8 return id; 9 } 10 public void setId(Integer id) { 11 this.id = id; 12 } 13

Mybatis+Spring整合后Mapper测试类编写

public class UserMapperTest { private ApplicationContext applicationContext; @Before public void init() throws Exception { //初始化spring容器 applicationContext = new ClassPathXmlApplicationContext("classpath:spring/applicationContext.xml"); } @Test

redis mybatis spring整合

最近想在框架里面加入redis,替换原因呢其实也没有,就是单纯的想替换掉 ---维基百科:redis介绍 一般开发中用户状态使用session或者cookie,两种方式各种利弊. Session:在InProc模式下容易丢失,并且引起并发问题.如果使用SQLServer或者SQLServer模式又消耗了性能 Cookie则容易将一些用户信息暴露,加解密同样也消耗了性能. Redis采用这样的方案解决了几个问题, 1.Redis存取速度快. 2.用户数据不容易丢失. 3.用户多的情况下容易支持集群