`
zhaohaolin
  • 浏览: 1004391 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

MyBatis学习 之 一、MyBatis简介与配置MyBaits+Spring+MySql

阅读更多

一、MyBatis简介与配置MyBaits+Spring+MySql

1.1MyBatis简介

      MyBatis 是一个可以自定义SQL、存储过程和高级映射的持久层框架。MyBatis 摒除了大部分的JDBC代码、手工设置参数和结果集重获。MyBatis 只使用简单的XML 和注解来配置和映射基本数据类型、Map 接口和POJO 到数据库记录。相对Hibernate和Apache OJB等“一站式”ORM解决方案而言,ibatis 是一种“半自动化”的ORM实现。
需要使用的Jar包:mybatis-3.0.2.jar(mybatis核心包)。mybatis-spring-1.0.0.jar(与Spring结合包)。

下载地址:
http://ibatis.apache.org/tools/ibator
http://code.google.com/p/mybatis/

 

1.2MyBaits+Spring+MySql简单配置

1.2.1搭建Spring环境

1,建立maven的web项目;
2,加入Spring框架、配置文件;
3,在pom.xml中加入所需要的jar包(spring框架的、mybatis、mybatis-spring、junit等);
4,更改web.xml和spring的配置文件;
5,添加一个jsp页面和对应的Controller;
6,测试。
 可参照:http://limingnihao.javaeye.com/blog/774215


1.2.2建立MySql数据库

建立一个学生选课管理数据库。
表:学生表、班级表、教师表、课程表、学生选课表。
逻辑关系:每个学生有一个班级;每个班级对应一个班主任教师;每个教师只能当一个班的班主任;

使用下面的sql进行建数据库,先建立学生表,插入数据(2条以上)。

更多sql请下载项目源文件,在resource/sql中。

Sql代码
  1. /* 建立数据库 */   
  2. CREATE DATABASE STUDENT_MANAGER;   
  3. USE STUDENT_MANAGER;   
  4.   
  5. /***** 建立student表 *****/   
  6. CREATE TABLE STUDENT_TBL   
  7. (   
  8.    STUDENT_ID         VARCHAR(255) PRIMARY KEY,   
  9.    STUDENT_NAME       VARCHAR(10) NOT NULL,   
  10.    STUDENT_SEX        VARCHAR(10),   
  11.    STUDENT_BIRTHDAY   DATE,   
  12.    CLASS_ID           VARCHAR(255)   
  13. );   
  14.   
  15. /*插入学生数据*/   
  16. INSERT INTO STUDENT_TBL (STUDENT_ID,   
  17.                          STUDENT_NAME,   
  18.                          STUDENT_SEX,   
  19.                          STUDENT_BIRTHDAY,   
  20.                          CLASS_ID)   
  21.   VALUES   (123456,   
  22.             '某某某',   
  23.             '女',   
  24.             '1980-08-01',   
  25.             121546   
  26.             )  

 


创建连接MySql使用的配置文件mysql.properties。

Xml代码
  1. jdbc.driverClassName=com.mysql.jdbc.Driver   
  2. jdbcjdbc.url=jdbc:mysql://localhost:3306/student_manager?user=root&password=limingnihao&useUnicode=true&characterEncoding=UTF-8  

 

 

1.2.3搭建MyBatis环境

顺序随便,现在的顺序是因为可以尽量的少的修改写好的文件。


1.2.3.1创建实体类: StudentEntity

Java代码
  1. public class StudentEntity implements Serializable {   
  2.   
  3.     private static final long serialVersionUID = 3096154202413606831L;   
  4.     private ClassEntity classEntity;   
  5.     private Date studentBirthday;   
  6.     private String studentID;   
  7.     private String studentName;   
  8.     private String studentSex;   
  9.        
  10.     public ClassEntity getClassEntity() {   
  11.         return classEntity;   
  12.     }   
  13.   
  14.     public Date getStudentBirthday() {   
  15.         return studentBirthday;   
  16.     }   
  17.   
  18.     public String getStudentID() {   
  19.         return studentID;   
  20.     }   
  21.   
  22.     public String getStudentName() {   
  23.         return studentName;   
  24.     }   
  25.   
  26.     public String getStudentSex() {   
  27.         return studentSex;   
  28.     }   
  29.   
  30.     public void setClassEntity(ClassEntity classEntity) {   
  31.         this.classEntity = classEntity;   
  32.     }   
  33.   
  34.     public void setStudentBirthday(Date studentBirthday) {   
  35.         this.studentBirthday = studentBirthday;   
  36.     }   
  37.   
  38.     public void setStudentID(String studentID) {   
  39.         this.studentID = studentID;   
  40.     }   
  41.   
  42.     public void setStudentName(String studentName) {   
  43.         this.studentName = studentName;   
  44.     }   
  45.   
  46.     public void setStudentSex(String studentSex) {   
  47.         this.studentSex = studentSex;   
  48.     }   
  49. }  

 

 

 

1.2.3.2创建数据访问接口

Student类对应的dao接口:StudentMapper。

Java代码
  1. public interface StudentMapper {   
  2.        
  3.     public StudentEntity getStudent(String studentID);   
  4.        
  5.     public StudentEntity getStudentAndClass(String studentID);   
  6.        
  7.     public List<StudentEntity> getStudentAll();   
  8.        
  9.     public void insertStudent(StudentEntity entity);   
  10.        
  11.     public void deleteStudent(StudentEntity entity);   
  12.        
  13.     public void updateStudent(StudentEntity entity);   
  14. }  

 


1.2.3.3创建SQL映射语句文件


Student类的sql语句文件StudentMapper.xml
resultMap标签:表字段与属性的映射。
Select标签:查询sql。

Xml代码
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">  
  3. <mapper namespace="com.manager.data.StudentMapper">  
  4.   
  5.     <resultMap type="StudentEntity" id="studentResultMap">  
  6.         <id property="studentID" column="STUDENT_ID"/>  
  7.         <result property="studentName" column="STUDENT_NAME"/>  
  8.         <result property="studentSex" column="STUDENT_SEX"/>  
  9.         <result property="studentBirthday" column="STUDENT_BIRTHDAY"/>  
  10.     </resultMap>  
  11.        
  12.     <!-- 查询学生,根据id -->  
  13.     <select id="getStudent" parameterType="String" resultType="StudentEntity" resultMap="studentResultMap">  
  14.         <![CDATA[  
  15.             SELECT * from STUDENT_TBL ST  
  16.                 WHERE ST.STUDENT_ID = #{studentID}   
  17.         ]]>    
  18.     </select>  
  19.        
  20.     <!-- 查询学生列表 -->  
  21.     <select id="getStudentAll"  resultType="com.manager.data.model.StudentEntity" resultMap="studentResultMap">  
  22.         <![CDATA[  
  23.             SELECT * from STUDENT_TBL  
  24.         ]]>    
  25.     </select>  
  26.        
  27. </mapper>  

 

 


1.2.3.4创建MyBatis的mapper配置文件

在src/main/resource中创建MyBatis配置文件:mybatis-config.xml。
typeAliases标签:给类起一个别名。com.manager.data.model.StudentEntity类,可以使用StudentEntity代替。
Mappers标签:加载MyBatis中实体类的SQL映射语句文件。

 

Xml代码
  1. <?xml version="1.0" encoding="UTF-8" ?>  
  2. <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">  
  3. <configuration>  
  4.     <typeAliases>  
  5.         <typeAlias alias="StudentEntity" type="com.manager.data.model.StudentEntity"/>  
  6.     </typeAliases>  
  7.     <mappers>  
  8.         <mapper resource="com/manager/data/maps/StudentMapper.xml" />  
  9.     </mappers>  
  10. </configuration>    

 

 

 


1.2.3.5修改Spring 的配置文件

主要是添加SqlSession的制作工厂类的bean:SqlSessionFactoryBean,(在mybatis.spring包中)。需要指定配置文件位置和dataSource。
和数据访问接口对应的实现bean。通过MapperFactoryBean创建出来。需要执行接口类全称和SqlSession工厂bean的引用。

Xml代码
  1. <!-- 导入属性配置文件 -->  
  2. <context:property-placeholder location="classpath:mysql.properties" />  
  3.   
  4. <bean id=color: #0000ff; padding:
    分享到:
    评论

相关推荐

    Spring+springMVC+mybaits+layui+bootstrap+mysql+oracle

    标题 "Spring+SpringMVC+Mybaits+layui+bootstrap+mysql+oracle" 提供的信息表明,这是一个基于Java的Web开发框架集成方案,用于构建高效、稳定的企业级应用。下面将详细阐述这些技术栈的核心概念及其在实际开发中的...

    Springboot+mybaits+mysql+redis+nginx,仓库管理系统。毕业设计

    "Springboot+mybaits+mysql+redis+nginx,仓库管理系统。毕业设计" 这个标题揭示了这个项目的核心技术栈和应用领域。它表明了一个基于Spring Boot框架的仓库管理系统,该系统集成了MyBatis作为持久层框架,MySQL作为...

    maven+spring MVC+Mybatis+jetty+mysql

    "maven+spring MVC+Mybatis+jetty+mysql" 的组合是常见的开发栈,它涵盖了项目管理、前端控制器、持久层操作、应用服务器以及数据库管理等多个层面。下面将详细介绍这些关键技术及其在实际应用中的作用。 1. Maven...

    SpringMVC+Mybaits+Spring+MySQL实现登录注册Demo

    **SpringMVC、MyBatis、Spring 和 MySQL 框架简介** SpringMVC 是 Spring 框架的一部分,主要用于构建 Web 应用程序。它提供了模型-视图-控制器(MVC)架构,帮助开发者将业务逻辑、数据展示和用户交互分离,使代码...

    springboot+mybaits+html+mysql简单demo

    - 配置MyBatis的`mybatis-spring-boot-starter`依赖。 - 创建`mybatis-config.xml`配置文件,设置数据源和事务管理器。 - 定义Mapper接口和对应的XML文件,编写SQL语句。 5. **HTML基础** - HTML(HyperText ...

    Springmvc+mybaits+mysql的Demo源码

    通过这个Demo,你可以学习到如何设置项目结构,如何配置SpringMVC、MyBatis和MySQL,以及如何在实际开发中进行业务处理和数据交互。对于初学者来说,这是一个很好的实践平台,能够帮助理解和掌握这些技术的核心概念...

    基于jsp+mysql+Spring+mybatis的SSM学生管理系统

    运行环境: 最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 IDE环境: Eclipse,Myeclipse,IDEA都可以 tomcat环境: Tomcat 9.0...用了技术框架: HTML+CSS+JavaScript+jsp+mysql+Spring+mybatis

    maven+spring mvc+mybaits+mysql

    【标题】"maven+spring mvc+mybaits+mysql"是一个常见的Java Web开发框架组合,用于构建高效、可维护的Web应用程序。这个项目利用了Maven作为构建工具,Spring MVC作为控制器层,MyBatis作为数据访问层,以及MySQL...

    Java+Springboot+Mybatis+Mysql+Bootstrap+Maven实现网上商城系统

    本项目是一个基于Java技术栈,使用SpringBoot、Mybatis、MySQL数据库、Bootstrap前端框架和Maven构建工具实现的网上商城系统。以下将详细介绍这个系统的关键技术及其应用。 **1. Java**: 作为后端开发的主要语言,...

    springboot+security+jwt+mybaits-plus+mysql实现权限管理

    在本项目中,我们主要探讨的是如何利用Spring Boot、Spring Security、JWT(JSON Web Tokens)、MyBatis-Plus以及MySQL数据库来构建一个完整的权限管理系统。下面将详细解析这些技术及其在项目中的应用。 1. Spring...

    spingboot+mybaits+mysql web后台demo

    这是一个基于现代化技术栈的Web后台开发示例,主要采用了Spring Boot、MyBatis以及MySQL数据库,结合前端Vue.js和axios库。以下将详细介绍这个项目中涉及的关键技术点和它们的作用。 1. **Spring Boot**: Spring ...

    spring+springmvc+mybaits+mysql+jqeury 非maven 项目

    本项目使用了如下几个框架spring4+springmvc+mybatis+mysql+jquery+jdk1.6+tomcat6 搭建。项目没有使用maven 管理,目的是方便大家学习使用。项目中已经实现了curd .具体可以看代码

    springboot + mybatis +mysql+ sqlserver 双数据源

    本项目"springboot + mybatis +mysql+ sqlserver 双数据源"正是针对这种需求的一个解决方案,它利用SpringBoot框架、MyBatis持久层框架以及MySQL和SQLServer两种数据库,实现了数据源的自动切换,以满足不同业务场景...

    java springboot+mybaits+mysql的websocket即时通讯聊天demo,支持单对单发送,群发

    综上所述,"java springboot+mybaits+mysql的websocket即时通讯聊天demo"是一个综合性的项目,涵盖了后端服务的构建、数据库设计、WebSocket通信以及前端交互等多个方面。通过这个项目,开发者可以学习到如何在实际...

    springmvc+shiro+mybaits+mysql

    标题 "springmvc+shiro+mybaits+mysql" 暗示了这是一个基于Spring MVC、Apache Shiro、MyBatis以及MySQL数据库构建的权限管理系统的实现。下面将详细阐述这些技术栈及其在系统中的作用。 Spring MVC是Spring框架的...

    基于SpringBoot+Mybaits+Mysql的用户管理项目

    【标题】"基于SpringBoot+Mybaits+Mysql的用户管理项目" 是一个使用了现代Java开发框架的简易用户管理系统。这个系统的核心是利用SpringBoot的便捷性、Mybatis的灵活性以及Mysql的稳定性来构建一个高效且易于维护的...

    springmvc+mybaits+mysql(含数据库文件,可运行)

    Spring MVC、MyBatis 和 MySQL 是企业级 Web 开发中常用的三大技术栈,它们共同构建了一个功能强大的后端系统。Spring MVC 是 Spring 框架的一部分,负责处理 HTTP 请求和响应,提供了一种模型-视图-控制器的架构...

    springboot+mybatis+mysql+layUI+thymeleaf实现增删改查

    在本项目中,我们利用了SpringBoot、MyBatis、MySQL、LayUI和Thymeleaf这五种核心技术,构建了一个完整的Web应用程序,实现了学生信息管理系统的增删改查功能。下面将对这些技术及其在项目中的应用进行详细解释。 *...

    Maven+Spring+SpringMVC+Shiro+Mybatis+MYSQL

    battcn管理系统,集成最新技术框架,以最通用性,稳定性,快速性开发系统,最新技术 springMVC4.2.2统+spring4.2.2+,mybaits3.2.8+MySQL5.6,采用Shiro做权限控制,前端最新流行的技术,这是一个属于大家

    springboot+mybaits+mysql,竞拍拍卖系统

    本文将详细讲解一个使用SpringBoot、MyBatis和MySQL技术栈构建的竞拍拍卖系统,这是一套完整的毕业设计项目,具有良好的可运行性和实用性。 一、SpringBoot简介 SpringBoot是由Pivotal团队提供的全新框架,旨在简化...

Global site tag (gtag.js) - Google Analytics