Maven 工程下 Spring MVC 站点配置 (二) Mybatis数据操作

 

详细的Spring MVC框架搭配在这个连接中:

Maven 工程下 Spring MVC 站点配置 (一)

Maven 工程下 Spring MVC 站点配置 (二) Mybatis数据操作

这篇主要讲解MVC中Mybatis的配置过程。

STEP 1:数据库与实体bean的创建;

在这个实例中用 Mysql作为操作的数据库源,先来创建一张名为 users 的数据表结构,如图:

如果你认为自己是个潇洒的代码控,不屑于图形界面操作,那么你也可以用SQL代码来进行表的创建,复制如下代码即可:


-- users table
SET FOREIGN_KEY_CHECKS=0;
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `account` varchar(50) DEFAULT NULL,
  `passwd` varchar(50) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

然后在项目中.增加一个对应数据表的实体 bean 包, 包结构为 mcqueen.model,如图:

在这个包中增加一个与数据表名一致的java实体bean文件,与数据表明一致不是必须的,为了方便维护管理建议与数据表名一致;

users.java 文件源码如下:


package mcqueen.model;

public class users {
    public int id;
    public String account;
    public String passwd;
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getAccount() {
        return account;
    }
    public void setAccount(String account) {
        this.account = account;
    }
    public String getPasswd() {
        return passwd;
    }
    public void setPasswd(String passwd) {
        this.passwd = passwd;
    }
}

STEP 2:配置Mybatis.

打开项目中的pom.xml文件,增加如下配置内容:


    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.25</version>
    </dependency>
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>3.3.0</version>
    </dependency>
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis-spring</artifactId>
        <version>1.2.3</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-jdbc</artifactId>
        <version>4.1.2.RELEASE</version>
    </dependency>

在项目中增加一个 sqlconfig.xml 文件,它是用来管理Mybatis 中的Mapper文件的;

sqlconfig.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" />
            <!-- Sql Connection Config -->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.jdbc.Driver" />
                <property name="url" value="jdbc:mysql://localhost:3306/womaidb" />
                <property name="username" value="root" />
                <property name="password" value="xingzhi" />
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="mcqueen/mappers/UserMapping.xml" />
    </mappers>
</configuration>

上面代码中 mappers下的mappers的resource这个属性节点内容,便是指向Sql管理配置文件的存储地方.也是Mybatis的重点操作文件之一.(详细解释,请自行百度,这里不做解释)

既然需要这个文件那么就来创建它吧.

UserMapping.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="mcqueen.mappers.UserMapping">
    <select id="GetUsersAll"  
            parameterType="int"
            resultType="mcqueen.model.users">
            SELECT * FROM `users` WHERE `id` = #{id};
    </select>
</mapper>

上面代码中:

namespace="" 这个命名空间节点指向的文件便是当前自身文件,通俗理解就给它自己起个名字,<select > : 这个节点便是你的Sql语句;

如果你是用条件查询的语句,那么 parameterType 就要指定与java函数对应的数据类型;resultType则是返回你对应的实体bean类型;

具体说明,依旧百度或者自行官网,个人建议去官网看理解的会更透彻一些.

最后,项目中两个文件的结构放置,应当如下图:

STEP 3:数据层的实现与操作

接下来,还要做这样一个事情,我们回来打开查看UserMapping.xml这个文件;

你会看到这样一段语句:<select id="GetUsersAll"

这个id="GetUsersAll"语句中, Id节点的内容便是接下来要实现的工作了,数据层的实现;

在工程中增加 mcqueen.dal 这个包,并在里面增加一个 UserDao.java 文件,如下:

然后在这个文件中增加如下语句:

UserDao.java:


package mcqueen.dal;

import java.io.InputStream;

import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder; public class UserDao {
    //指向UserMapping文件中Select节点下id属性定义的内容.
    private String sql = "mcqueen.mappers.UserMapping.GetUsersAll";
    public mcqueen.model.users GetUsersAll(int id){
        InputStream is = UserDao.class.getClassLoader().getResourceAsStream("sqlconfig.xml");
        SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(is);
        SqlSession session = ssf.openSession();
        return session.selectOne(sql, id);
    }
}

然后再打开mcqueen.controller下的IndexController.java文件,代码如下:

IndexController.java:


package mcqueen.controller;
import mcqueen.dal.UserDao;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping; @Controller
public class IndexController {
    
    @RequestMapping(value="index.html")
    public void index(Model m){
        UserDao dal = new UserDao();
        m.addAttribute("result", "I use mybatis find "+dal.GetUsersAll(1).getAccount()+" of data, My name is Mcqueen Xing.");
    }
}

到此,Spring MVC 中Mybaits操作已经完成了,可以进行测试结果如下:

记得在数据库中加数据,否则会出现null.

