`
gouzhiguo
  • 浏览: 7971 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

mybatis 增加、删除、修改、查看(一对多、多对一映射)源代码

    博客分类:
  • java
阅读更多


 

 

/*
Navicat MySQL Data Transfer

Source Server         : localhost_3306
Source Server Version : 50519
Source Host           : localhost:3306
Source Database       : mybatis

Target Server Type    : MYSQL
Target Server Version : 50519
File Encoding         : 65001

Date: 2014-02-20 14:25:02
*/

SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for `customer`
-- ----------------------------
DROP TABLE IF EXISTS `customer`;
CREATE TABLE `customer` (
  `sysNo` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(100) DEFAULT NULL,
  `userpass` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`sysNo`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=gbk;

-- ----------------------------
-- Records of customer
-- ----------------------------
INSERT INTO `customer` VALUES ('1', 'immigrant', '000000');
INSERT INTO `customer` VALUES ('2', 'yiminghu', '000000');
INSERT INTO `customer` VALUES ('3', '王五', '000000');
INSERT INTO `customer` VALUES ('8', 'yiminghu', '000000');

-- ----------------------------
-- Table structure for `message`
-- ----------------------------
DROP TABLE IF EXISTS `message`;
CREATE TABLE `message` (
  `SysNo` int(11) NOT NULL AUTO_INCREMENT,
  `CustomerSysNo` int(11) DEFAULT NULL,
  `FullName` varchar(255) DEFAULT NULL,
  `Mobile` varchar(11) DEFAULT NULL,
  PRIMARY KEY (`SysNo`),
  KEY `CustomerSysNo` (`CustomerSysNo`),
  CONSTRAINT `message_ibfk_1` FOREIGN KEY (`CustomerSysNo`) REFERENCES `customer` (`sysNo`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=gbk;

-- ----------------------------
-- Records of message
-- ----------------------------
INSERT INTO `message` VALUES ('1', '1', '张三', '15015000000');
package com.model;

import java.util.List;

public class Customer {
	private Integer sysNo;
	private String  username;
	private String  userpass;
	private List<Message> messageList;

	public List<Message> getMessageList() {
		return messageList;
	}
	public void setMessageList(List<Message> messageList) {
		this.messageList = messageList;
	}
	public Integer getSysNo() {
		return sysNo;
	}
	public void setSysNo(Integer sysNo) {
		this.sysNo = sysNo;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
	public String getUserpass() {
		return userpass;
	}
	public void setUserpass(String userpass) {
		this.userpass = userpass;
	}
}
package com.model;

public class Message {
	private Integer sysNo;
	private Integer customerSysNo;
	private String  fullName;
	private String  mobile;
	private Customer customer;
	
	public Customer getCustomer() {
		return customer;
	}
	public void setCustomer(Customer customer) {
		this.customer = customer;
	}
	public Integer getSysNo() {
		return sysNo;
	}
	public void setSysNo(Integer sysNo) {
		this.sysNo = sysNo;
	}
	public Integer getCustomerSysNo() {
		return customerSysNo;
	}
	public void setCustomerSysNo(Integer customerSysNo) {
		this.customerSysNo = customerSysNo;
	}
	public String getFullName() {
		return fullName;
	}
	public void setFullName(String fullName) {
		this.fullName = fullName;
	}
	public String getMobile() {
		return mobile;
	}
	public void setMobile(String mobile) {
		this.mobile = mobile;
	}
}

 

<?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.model.Customer">

	<select id="Get" parameterType="int" resultType="Customer">
		select * from customer where sysNo = #{sysNO}
	</select>
	
	<select id="seach" resultType="Customer">
		select * from customer
	</select>
	
	<insert id="Insert" parameterType="Customer">
		insert into Customer (username,userpass) value (#{username},#{userpass})
	</insert>
	
	<update id="update" parameterType="Customer">
		update customer set username=#{username},userpass=#{userpass} where sysNO=#{sysNo}
	</update>
	
	<delete id="delete" parameterType="int">
		delete from customer where sysNo=#{sysNo}
	</delete>
	<!-- 一对多 -->
	<resultMap type="Customer" id="resultMapCustomerleftJoinMessage">
		<id property="sysNo" column="sysNo" />
		<result property="username" column="username" />
		<result property="userpass" column="userpass" />
		<collection property="messageList" ofType="Message" column="CustomerSysNo"> 
			<id property="sysNo" column="sysNo" />
			<result property="fullName" column="fullName" />
			<result property="mobile" column="mobile" />
		</collection>
	</resultMap>
	
	<select id="Seach" parameterType="int" resultMap="resultMapCustomerleftJoinMessage">
		select c.*,m.fullName,m.mobile from customer c left join message m on c.sysno=m.customersysno where m.sysno = #{sysno}
	</select>
</mapper>
<?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.model.Message">

	<select id="Get" parameterType="int" resultType="Message">
		select * from Message where sysNo = #{sysNO}
	</select>
	
	<!-- 多对一 -->
	<resultMap type="Message" id="resultMapMessageleftJoinCustomer">
		<id property="sysNo" column="sysNo" />
		<result property="fullName" column="fullName" />
		<result property="mobile" column="mobile" />
		<association property="customer" javaType="Customer">
			<id property="sysNo" column="sysNo" />
			<result property="username" column="username" />
		</association>
	</resultMap>
	
	<select id="Seach" parameterType="int" resultMap="resultMapMessageleftJoinCustomer">
		select m.*,c.username from message m left join customer c on m.customersysno=c.sysno where m.sysno = #{sysno}
	</select>
</mapper>

  

 

package com.util;

import java.io.IOException;
import java.io.InputStream;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class MyBatisUtil {
	
	private static SqlSessionFactory factory;
	static {
		try {
			InputStream is = Resources.getResourceAsStream("mybatis-config.xml");
			factory = new SqlSessionFactoryBuilder().build(is);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	
	/**
	 * 创建
	 * @return
	 */
	public static SqlSession createSession() {
		return factory.openSession();
	}
	
	/**
	 * 关闭
	 * @param session
	 */
	public static void closeSession(SqlSession session) {
		if(session!=null){
			session.close();
		}			
	}
	
}

 

  • 大小: 18.1 KB
分享到:
评论

相关推荐

    MyBatis源代码.zip

    5. **插件机制**:MyBatis的插件机制允许我们在不影响源代码的情况下,对Executor、StatementHandler、ParameterHandler和ResultSetHandler这四个接口的代理对象进行拦截,实现AOP式的增强功能,如性能监控、日志...

    mybatis项目1对多,多对多练习含sql,非常详细

    这有助于开发者理解如何在实际项目中实现1对多和多对多的关系映射,如何编写和调用SQL查询,以及如何在Java代码中使用MyBatis的API来处理这些关系。 通过这个项目,你可以学习到如何在MyBatis中有效地处理1对多和多...

    mybatis高级映射

    **1.2 一对多映射** **需求**: 查询订单信息,并关联查询订单明细信息。 **SQL 示例**: ```sql SELECT orders.id AS orderId, orders.user_id AS userId, orders.number AS orderNumber, user.username AS ...

    Mybatis学习源代码

    本文将基于“Mybatis学习源代码”这一主题,深入探讨Mybatis的基本概念、核心功能以及如何通过狂神说的视频教程进行学习。 Mybatis是一个基于Java的持久层框架,它提供了一个SQL映射框架,可以将SQL语句与Java代码...

    springboot + mybatis 多数据源demo

    Spring Boot结合MyBatis框架提供了一种优雅的方式来处理多数据源的配置和切换,以满足不同业务需求。本文将深入探讨如何使用Spring Boot与MyBatis实现多数据源的示例。 1. **Spring Boot简介** Spring Boot是...

    mybatis3.4.4的jar包及其源代码

    5. **结果映射**:MyBatis支持自动映射结果集到Java对象,同时也允许自定义映射规则,以处理复杂的数据结构和一对多、多对一的关系映射。 6. **缓存机制**:MyBatis内置了本地缓存和二级缓存机制,可以有效提高查询...

    mybatis入门项目代码

    9. **嵌套查询与关联映射**:`MyBatis-03-Nesting`可能涵盖了多表联查或嵌套查询的示例,例如通过一对一、一对多或多对多的关系映射,将关联的数据一起加载。 10. **测试**:编写JUnit或其他测试框架的测试用例,...

    Mybatis的代码实例

    5. **结果映射(ResultMap)**:在映射文件中,使用`&lt;resultMap&gt;`定义复杂的结果映射,处理一对一、一对多、多对多等关联关系。 6. **参数映射(Parameter Mapping)**:Mybatis允许使用`#{}`语法进行参数绑定,...

    Mybatis 实体类+Mapper实体映射文件+接口+Config主配置文件+测试类

    此外,Mybatis还支持ResultMap,允许自定义复杂的结果映射,处理一对一、一对多、多对多等复杂的关联关系。 总的来说,这个资源包提供了一个完整的Mybatis应用示例,涵盖了从实体类到数据库操作的整个流程,对于...

    mybatis课件和练习代码

    它可以是简单的类型,也可以是复杂的嵌套结构,包括一对一、一对多和多对多关系。 9. **缓存机制**:MyBatis 内置了两级缓存,一级缓存是 SqlSession 级别的,二级缓存是 Mapper 级别的。合理利用缓存可以显著提高...

    mybatis项目源代码技术资料

    它可以处理一对一、一对多、多对一等复杂关系的映射。 7. **事务管理** MyBatis 支持手动和自动两种事务管理模式。在 Spring 框架中,通常结合 MyBatis-Spring,利用 Spring 的事务管理功能,实现事务的统一管理...

    mybatis-3.4.5框架源代码

    3.4.5版本中,结果映射的处理更加智能,对于多对一、一对一、一对多等关联关系的处理更加完善。 5. **参数映射**:MyBatis通过`@Param`注解和`#{}`占位符实现了参数的映射。参数可以是单个值、Map、JavaBean或集合...

    mybatis3_spring3整合

    本示例"mybatis3_spring3整合"正是针对这一主题,通过使用MyBatis 3.0.2和Spring 3.0.4版本来展示如何实现两者的无缝集成,并且重点讲解了如何配置MyBatis中的一对一和一对多的关系映射。 首先,MyBatis是一个优秀...

    springboot + mybatis(通用mapper) + druid多数据源

    4. 多数据源支持:通过DataSourceProxy实现对多个数据库的透明切换。 在实际项目中,这个组合可能还包括以下技术: - 使用Spring Cloud Config进行配置中心管理。 - 使用Spring Security或OAuth2进行权限控制。 - ...

    SpringBoot+gradle+mybatis多数据源动态配置

    - `src`:源代码目录,通常包含Java代码和资源文件。 - `out`:可能是IDE生成的编译输出目录。 - `build`:Gradle的构建输出目录,包含了编译后的类文件、资源文件和最终的打包文件。 综上所述,这个项目通过...

    Mybatis开发实战讲解(源代码)

    Mybatis 是一款流行的Java持久层框架,用于简化数据库操作。这个资源"Mybatis开发实战讲解(源代码)...在源代码中,你可以找到具体的示例和应用场景,这将加深对Mybatis的理解,并有助于你在实际项目中应用这些知识。

    mybatis开发jar包以及源代码Jar包

    总的来说,MyBatis-3.1.1.jar和mybatis-3.1.1-sources.jar提供了完整的MyBatis框架运行环境和源代码,可以帮助开发者更高效地进行数据库操作,并通过源码学习到更多关于MyBatis的底层实现细节。

    mybatis一对多多对一

    在MyBatis中,一对多和多对一的关系映射是数据库设计中常见的实体关系,它们在实际项目中被广泛运用。MyBatis通过映射配置文件或注解方式,帮助开发者实现这些复杂的关联查询。下面我们将详细探讨这两个概念以及如何...

    mybatis笔记一对应代码

    同时,通过resultMap元素可以进行复杂的结果集映射,包括一对一、一对多、多对多关系的处理。 6. **注解方式使用MyBatis**:除了XML配置,MyBatis也支持在Mapper接口方法上直接使用注解来编写SQL,简化配置。 7. *...

Global site tag (gtag.js) - Google Analytics