Mybatis 学习01:整个ssm框架的搭建

spring已然成为web开发的主流框架,这个专题主要讲springh中运用Mybatis来作为连接数据库的框架。MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis使用简单的XML或注解用于配置和原始映射,将接口和Java的POJOs(Plan Old Java Objects,普通的Java对象)映射成数据库中的记录.

orm工具的基本思想无论是用过的hibernate,mybatis,你都可以法相他们有一个共同点:1. 从配置文件(通常是XML配置文件中)得到 sessionfactory.2. 由sessionfactory 产生 session3. 在session 中完成对数据的增删改查和事务提交等.4. 在用完之后关闭session 。5. 在Java 对象和 数据库之间有做mapping 的配置文件,也通常是xml 文件。

1.环境搭建:

①建立数据库:
创建一个student数据库,再立一个Student表(将stu_id设为主键)- :

Mybatis 学习01:整个ssm框架的搭建_第1张图片
Paste_Image.png

②创建maven web工程:
不懂的可以参考这个链接 创建maven web工程
搭建完之后就是这样

Mybatis 学习01:整个ssm框架的搭建_第2张图片
Paste_Image.png

③书写配置文件其中pom.xml中配置如下:


  4.0.0
  com.mask
  MybatisDemo
  war
  0.0.1-SNAPSHOT
  MybatisDemo Maven Webapp
  http://maven.apache.org
  
     
          
            junit  
            junit  
            4.12  
            test  
          
  
         
            org.springframework  
            spring-context  
            3.2.4.RELEASE  
            jar  
          
  
          
            org.springframework  
            spring-core  
            3.2.4.RELEASE  
            jar  
          
  
          
            org.springframework  
            spring-beans  
            3.2.4.RELEASE  
            jar  
          
  
          
            org.springframework  
            spring-webmvc  
            3.2.4.RELEASE  
            jar  
          
  
          
            org.springframework  
            spring-orm  
            3.2.4.RELEASE  
            jar  
          
  
          
          
            log4j  
            log4j  
            1.2.17  
          
  
          
          
            mysql  
            mysql-connector-java  
            5.1.34  
          
  
          
          
            com.mchange  
            c3p0  
            0.9.5-pre10  
          
  
          
          
            com.alibaba  
            fastjson  
            1.2.3  
          
  
        
  
        
  
         
  
          
          
            javax.servlet  
            servlet-api  
            3.0-alpha-1  
            provided  
          
  
          
            javax.servlet  
            jstl  
            1.2  
          
  
          
          
            commons-io  
            commons-io  
            2.4  
          
  
          
            commons-fileupload  
            commons-fileupload  
            1.2.2  
          
        
        
        
            org.apache.directory.studio
            org.apache.commons.lang
            2.6
        
        
        
        

    mysql
    mysql-connector-java
    5.1.6




    commons-pool
    commons-pool
    1.6


   
        
            org.mybatis
            mybatis
            3.2.8
        

        
        
            org.mybatis
            mybatis-spring
            1.2.2
        
        
  
  
    MybatisDemo
  


④web容器的配置web.xml:



  
  
    contextConfigLocation
    classpath*:applicationContext.xml,classpath*:spring-mybatis.xml
  
  
  
  
    字符集过滤器
    encodingFilter
    org.springframework.web.filter.CharacterEncodingFilter
    
      字符集编码
      encoding
      UTF-8
    
  
  
    encodingFilter
    /*
  
  
    spring监听器
    org.springframework.web.context.ContextLoaderListener
  
  
  
    spring mvc servlet
    springMvc
    org.springframework.web.servlet.DispatcherServlet
    
      spring mvc 配置文件
      contextConfigLocation
      classpath:spring-mvc.xml
    
    1
  
  
    springMvc
    *.html
  
  
    30
  
 
  
  
  
    /WEB-INF/jsp/login.jsp
  


⑥applicationContext配置,就是spring容器的配置:applicationContext.xml



    
    
    
    

       
          1000000000000000 
          UTF-8 
     
    
    

⑦spring mvc配置 spring-mvc.xml




  
      
      
      
      
        
      
  
      
      
          
          
          
      
  
      
      
          
            UTF-8  
          
          
              
            32505856  
          
          
            4096  
          
      
  
  

⑧mybatis配置文件 spring-mybatis.xml



    
   

    
       
      
          
          
          
          
  
          
          
          
          
          
          
          
          
          
          
          
          
      

    
    
        
        
        
        
    

    
    
        
        
    

    
    
    
    
    


二.建立domainc层,controller层,service层,dao层

①domain层,位于com.baobaotao.domain包下

package com.baobaotao.domain;

import java.io.Serializable;

/**
 * Date:     2017年4月11日 下午9:59:50
 * @author   maskwang 
 * @since    JDK 1.6
 */