Mybatis数据操作的更多相关文章

  1. Maven 工程下 Spring MVC 站点配置 (二) Mybatis数据操作

    详细的Spring MVC框架搭配在这个连接中: Maven 工程下 Spring MVC 站点配置 (一) Maven 工程下 Spring MVC 站点配置 (二) Mybatis数据操作 这篇主 ...

  2. SpringCloud或SpringBoot+Mybatis-Plus利用mybatis插件实现数据操作记录及更新对比

    引文 本文主要介绍如何使用mybatis插件实现拦截数据库操作并根据不同需求进行数据对比分析,主要适用于系统中需要对数据操作进行记录.在更新数据时准确记录更新字段 核心:mybatis插件(拦截器). ...

  3. SpringCloud或SpringBoot+Mybatis-Plus利用AOP+mybatis插件实现数据操作记录及更新对比

    引文 本文主要介绍如何使用Spring AOP + mybatis插件实现拦截数据库操作并根据不同需求进行数据对比分析,主要适用于系统中需要对数据操作进行记录.在更新数据时准确记录更新字段 核心:AO ...

  4. mybatis 2 -常用数据操作

    1.写入数据并获取自增ID XML配置: <!-- 写入数据获取自增ID --> <insert id="insertLog" parameterType=&qu ...

  5. MyBatis返回主键,MyBatis Insert操作返回主键

    MyBatis返回主键,MyBatis Insert操作返回主键 >>>>>>>>>>>>>>>>> ...

  6. mybatis持久化操作“无效的类型111解决”

    mybatis持久化操作时,如果插入数据为null的情况下,由于内部机制问题,会导致报错,导致出现:“无效的类型:1111”示例如下: org.springframework.jdbc.Uncateg ...

  7. MyBatis数据持久化(十)与Spring4整合

    前面几节介绍了mybatis的基本使用方法,本节主要介绍如何使用mybatis与主流的IoC容器Spring进行整合. 我们首先需要获取Spring框架的jar文件,在写本文时spring的最新Rel ...

  8. MyBatis数据持久化(三)增删改查

    上篇文章中我们使用mybatis成功建立数据库会话,并从表中查询出相应的数据,本文在此基础上介绍MyBatis另外几种操作,即插入.修改.删除记录. 1.修改User.xml文件,增加几条sql语句: ...

  9. Spring Boot 2.X(二):集成 MyBatis 数据层开发

    MyBatis 简介 概述 MyBatis 是一款优秀的持久层框架,支持定制化 SQL.存储过程以及高级映射.它采用面向对象编程的方式对数据库进行 CRUD 的操作,使程序中对关系数据库的操作更方便简 ...

随机推荐

  1. javascript启示录英文单词生词

    odd:奇怪的 represent:代表 primitive:原始的 trivial:平凡的 demonstrate:证明 keep this at the forefront of your min ...

  2. 爬虫总结_python

    import sqlite3 Python 的一个非常大的优点是很容易写很容易跑起来,缺点就是很多不那么著名的(甚至一些著名的)程序和库都不像 C 和 C++ 那边那样专业.可靠(当然这也有动态类型 ...

  3. Hibernate(六)——多对多关联映射

    前面几篇文章已经较讲解了三大种关联映射,多对多映射就非常简单了,不过出于对关联映射完整性的考虑,本文还是会简要介绍下多对多关联映射. 1.单向多对多关联映射 情景:一个用户可以有多个角色,比如数据录入 ...

  4. data URI scheme及其应用

    data URI scheme通俗的来讲就是将一张图片直接塞到HTML中而不是通过HTTP请求去获取.这样从表面上看会降低一次HTTP的请求,实现了对于网页的优化(只是看了其它一些文章data URI ...

  5. java学习笔记12--国际化

    java学习笔记12--国际化 国际化的操作就是指一个程序可以同时适应多门语言,即:如果现在程序者是中国人,则会以中文为显示文字,如果现在程序的使用者是英国人,则会以英语为显示的文字,也就是说可以通过 ...

  6. nginx &amp; flup &amp; django &amp; python3.x @ window7配置备忘录

    最近考虑原Prism建筑(非职业.半专业人士认为C/S建筑)至B/S迁移,主要是由于部署问题,包括两个因素:已经做,虽然一键安装和部署的一个因素,心存顾虑,虽然我一再声明这是一个绿色软件.还有一个因素 ...

  7. Hawk-数据抓取工具

    Hawk-数据抓取工具:简明教程   Hawk: Advanced Crawler& ETL tool written in C#/WPF 1.软件介绍 HAWK是一种数据采集和清洗工具,依据 ...

  8. python(abi) RPM DEB Download

    python(abi) RPM DEB Download python(abi) RPM DEB Download

  9. mongodb中的排序和索引快速学习

    在mongodb中,排序和索引其实都是十分容易的,先来小结下排序: 1 先插入些数据    db.SortTest.insert( { name : "Denis", age : ...

  10. 【C#遗补】之Char.IsDigit和Char.IsNumber的区别

    原文:[C#遗补]之Char.IsDigit和Char.IsNumber的区别 Char中IsDigit和IsNumber的两个方法都是用来判断字符是否是数字的,那他们有什么区别 IsDigit    ...