项目目录如上所示。
图3:这个是myBatisconfig.xml的配置,在这里定义了两个别名,Student和Teacher会在StudentMapper.xml中用到。中间是JDBC的配置,下面是mapper映射配置,StudentMapper.xml配置包含了下面两幅图的内容,只是部分的。
图1 result 里面的property属性对应的是实体类的set属性,column对应的是数据库结果集字段。这里用到了association联合查询。结果集是teacherMap,property="teacher",对应在student类中需要维护一个teacher对象,并提供get,set
图2 这里解释下parameterType的意思,是解释的参数类型。可以是Object,也可以是基本数据类型。一些复杂的数据类型在这里就不说了。返回值类型:如果没有返回值,可以不写。有返回值,有两种,1:resultType:实际的类型,如整型:java.lang.Integer,字符串型:java.lang.String,或者是实体类,要包含全路径名,第二种是resultMap:在这里引用了studentResultMap,图1中定义的resultMap。
虽然一直在用mybatis,但是都是些比较简单的。没有深入的去了解,里面好多东西都不太知道他们的意思。今天就对他的一些东西做些了解。
package com.demo;
import java.io.InputStream;
import java.io.Reader;
import org.apache.ibatis.builder.xml.XMLConfigBuilder;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.Configuration;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.defaults.DefaultSqlSessionFactory;
import com.abc.entity.Student;
public class Test {
private static SqlSessionFactory sqlSessionFactory;
private static Reader reader;
private static String resources="resources/myBatisconfig.xml"; //这个是要读取的mybatis配置文件
static {
try {
//通过SqlSessionFactoryBuilder里面有多个方法得到SqlSessionFactory
//得到的这个SqlSessionFactory其实是new DefaultSqlSessionFactory(config);
reader = Resources.getResourceAsReader(resources);
//sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader); 这里builder的build方法是源码自带的,实际和下面的方法调用一样(源码中也是这么调用的)
sqlSessionFactory = build(Resources.getResourceAsStream(resources)); //这个是本地的方法,其实和源码是一样的
} catch (Exception e) {
}
}
public static SqlSessionFactory getSqlSessionFactory() {
return sqlSessionFactory;
}
public static void main(String[] args) {
SqlSession session = sqlSessionFactory.openSession();//得到一个SqlSession
try {
Student student = (Student) session.selectOne("com.abc.service.StudentService.queryById", 130); //这里的查询语句对应的是图1和图2,在图2中实际的sql语句是注释里面的语句,没有注释的是联合查询的语句。
System.out.println(student.getName());
} finally {
session.close();
}
}
public static SqlSessionFactory build(InputStream inputStream){
XMLConfigBuilder parser = new XMLConfigBuilder(inputStream, null, null);
return build(parser.parse());
}
public static SqlSessionFactory build(Configuration config) {
return new DefaultSqlSessionFactory(config);
}
}
这个类要完成的工作是1:通过Resources加载mybatis的xml配置文件得到一个Reader或者是Stream。
2:SqlSessionFactoryBuilder.build(..)方法得到SqlSessionFactory,他返回的是DefaultSqlSessionFactory,他的构造函数需要Configuration参数,这个参数在 parser.parse()得到了。
相关推荐
mybatis练习3mybatis练习3mybatis练习3mybatis练习3mybatis练习3mybatis练习3mybatis练习3mybatis练习3mybatis练习3mybatis练习3mybatis练习3mybatis练习3mybatis练习3mybatis练习3mybatis练习3mybatis练习3mybatis...
在这个"Mybatis项目练习及流程文档"中,我们将探讨MyBatis的核心概念和关键步骤,帮助你深入理解和应用这个强大的框架。 1. **MyBatis安装与配置**: - 首先,你需要在项目中引入MyBatis的jar包或者通过Maven或...
SpringBoot和MyBatis是Java开发中常用的两个框架,它们结合使用可以快速构建高效、简洁的Web应用。SpringBoot简化了Spring应用的初始搭建以及开发过程,而MyBatis则是一个优秀的持久层框架,它支持定制化SQL、存储...
通过这个入门小练习,你可以熟悉 MyBatis 的基本使用,理解其核心概念,并能动手实践,为后续更复杂的项目打下坚实的基础。在实践中,不断探索 MyBatis 的高级特性,如动态 SQL、缓存、插件等,将有助于提升你的开发...
这个"mybatis框架练习"资源显然是为初学者设计的,旨在帮助他们更好地理解和掌握Mybatis的基本用法。 首先,Mybatis的核心是SQL映射文件,它是XML格式的,包含了数据库操作的SQL语句。在映射文件中,你可以定义插入...
在本测试练习项目中,我们将深入理解MyBatis的核心功能和常见操作,如增删改查(CRUD)以及级联查询。项目采用的是MyBatis的v3.2.2版本。 首先,`test.sql`文件通常是数据库初始化脚本,用于创建测试用的表结构和...
MyBatis 案例练习 SQL
在这个"Mybatis-Plus练习案例"中,我们可以深入学习和掌握多个关键功能和概念。 首先,快速入门是了解任何技术的第一步。Mybatis-Plus提供了简单易用的配置和快速初始化方法,使得开发者能快速建立数据库连接并进行...
在"Mybatis练习"这个主题中,我们可以深入探讨以下几个关键知识点: 1. **MyBatis简介**:MyBatis由Google Code发起,后来移交给GitHub,由社区维护。它的核心功能是SQL映射,旨在简化数据库操作,提高开发效率。...
【标题】"狂神说mybatis-29道题源码(练习项目,解压在开发工具中打开即可)" 涉及到的是一个MyBatis学习资源,它包含了解答29个问题的源代码,是JavaEE开发中一个实践性的练习项目。通过这个项目,开发者可以深入理解...
在这个"MyBatis练习"项目中,你可能会遇到以下一些关键知识点: 1. **XML配置文件**:在MyBatis中,XML配置文件用于定义SQL映射语句,包括增删改查(CRUD)操作。通过`<mapper>`标签定义映射器,`<select>`、`...
Spring_mybatis的小整合练习,可以测试着在线学习一下!
在这个“最小依赖jar不集成spring”的自学练习版本中,我们将专注于Mybatis的核心功能,不涉及与Spring框架的整合。 首先,让我们了解Mybatis的基本构成: 1. **Mybatis核心Jar**:这个版本包含Mybatis框架的核心...
在提供的"mybatis 练习源码"中,我们可以预期找到一系列用于学习和实践 MyBatis 框架的代码示例。这些源码通常包括以下部分: 1. **配置文件**:MyBatis 的核心配置文件(mybatis-config.xml)会定义数据源、事务...
这个"Mybatis-plus练习Demo"项目,显然是为了帮助开发者更好地理解和运用Mybatis-plus,通过实际操作来学习其核心特性。 Mybatis-plus的主要特点包括: 1. **自动CRUD操作**:Mybatis-plus提供了便捷的增删改查...
在这个“Mybatis关联练习”中,我们将深入探讨Mybatis中的一对一、一对多和多对一关系映射,以及如何通过接口实现数据查询,并结合分页插件提高查询效率。 首先,我们来看一下Mybatis中的一对一关联。一对一关系...
手写MyBatis的练习是提升对MyBatis理解的好方法。首先,你需要理解MyBatis的主要功能,如动态SQL、参数映射、结果映射等。然后,尝试模仿MyBatis的架构设计,包括创建一个简单的SqlSession接口和实现,以及一个基本...
在本练习代码中,你将深入理解MyBatis的基本概念和核心功能,包括动态SQL、反向工程、数据库操作等。 首先,让我们从MyBatis的基础知识开始。MyBatis消除了几乎所有的JDBC代码和手动设置参数,使开发者能够专注于...
下面我们将深入探讨如何将Spring与MyBatis进行整合,并构建一个可运行的小项目。 1. **Spring框架**:Spring是Java应用开发的一个全功能框架,它提供了IoC(Inversion of Control)和AOP(Aspect-Oriented ...