public class Student implements Serializable {
   private int stu_id;
   private String name;
   private int age;
   private int money;
public int getStu_id() {
    return stu_id;
}
public void setStu_id(int stu_id) {
    this.stu_id = stu_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;
}
public int getMoney() {
    return money;
}
public void setMoney(int money) {
    this.money = money;
}
@Override
public String toString() {
    return "Student [stu_id=" + stu_id + ", name=" + name + ", age=" + age + ", money=" + money + "]";
}
   
   
}

②service层,位于com.baobaotao.Service包下

package com.baobaotao.Service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.baobaotao.Dao.StudentDao;
import com.baobaotao.domain.Student;

/**
 * Date:     2017年4月12日 上午8:05:17
 * @author   maskwang 
 * @since    JDK 1.6
 */
@Service
public class StudentService {
    @Autowired
    StudentDao studentDao;
    public Student getStudent(int id) {
        // TODO Auto-generated method stub
        return studentDao.getStudent(id);   
    }

    public void deleteStudent(int id) {
        studentDao.deleteStudent(id);

    }

    public void updateStudent(Student stu) {
        studentDao.updateStudent(stu);

    }

    public List getAllStudent() {
        // TODO Auto-generated method stub
        return studentDao.getAllStudent();
    }

    public void insertStudent(Student stu) {
        studentDao.insertStudent(stu);

    }


}

③.Dao层,位于com.baobaotao.Dao层

package com.baobaotao.Dao;

import java.util.List;

import org.springframework.stereotype.Repository;

import com.baobaotao.domain.Student;

/**
 * Date:     2017年4月11日 下午10:01:47
 * @author   maskwang 
 * @since    JDK 1.6
 */
@Repository
public interface StudentDao {
   public Student getStudent(int id);
   public void deleteStudent(int id);
   public void updateStudent(Student stu);
   public List getAllStudent();
   public void insertStudent(Student stu);
}

④controller层,位于com.baobaotao.controller层

package com.baobaotao.controller;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestMapping;

import com.baobaotao.Service.StudentService;
import com.baobaotao.domain.Student;

/**
 * Date:     2017年4月11日 下午10:15:26
 * @author   maskwang 
 * @since    JDK 1.6
 */
@Controller
public class StudentController {
    @Autowired
    StudentService studentService;
        
  @RequestMapping(value = "/loginCheck.html")
   public void getAllStudent(){
      System.out.println("hello");
      //Student stu=studentService.getStudent(123);
//     List list=studentService.getAllStudent();
//     System.out.println(list);
       Student stu=new Student();
       stu.setAge(100);
       stu.setMoney(1000);
       stu.setName("hello");
       stu.setStu_id(126);
       studentService.insertStudent(stu);
       stu.setName("sb");
       studentService.updateStudent(stu);
 //   studentService.deleteStudent(126);
   }
}

④对应的StudentMapper文件位于clathpath:/mybatis/StudentMapper.xml




    
        
        
        
        
    

    
    
     
    
      
        insert into student(stu_id,stu_name,stu_age,stu_mon)  
             values(#{stu_id},#{name},#{age},#{money})  
    
    
        delete from student where stu_id=#{id}
    
    
    
        update student set stu_id=#{stu_id},stu_name=#{name},stu_age=#{age},stu_mon=#{money} where stu_id=#{stu_id}
    


运行起来,在console层会显示查询结果,我这里只演示查询,其他操作,在后续都会给出来。配置文件都有详细解释,如有不懂,欢迎交流。

你可能感兴趣的:(Mybatis 学习01:整个ssm框架的搭建)