文档章节

java框架之Mybatis03数据库

卖报的小二郎
 卖报的小二郎
发布于 2018/03/16 16:43
字数 404
阅读 2
收藏 0

数据库

create database student charset utf8;

use student;
CREATE TABLE student (
    sno INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    sname VARCHAR(12) NOT NULL,
    sage INT NOT NULL,
    addressID INT,
    FOREIGN KEY (addressID)
        REFERENCES address (id)
)

》》》》》》》》》》》》》

use student;
CREATE TABLE address (
    id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
    sheng VARCHAR(12) NOT NULL,
    shi VARCHAR(12) NOT NULL,
    qu VARCHAR(12) NOT NULL

)

》》》》》》》》》

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.imis.mappers.StudentMapper">
      <resultMap type="Student" id="StudentResult">
         <id property="sno" column="sno"/>
         <result property="sname" column="sname"/>
         <result property="sage" column="sage"/>
         <result property="address.id" column="addressId"/>
         <result property="address.sheng" column="sheng"/>
         <result property="address.shi" column="shi"/>
         <result property="address.qu" column="qu"/>
     </resultMap>     
     <select id="findStudentWithAddress" resultMap="StudentResult" parameterType="Integer">
         select * from student t1,address t2 where t1.addressId=t2.id and t1.sno=#{sno}
     </select>
     
     <insert id="add" parameterType="Student" >
         insert into student values(null,#{sname},#{sage},#{addressID})
     </insert>    
     <update id="update" parameterType="Student">
         update student set sname=#{sname},sage=#{sage},addresssID=#{addressID} where sno=#{sno}
     </update>
     <delete id="delete" parameterType="Integer">
         delete from student where sno=#{sno}
     </delete>
     <select id="findById" parameterType="Integer" resultType="Student">
         select * from student where sno=#{sno}
     </select>
     <select id="find" resultMap="StudentResult">
         select * from student
     </select>
 </mapper>

》》》》》》》》》

StudentMapper.java文件

import java.util.List;

import com.imis.model.Student;

public interface StudentMapper {
    public int add(Student student) ;
    public int update(Student student);
    public int delete(int sno);
    public Student findById(int sno);
    public List<Student> find();
    public Student findStudentWithAddress(int sno);
}
 

》》》》》》》

AddressMapper.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.imis.mappers.AddressMapper">
     
     <resultMap type="Address" id="AddressResult">
         <result property="id" column="id"/>
         <result property="sheng" column="sheng"/>
         <result property="shi" column="shi"/>
         <result property="qu" column="qu"/>
     </resultMap>
    

》》》》》》》

AddressMapper.java

import com.imis.model.Address;

public interface AddressMapper {
    
    public Address findByID(int id);

}

》》》》》》》》

import org.apache.ibatis.session.SqlSession;
import org.apache.log4j.Logger;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import com.imis.mappers.StudentMapper;
import com.imis.model.Student;
import com.imis.util.SqlSessionFactoryUtil;

public class StudentTest3 {
    private static Logger logger=Logger.getLogger(StudentTest2.class);
    private SqlSession sqlSession=null;
    private StudentMapper studentMapper=null;
    @Before
    public void setUp() throws Exception {
        sqlSession=SqlSessionFactoryUtil.openSession();
        studentMapper=sqlSession.getMapper(StudentMapper.class);
    }

    @After
    public void tearDown() throws Exception {
        sqlSession.close();
    }

    @Test
    public void testFindStudentWithAdress() {
        logger.info("查询学生(带地址)");
        Student student=studentMapper.findStudentWithAddress(1);
        System.out.println(student);
        System.out.println("1");
        
    }

}

本文转载自:

卖报的小二郎
粉丝 1
博文 9
码字总数 3901
作品 0
郑州
私信 提问
【Java学习路线】新手该如何一步步的学习 Java

新手该如何一步步的学习 Java? 如果真的想学Java,最好要循序渐进,有章有法的学习它! 今天小慕就不说一些学习方法和技巧了,直接来谈每个阶段要学习的内容。 首先,给大家分享一张以 企业...

Eddie_yang
2018/11/15
2.4K
0
Sharding-JDBC 1.3.1 发布,当当 JDBC 增强驱动

Sharding-JDBC 1.3.1 发布了,Sharding-JDBC是当当应用框架ddframe中,从关系型数据库模块dd-rdb中分离出来的数据库水平分片框架,实现透明化数据库分库分表 访问。Sharding-JDBC是继dubbox和...

淡漠悠然
2016/06/28
3.1K
6
在 Hibernate 中直接操作 JDBC 接口

简介: Hibernate 在处理多表关联及分组排序等复杂数据库查询操作时,其固有的 O-R 映射机制会产生大量冗余 SQL 操作,系统性能比传统的 JDBC 低很多。本文分析了 Hibernate 产生此类问题的原...

红薯
2010/04/16
791
2
sharding-jdbc 1.2.1 发布,当当的 JDBC 增强驱动

sharding-jdbc 1.2.1 发布了。改进记录如下: 结构调整 ISSUE #60 API调整,抽离ShardingDataSource,使用工厂代替 ISSUE #76 ShardingRule和TableRule调整为Builder模式 ISSUE #77 Sharding...

淡漠悠然
2016/05/26
2.1K
3
Hibernate与JDBC的区别

1.Hibernate和JDBC的主要区别就是:Hibernate先检索缓存中的映射对象(即Hibernate操作的是对象),而JDBC是直接操作数据库。. 2.Hibernate是对JDBC的轻量级的对象封装,它是一个独立的对象持...

墙头草
2011/06/24
199
0

没有更多内容

加载失败,请刷新页面

加载更多

观点 | 用 MySQL 数据库,到底会不会被“卡脖子”?

>作者:明溪源 **用 MySQL 数据库,到底会不会被“卡脖子”?** 在近期不明朗的贸易形势下,一些正在规划数据库选型、迁移的用户,纷纷询问我们对 MySQL 未来前景的看法。那么使用 MySQL 数据...

爱可生
14分钟前
1
0
千万级流量架构下的负载均衡解析

一、负载均衡 负载均衡算法 转发实现 二、集群下的 Session 管理 Sticky Session Session Replication Session Server 一、负载均衡 集群中的应用服务器(节点)通常被设计成无状态,用户可以...

李红欧巴
18分钟前
59
0
一元建站-基于函数计算 + wordpress 构建 serverless 网站

前言 本文旨在通过 快速部署一个 wordpress 网站到阿里云函数计算平台 这个示例来展示 serverless web 新的开发模式, 包括 FUN 工具一键初始化 NAS, 同步网站到 NAS, 一键部署等能力, 展现函...

阿里云官方博客
20分钟前
1
0
Spring Security 整合JWT(四)

一、前言 本篇文章将讲述Spring Security 简单整合JWT 处理认证授权 基本环境 spring-boot 2.1.8 mybatis-plus 2.2.0 mysql 数据库 maven项目 Spring Security入门学习可参考之前文章: Spri...

郑清
21分钟前
1
0
零基础怎么玩转可视化大屏?这个工具只需5步!

大屏可视化怎么这么火?领导天天要,业务人员、开发人员、IT页面师就得一块熬夜加班,要是不会做大屏,都不好意思说自己做报表、做IT。 也许有人会告诉你,可视化大屏可以用JS+Ecahrts编程实...

朕想上头条
23分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部