zoukankan      html  css  js  c++  java
  • Mybatis数据操作

    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. 

  • 相关阅读:
    ZeptoLab Code Rush 2015
    UVa 10048 Audiophobia【Floyd】
    POJ 1847 Tram【Floyd】
    UVa 247 Calling Circles【传递闭包】
    UVa 1395 Slim Span【最小生成树】
    HDU 4006 The kth great number【优先队列】
    UVa 674 Coin Change【记忆化搜索】
    UVa 10285 Longest Run on a Snowboard【记忆化搜索】
    【NOIP2016提高A组模拟9.28】求导
    【NOIP2012模拟10.9】电费结算
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/5300360.html
Copyright © 2011-2022 走看看