`

Java Mybatis

    博客分类:
  • Java
阅读更多
ORM这个词对于很多做J2EE开发的人来讲,并不陌生,如Hibernate,但是在使用Hibernate时,你会有一个很大的感受是什么呢?那就是关联映射这个东东不太好弄,还有级联的设置,导致在公司中,其实很用Hibernate并不是太多,所以才有Mybatis这个半ORM框架,何为半ORM框架,就是它一半是使用sql来写的,但是最终的结果是对象,这个神奇吧。而且不像网上一大堆例子,Mybatis中写了一些resutlMap之类的东东,其实,只要你sql写对了,直接可以用在Mybatis上面,根本不用写其它的内容。下面以一个例子来讲解关联的例子,我有学生表(student)和课程表(course)。

1.实体类
Student.java:对应于数据库表的实体类
public class Student {
	private int id;
	private String student_name;
	private int course_id;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}	
	public String getStudent_name() {
		return student_name;
	}
	public void setStudent_name(String student_name) {
		this.student_name = student_name;
	}
	public int getCourse_id() {
		return course_id;
	}
	public void setCourse_id(int course_id) {
		this.course_id = course_id;
	}
	@Override
	public String toString() {
		// TODO Auto-generated method stub
		return this.id+","+this.student_name+","+this.course_id;
	}
}



Course.java:对应数据库表的实体类
public class Course {
	private int id;
	private String course_name;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getCourse_name() {
		return course_name;
	}
	public void setCourse_name(String course_name) {
		this.course_name = course_name;
	}
	@Override
	public String toString() {
		// TODO Auto-generated method stub
		return this.id+","+this.course_name;
	}
}


SC.java:对应于一个关联查询结果类,在后面的查询语句中体现出来
public class SC {
    private int id;
    private String student_name;
    private String course_name;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getStudent_name() {
		return student_name;
	}
	public void setStudent_name(String student_name) {
		this.student_name = student_name;
	}
	public String getCourse_name() {
		return course_name;
	}
	public void setCourse_name(String course_name) {
		this.course_name = course_name;
	}
    @Override
    public String toString() {
    	// TODO Auto-generated method stub
    	return this.student_name+","+this.course_name;
    }
}


2.conf.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>
     <environments default="development">
         <environment id="development">
              <transactionManager type="JDBC" />
              <!-- 配置数据库连接信息 -->
              <dataSource type="POOLED">
                  <property name="driver" value="com.mysql.jdbc.Driver" />
                 <property name="url" value="jdbc:mysql://localhost:3306/gaofulai" />
                 <property name="username" value="root" />
                 <property name="password" value="root" />
             </dataSource>
         </environment>
     </environments>

    <mappers>
         <!-- 注册userMapper.xml文件, 
         userMapper.xml位于me.gacl.mapping这个包下,所以resource写成me/gacl/mapping/userMapper.xml-->
         <mapper resource="com/mapper/studentMapper.xml"/>
         <mapper resource="com/mapper/courseMapper.xml"/>
     </mappers>     
 </configuration>


3.studentMapper.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">
<mapper namespace="com.mapper.studentMapper">
     <select id="getStudent" parameterType="int" 
        resultType="com.domain.Student">
         select * from student where id=#{id}
     </select>
     
     <select id="getStudentAndCourse" parameterType="int"
         resultType="com.domain.SC">
           select s.id, s.student_name, c.course_name  from student s, course c where s.course_id=c.id and s.id=#{id}
     </select>   
 </mapper>


4.测试
public class Test {
	public static void main(String args[]){
        String resource = "conf.xml";
        InputStream is = Test.class.getClassLoader().getResourceAsStream(resource);
        //构建sqlSession的工厂
        SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
      
        SqlSession session = sessionFactory.openSession();
        String statement = "com.mapper.studentMapper.getStudentAndCourse";//映射sql的标识字符串
        //执行查询返回一个唯一学生-课程对象的sql
        SC sc = session.selectOne(statement, 1000);
        System.out.println(sc);	
	}
}
分享到:
评论

相关推荐

    狂神说java MyBatis 笔记

    【狂神说java MyBatis 笔记】 MyBatis 是一个优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解...

    Java Mybatis Generator 自动根据数据库注释添加Entity的Swagger注释

    1. Java Mybatis Generator, 自动根据数据库字段的注释,把注释的内容放到Entity的Swagger注释@ApiModel 和 @ApiModelProperty中 2. 如果碰到Mybatis xml文件格式错误,请到...

    java mybatis.jar包

    MyBatis是一个优秀的Java持久层框架,它支持定制化SQL、存储过程以及高级映射。MyBatis避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。MyBatis可以使用简单的XML或注解进行配置和原始映射,将接口和Java的...

    Java Mybatis Maven多线程处理百万数据修改的小工具项目

    本项目"Java Mybatis Maven多线程处理百万数据修改的小工具"正是为了解决这样的问题而设计的。它利用Mybatis作为持久层框架,结合Java的多线程特性,实现了对大量数据进行高效修改的功能。 Mybatis是Java领域广泛...

    JAVA MyBatis框架 特点 发展 动态SQL

    JAVA MyBatis框架特点发展动态SQL MyBatis框架是基于Java的持久层框架,提供了SQL Maps和Data Access Objects(DAOs)来简化数据库访问的代码。MyBatis框架的发展历史可以追溯到2004年左右,当时它还是一个名为...

    Java mybatis - 实践学习案例.zip

    在Java开发领域,MyBatis是一个非常流行的持久层框架,它允许开发者将SQL语句直接集成到Java代码中,提供了一种更为灵活的数据库访问方式。这个"Java MyBatis - 实践学习案例.zip"文件显然包含了一系列关于如何使用...

    java MyBatis Plus b站黑马自学笔记

    Java MyBatis Plus 是一个基于 Java 的 MyBatis 框架扩展,它为开发者提供了更方便的数据操作接口和实体注解,简化了原本 MyBatis 的繁琐配置,提升了开发效率。这个自学笔记主要涵盖了 MyBatis Plus 的基础概念、...

    Java医院预约挂号系统源码+数据库,基于Java Mybatis 框架

    Java医院预约挂号系统源码+数据库,基于Java Mybatis 框架 医院预约挂号系统是一种基于互联网的新型挂号系统。 用户可以在网上预约医院的专家门诊,免受排队之苦。 通过它简化就医环节,节约就医时间,提高就诊体验

    java MyBatis基础教程,一二级缓存.zip

    java MyBatis基础教程,一二级缓存.zip

    javaSwing+mybatis 简单的学生管理系统

    JavaSwing+MyBatis简单学生管理系统是一款基于Java桌面应用技术与持久层框架MyBatis构建的信息管理软件。这个系统的主要目标是实现对学生信息的有效存储、检索和管理,适用于教育机构或个人学习使用。开发环境为Java...

    基于MyBatis-Plus的Java MyBatis-Plus Samples设计源码

    本项目为基于MyBatis-Plus框架的Java代码示例,共计包含342个文件,其中包含204个Java源文件、50个SQL脚本、46个XML配置文件、27个YAML文件、5个属性文件、5个Markdown文件和1个Git忽略文件。该源码旨在提供MyBatis-...

    java开发中使用mybatis框架需要用到的独立jar包,

    java开发中使用mybatis框架需要用到的独立jar包,java开发中使用mybatis框架需要用到的独立jar包,java开发中使用mybatis框架需要用到的独立jar包,java开发中使用mybatis框架需要用到的独立jar包,

    java-mybatis

    MyBatis 是一款深受开发者喜爱的 Java 持久层框架,它简化了数据库操作,使得开发者能够更专注于 SQL 查询的编写,同时提供了强大的映射功能,将 SQL 语句与 Java 代码分离,增强了代码的可维护性。在本文中,我们将...

    Java MyBatis 实践学习案例.zip

    在IT行业中,MyBatis是一个广泛使用的持久层框架,它为Java开发者提供了强大的SQL映射功能,使得数据库操作更加便捷高效。本实践学习案例将深入探讨MyBatis的基本概念、核心特性以及如何与Java应用程序集成。 ...

    java后端+mybatis-plus自动生成+xmlmapper模板+新增修改

    用mybatis-plus的自动生成器,我们一般只用到entity和mapperXML,其他mapper接口和service类都要自己写。 可以下载之后,根据自己表生成mapperXML,然后用全局替换来修改一些细节。

    javaMybatis个人整理(印象笔记导入即可)

    Mybatis 是一个优秀的基于 Java 的持久层框架,它内部封装了 Jdbc,使开发者只需要关注 sql 语句本身,而不需要花费精力去处理加载驱动、创建连接、创建 statement 等繁杂的过程。Mybatis 通过 xml 或注解的方式将要...

    Java Mybatis 学习路线.pdf

    Mybatis是Java中广泛使用的持久层框架,它源自Apache的开源项目iBatis,在2010年由Apache Software Foundation迁移到Google Code,并更名为MyBatis。此后,MyBatis在2013年11月迁移到了Github。Mybatis主要负责封装...

    MyBatis执行SQL并将结果映射成Java对象.docx

    MyBatis是一个流行的Java持久层框架,它简化了与数据库之间的交互,允许开发者将SQL查询直接映射到Java对象。这个文档主要介绍了MyBatis框架的核心概念和基本使用步骤。 首先,MyBatis的配置文件分为两个部分:全局...

    java开发之mybatis实战教程.zip

    《Java开发之MyBatis实战教程》是一份深入解析MyBatis框架的综合教程,旨在帮助Java开发者更好地理解和运用MyBatis进行实际项目开发。MyBatis是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射,避免...

    mybatis代码生成器,Java实体类生成器

    MyBatis代码生成器是一款强大的开发工具,专为Java开发者设计,用于自动化生成MyBatis相关的Java实体类、Mapper接口及XML配置文件。这个工具极大地提高了开发效率,减少了手动编写这些重复性工作的时间,使开发者能...

Global site tag (gtag.js) - Google Analytics