`
a942010
  • 浏览: 1547 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

mybatis小练习

 
阅读更多

 

 项目目录如上所示。

 

图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()得到了。

  • 大小: 148 KB
  • 大小: 26.6 KB
  • 大小: 382.6 KB
  • 大小: 64 KB
分享到:
评论

相关推荐

    mybatis练习3mybatis练习3mybatis练习3mybatis练习3

    mybatis练习3mybatis练习3mybatis练习3mybatis练习3mybatis练习3mybatis练习3mybatis练习3mybatis练习3mybatis练习3mybatis练习3mybatis练习3mybatis练习3mybatis练习3mybatis练习3mybatis练习3mybatis练习3mybatis...

    mybatis项目练习及流程文档

    在这个"Mybatis项目练习及流程文档"中,我们将探讨MyBatis的核心概念和关键步骤,帮助你深入理解和应用这个强大的框架。 1. **MyBatis安装与配置**: - 首先,你需要在项目中引入MyBatis的jar包或者通过Maven或...

    springboot-mybatis项目练习

    SpringBoot和MyBatis是Java开发中常用的两个框架,它们结合使用可以快速构建高效、简洁的Web应用。SpringBoot简化了Spring应用的初始搭建以及开发过程,而MyBatis则是一个优秀的持久层框架,它支持定制化SQL、存储...

    mybatis3--1.入门小练习

    通过这个入门小练习,你可以熟悉 MyBatis 的基本使用,理解其核心概念,并能动手实践,为后续更复杂的项目打下坚实的基础。在实践中,不断探索 MyBatis 的高级特性,如动态 SQL、缓存、插件等,将有助于提升你的开发...

    mybatis框架练习

    这个"mybatis框架练习"资源显然是为初学者设计的,旨在帮助他们更好地理解和掌握Mybatis的基本用法。 首先,Mybatis的核心是SQL映射文件,它是XML格式的,包含了数据库操作的SQL语句。在映射文件中,你可以定义插入...

    mybatis 测试练习项目

    在本测试练习项目中,我们将深入理解MyBatis的核心功能和常见操作,如增删改查(CRUD)以及级联查询。项目采用的是MyBatis的v3.2.2版本。 首先,`test.sql`文件通常是数据库初始化脚本,用于创建测试用的表结构和...

    MyBatis 案例练习 SQL

    MyBatis 案例练习 SQL

    Mybatis-Plus练习案例

    在这个"Mybatis-Plus练习案例"中,我们可以深入学习和掌握多个关键功能和概念。 首先,快速入门是了解任何技术的第一步。Mybatis-Plus提供了简单易用的配置和快速初始化方法,使得开发者能快速建立数据库连接并进行...

    mybatis练习

    在"Mybatis练习"这个主题中,我们可以深入探讨以下几个关键知识点: 1. **MyBatis简介**:MyBatis由Google Code发起,后来移交给GitHub,由社区维护。它的核心功能是SQL映射,旨在简化数据库操作,提高开发效率。...

    狂神说mybatis-29道题源码(练习项目,解压在开发工具中打开即可)

    【标题】"狂神说mybatis-29道题源码(练习项目,解压在开发工具中打开即可)" 涉及到的是一个MyBatis学习资源,它包含了解答29个问题的源代码,是JavaEE开发中一个实践性的练习项目。通过这个项目,开发者可以深入理解...

    MyBatis练习

    在这个"MyBatis练习"项目中,你可能会遇到以下一些关键知识点: 1. **XML配置文件**:在MyBatis中,XML配置文件用于定义SQL映射语句,包括增删改查(CRUD)操作。通过`<mapper>`标签定义映射器,`<select>`、`...

    Spring_mybatis整合练习

    Spring_mybatis的小整合练习,可以测试着在线学习一下!

    MyBatis框架练习,sql数据准备

    MyBatis框架练习,sql数据准备

    Mybatis 最小依赖jar 不集成spring 自学练习版本

    在这个“最小依赖jar不集成spring”的自学练习版本中,我们将专注于Mybatis的核心功能,不涉及与Spring框架的整合。 首先,让我们了解Mybatis的基本构成: 1. **Mybatis核心Jar**:这个版本包含Mybatis框架的核心...

    mybatis 练习源码(供自己练习使用)并非原创

    在提供的"mybatis 练习源码"中,我们可以预期找到一系列用于学习和实践 MyBatis 框架的代码示例。这些源码通常包括以下部分: 1. **配置文件**:MyBatis 的核心配置文件(mybatis-config.xml)会定义数据源、事务...

    Mybatis-plus练习Demo

    这个"Mybatis-plus练习Demo"项目,显然是为了帮助开发者更好地理解和运用Mybatis-plus,通过实际操作来学习其核心特性。 Mybatis-plus的主要特点包括: 1. **自动CRUD操作**:Mybatis-plus提供了便捷的增删改查...

    Mybatis关联练习

    在这个“Mybatis关联练习”中,我们将深入探讨Mybatis中的一对一、一对多和多对一关系映射,以及如何通过接口实现数据查询,并结合分页插件提高查询效率。 首先,我们来看一下Mybatis中的一对一关联。一对一关系...

    mybatis源码+练习代码+手写练习

    手写MyBatis的练习是提升对MyBatis理解的好方法。首先,你需要理解MyBatis的主要功能,如动态SQL、参数映射、结果映射等。然后,尝试模仿MyBatis的架构设计,包括创建一个简单的SqlSession接口和实现,以及一个基本...

    mybatis练习代码.zip

    在本练习代码中,你将深入理解MyBatis的基本概念和核心功能,包括动态SQL、反向工程、数据库操作等。 首先,让我们从MyBatis的基础知识开始。MyBatis消除了几乎所有的JDBC代码和手动设置参数,使开发者能够专注于...

Global site tag (gtag.js) - Google Analytics