zoukankan      html  css  js  c++  java
  • 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(11NOT NULL AUTO_INCREMENT,
      `account` varchar(50DEFAULT NULL,
      `passwd` varchar(50DEFAULT 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. 


  • 相关阅读:
    (树的直径)第九届湘潭市大学生程序设计比赛 H-Highway
    (记忆化DFS)Codeforces Round #413 D-Field expansion
    (树状数组)Codeforces Round #413 C-Fountains
    (几何)LeetCode Weekly Contest 32 D-Erect the Fence
    LeetCode Weekly Contest 32 解题报告
    (贪心)华师大程序设计竞赛 F-丽娃河的狼人传说
    (最短路)AtCoder Beginner Contest 061 D
    Tinkoff Challenge
    Codeforces Round #410 (Div. 2) 解题报告
    (二叉树)UVA
  • 原文地址:https://www.cnblogs.com/mcqueen/p/5297494.html
Copyright © 2011-2022 走看看