`
jaesonchen
  • 浏览: 309952 次
  • 来自: ...
社区版块
存档分类
最新评论

mybatis dao 和 映射xml

 
阅读更多
<!DOCTYPE mapper
    PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
    "http://mybatis.org/dtd/mybatis-3-mapper.dtd">

<mapper namespace="com.jaeson.mybatis.dao.StudentMapper">

	<resultMap type="com.jaeson.mybatis.model.Student" id="studentmap">
		<id column="student_id" property="id"/>
		<result column="student_name" property="name"/>
		<result column="student_sex" property="sex"/>
		<association property="clazz" javaType="com.jaeson.mybatis.model.Clazz">
			<id property="id" column="clazz_id"/>
			<result property="name" column="clazz_name"/>
		</association>
	</resultMap>
	
	<sql id="Base_Column_List" >
		s.id 	as student_id,
		s.name 	as student_name,
		s.sex	as student_sex,
		s.clazz_id	as student_clazz,
		c.id	as clazz_id,
		c.name	as clazz_name
	</sql>
	
	<select id="getStudent" parameterType="java.lang.String" resultMap="studentmap">
		select 
		<include refid="Base_Column_List" />
		from student s 
			left outer join clazz c on s.clazz_id=c.id 
		where s.id=#{id}
	</select>
	
	<select id="getAll" resultMap="studentmap">
		select 
		<include refid="Base_Column_List" />
		from student s 
			left outer join clazz c on s.clazz_id=c.id 
	</select>
	
	<insert id="save" parameterType="com.jaeson.mybatis.model.Student" >
	    insert into student
	    <trim prefix="(" suffix=")" suffixOverrides="," >
	    	<if test="1==1" >
	    		id,
	    	</if>
	    	<if test="1==1" >
	    		name,
	    	</if>
	    	<if test="1==1" >
	    		sex,
	    	</if>
	    	<if test="clazz!=null" >
	    		clazz_id,
	    	</if>
		</trim>
		<trim prefix="values (" suffix=")" suffixOverrides="," >
			<if test="1==1" >
	    		#{id},
	    	</if>
	    	<if test="1==1" >
	    		#{name},
	    	</if>
	    	<if test="1==1" >
	    		#{sex},
	    	</if>
	    	<if test="clazz!=null" >
	    		#{clazz.id},
	    	</if>
	    </trim>
	</insert>
	
	<update id="update" parameterType="com.jaeson.mybatis.model.Student">
	    update student set 
	    	name=#{name}, 
	    	sex=#{sex}
	    	<if test="clazz!=null" >
	    		,clazz_id=#{clazz.id} 
	    	</if>
	    where id=#{id}
	</update>
	
	<delete id="delete" parameterType="java.lang.String">
	    delete from student where id=#{id}
	</delete>
</mapper>

 

package com.jaeson.mybatis.dao;

import java.util.List;

import com.jaeson.mybatis.model.Student;

public interface StudentMapper {

	public int save(Student student);
	public int update(Student student);
	public int delete(String id);
	public Student getStudent(String id);
	public List<Student> getAll();
}

 

package com.jaeson.mybatis.service.impl;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
//import org.springframework.transaction.annotation.Transactional;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.jaeson.mybatis.model.Student;
import com.jaeson.mybatis.service.StudentService;
import com.jaeson.mybatis.dao.StudentMapper;

@Service
public class StudentServiceImpl implements StudentService {

	private static final Logger logger = LoggerFactory.getLogger(StudentServiceImpl.class);
	
	@Autowired
	private StudentMapper mapper;
	
	@Override
	public int save(Student student) {
		logger.info("save student(id={}, name={})", student.getId(), student.getName());
		return mapper.save(student);
	}

	@Override
	public int update(Student student) {
		
		logger.info("update student(id={}, name={})", student.getId(), student.getName());
		return mapper.update(student);
	}

	@Override
	public int delete(String id) {
		
		logger.info("delete student(id={})", id);
		return mapper.delete(id);
	}

	@Override
	public Student getStudent(String id) {
		
		logger.info("get student(id={})", id);
		return mapper.getStudent(id);
	}

	@Override
	public List<Student> getAll() {
		
		logger.info("getAll()");
		return mapper.getAll();
	}

}

 

 

分享到:
评论

相关推荐

    springboot+mybatis(mybatis dao与xml文件自动生成)

    在Spring Boot和MyBatis框架集成的开发过程中,自动化生成DAO层接口与对应的XML配置文件可以极大地提高开发效率。下面将详细介绍如何实现这一功能,并深入探讨相关知识点。 首先,Spring Boot是一个快速开发框架,...

    mybatis映射文件xml+bean+dao自动构建

    MyBatis允许开发者定义DAO接口,并通过MyBatis的Mapper接口和XML映射文件实现具体的数据库操作。 当我们谈论“mybatis映射文件xml+bean+dao自动构建”时,我们是指使用代码生成工具来自动化创建这些组件的过程。...

    mybatisDAO层自动生成插件

    - **DAO接口**:生成的DAO接口将包含增删改查等基本操作,方法名根据CRUD规则自动映射。 - **Mapper XML文件**:每个接口对应一个Mapper XML文件,其中包含具体的SQL语句,可以是简单的查询,也可以是复杂的JOIN...

    mybatis_xml关联插件

    在Eclipse这样的集成开发环境中,为了提高开发效率,我们可以配置Mybatis的插件,使得在编写Java代码时可以直接通过方法跳转到对应的XML映射文件中,方便进行调试和修改。 首先,我们需要安装Mybatis的Eclipse插件...

    mybatis dao xml 代码生成工具

    MyBatis DAO XML 代码生成工具是一款高效实用的开发辅助软件,主要针对MyBatis框架,帮助开发者自动生成DAO(Data Access Object)层和对应的XML映射文件。使用这款工具,开发者无需手动编写大量重复的SQL操作代码,...

    Mybatis_dao.rar_mybatis dao_mybatis_dao.rar

    MybatisDAO是一个基于Java的持久层框架,它与Struts2、Spring3.0和MySQL数据库相结合,构建了一个高效、灵活的数据访问层。这个压缩包文件"**Mybatis_dao.rar_mybatis_dao_mybatis_dao.rar**"包含了实现这个集成项目...

    mybatis自动生成dao, model, mapper xml文件

    MyBatis Generator基于XML配置文件和Java API,通过解析数据库表结构,能够自动化地生成JavaBean(对应Model层)、Mapper接口(对应DAO层)以及Mapper XML文件。这样,开发者只需要关注业务逻辑,而无需过多地关心...

    Mybatis通用DAO设计封装(mybatis)

    Mybatis使用`SqlSession`和`MapperFactoryBean`来创建Mapper对象的代理,调用DAO方法时,实际上执行的是动态生成的SQL。 5. **事务管理**: 在服务层(Service)处理事务,通过`TransactionTemplate`或者`...

    mybatis映射生成工具

    当配置完成并导入数据库表结构后,MyBatis映射生成工具会自动根据表信息生成对应的DAO接口、实现类以及Bean类和XML映射文件。这样,开发者就无需手动编写这些基础代码,可以更专注于业务逻辑的实现。 总之,...

    用java程序生成mybatis的mapper.xml和mapper.java文件

    总的来说,通过Java程序逆向生成Mybatis的mapper.xml和mapper.java文件,能够帮助开发者快速构建数据访问层,减少手动编写SQL和映射的工作量,提高开发效率。但要注意,逆向生成的代码可能需要根据实际业务进行调整...

    mybatis表实体映射代码

    在本主题中,我们将深入探讨MyBatis中的表实体映射代码,以及如何利用MyBatis Generator自动生成DAO、Model和Mapper.xml文件。 首先,理解表实体映射是MyBatis的核心概念之一。实体类(Entity Class)是Java对象,...

    自动生成Mybatis 实体类、DaoMapper、XML可视化界面工具

    - 这款工具提供了一个图形用户界面(GUI),使得开发者可以通过界面操作来生成Mybatis所需的组件,避免手动编写XML和Java代码。它可以直观地展示数据库表结构,方便选择要生成的实体类、Mapper接口和XML文件。 - ...

    idea的mybatis插件支持从dao到maper

    MyBatis可以使用简单的XML或注解进行配置和原始映射,将接口和Java的POJOs(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。 Idea的Mybatis插件正是为了进一步优化MyBatis在Idea中的开发体验而设计...

    mybatis自动生成dao pojo xml文件工具(mysql)

    MyBatis Generator(MBG)是一个强大的工具,用于自动生成MyBatis的DAO层、POJO对象和XML映射文件。这个工具极大地简化了开发工作,尤其是处理与数据库交互的代码时,它能够根据数据库表结构自动创建相应的Java类和...

    MyBatis自动生成mapper.xml工具

    mybatis使用虽然灵活简单,但mapper.xml的配置却很繁琐。如果项目的实体表比较多,手工配置是不现实的。这个工具可以帮助自动后成model,dao,mapper.xml 使开发者从繁琐的mapper.xml映射中解放出来,把更多的精力投入...

    mybatis生成对应的dao/model/mapper

    MyBatis Generator(MBG)是一个强大的工具,用于自动生成MyBatis的DAO层、Model层和Mapper XML文件。这个工具极大地简化了开发过程,减少了手动编写这些常见代码的工作量,提高了开发效率。下面我们将详细探讨...

    mybatis基于Dao的crud操作源码

    本项目是基于Mybatis进行DAO(Data Access Object)层的CRUD(Create、Read、Update、Delete)操作的源码实现,结合了Spring框架,便于管理和集成事务。 在Mybatis中,CRUD操作主要通过Mapper接口和对应的XML配置...

    mybatis_01 入门配置 Dao的两种开发方法

    ### MyBatis 入门配置与 DAO 的两种开发方法 #### 一、JDBC 开发问题及 MyBatis 概览 ##### JDBC 开发常见问题 - **频繁创建与释放数据库连接**: 这可能导致资源浪费并影响系统性能。在企业级项目中,通常采用连接...

    MyBatis一对多映射

    4. Service和DAO层:在Service层中调用DAO层的方法,执行查询SQL,MyBatis会自动将结果按照映射关系进行装配。 三、注解方式的一对多映射 使用注解的方式也可以实现一对多映射,主要使用`@One`和`@Many`注解。`@One...

    根据表结构自动生成bean类和mybatis dao类

    在软件开发过程中,尤其是涉及到与数据库交互的Java项目,手动编写Bean类和MyBatis的DAO(Data Access Object)类是一项繁琐的任务。标题所提到的"根据表结构自动生成bean类和mybatis dao类"是一种自动化工具或技术...

Global site tag (gtag.js) - Google Analytics