ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

MyBatis入门实例(Idea)

2020-02-29 12:04:13  阅读:165  来源: 互联网

标签:return String void Idea private MyBatis import public 入门


开发环境:Idea2018
数据库:mysql 8.0.16
目的:学习Mybatis

  1. 数据库准备
    本次实例使用数据库mysql 8.0.16,用户名root ,密码123456
    创建数据库并建立测试表单:
/*创建数据库*/
CREATE DATABASE tms default character set utf8;

/*创建数据表单*/
CREATE TABLE `t_members` (
    ->   `id` mediumint(8) unsigned NOT NULL AUTO_INCREMENT,
    ->   `nickname` varchar(255) DEFAULT NULL COMMENT '昵称',
    ->   `password` char(32) NOT NULL DEFAULT '' COMMENT '密码',
    ->   `realname` varchar(36) NOT NULL DEFAULT '' COMMENT '真实姓名',
    ->   `gender` enum('MALE','FEMALE','NONE') NOT NULL DEFAULT 'NONE' COMMENT '姓名',
    ->   `rank` smallint(5) unsigned NOT NULL DEFAULT '0' COMMENT '会员等级',
    ->   `email` char(50) NOT NULL DEFAULT '' COMMENT '邮箱',
    ->   `mobile` varchar(15) NOT NULL DEFAULT '' COMMENT '手机号',
    ->   `safequestion` varchar(255) NOT NULL DEFAULT '0' COMMENT '安全问题',
    ->   `safeanswer` char(30) NOT NULL DEFAULT '' COMMENT '安全答案',
    ->   `createdTime` datetime DEFAULT NULL COMMENT '创建时间',
    ->   PRIMARY KEY (`id`)
    -> ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='会员表';
    
/*插入测试数据*/
INSERT INTO `t_members` VALUES ('2', 'tom', '123456', 'Tom Hanks', 'MALE', '1', 'e123@t.com', '13588888888', '1+1=?', '3', 'now()');
INSERT INTO `t_members` VALUES ('3', 'andy', '123789', 'Andy Zhou', 'FEMALE', '1', 'e456@t.com', '13699999999', '2+2=?', '5', now());

  1. 项目创建
    File -> New Project, 选择Maven,勾选Create from architype, 选择maven-archetype-quickstart, 点击按钮Next
    选择项目类型
    输入GroupId和ArtifactId, 继续Next
    GroupId和项目名称
    然后继续Next,直到Finish。

  2. 先展示一下项目完成时的整体结构,然后再介绍各种文件的创建过程。新建了的项目缺少的文件夹和Package,自己添加就好。
    整体结构

  3. 新建项目后首先添加必要的依赖到pom.xml

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.gbs</groupId>
  <artifactId>Members</artifactId>
  <version>1.0-SNAPSHOT</version>

  <name>Members</name>
  <!-- FIXME change it to the project's website -->
  <url>http://www.example.com</url>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.source>1.7</maven.compiler.source>
    <maven.compiler.target>1.7</maven.compiler.target>
  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.2.8</version>
    </dependency>
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>8.0.11</version>
    </dependency>

  </dependencies>

  <build>
    <pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
      <plugins>
        <!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle -->
        <plugin>
          <artifactId>maven-clean-plugin</artifactId>
          <version>3.1.0</version>
        </plugin>
        <!-- default lifecycle, jar packaging: see https://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_jar_packaging -->
        <plugin>
          <artifactId>maven-resources-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-compiler-plugin</artifactId>
          <version>3.8.0</version>
        </plugin>
        <plugin>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.22.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-jar-plugin</artifactId>
          <version>3.0.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-install-plugin</artifactId>
          <version>2.5.2</version>
        </plugin>
        <plugin>
          <artifactId>maven-deploy-plugin</artifactId>
          <version>2.8.2</version>
        </plugin>
        <!-- site lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#site_Lifecycle -->
        <plugin>
          <artifactId>maven-site-plugin</artifactId>
          <version>3.7.1</version>
        </plugin>
        <plugin>
          <artifactId>maven-project-info-reports-plugin</artifactId>
          <version>3.0.0</version>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
</project>

  1. 创建实体类Member
package com.gbs.dao.entity;

import java.io.Serializable;
import java.util.Date;

public class Member implements Serializable {
    private static final long serialVersionUID = 6948864912341044105L;
    private Integer id;
    private String nickname;
    private String password;
    private String realname;
    private String gender;
    private String email;
    private String mobile;
    private Integer rank=0;
    private String safequestion;
    private String safeanswer;
    private Date createdTime;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getNickname() {
        return nickname;
    }

    public void setNickname(String nickname) {
        this.nickname = nickname;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getRealname() {
        return realname;
    }

    public void setRealname(String realname) {
        this.realname = realname;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    public Integer getRank() {
        return rank;
    }

    public void setRank(Integer rank) {
        this.rank = rank;
    }

    public String getSafequestion() {
        return safequestion;
    }

    public void setSafequestion(String safequestion) {
        this.safequestion = safequestion;
    }

    public String getSafeanswer() {
        return safeanswer;
    }

    public void setSafeanswer(String safeanswer) {
        this.safeanswer = safeanswer;
    }

    public Date getCreatedTime() {
        return createdTime;
    }

    public void setCreatedTime(Date createdTime) {
        this.createdTime = createdTime;
    }

    @Override
    public String toString() {
        return "Member{" +
                "id=" + id +
                ", nickname='" + nickname + '\'' +
                ", password='" + password + '\'' +
                ", realname='" + realname + '\'' +
                ", gender='" + gender + '\'' +
                ", email='" + email + '\'' +
                ", mobile='" + mobile + '\'' +
                ", rank=" + rank +
                ", safequestion='" + safequestion + '\'' +
                ", safeanswer='" + safeanswer + '\'' +
                ", createdTime=" + createdTime.toString() +
                '}';
    }
}

  1. Dao层接口实现 MemberDao
package com.gbs.dao;

import com.gbs.dao.entity.Member;
import java.util.List;

public interface MemberDao {
    List<Member> findPageObjects();
}
  1. 创建映射文件MemberMapper.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.gbs.dao.MemberDao">

    <select id="findPageObjects" resultType="com.gbs.dao.entity.Member">
        select * from t_members
    </select>
</mapper>
  1. 编写jdbc.properties
jdbc.DriverClassName=com.mysql.cj.jdbc.Driver
jdbc.url =jdbc:mysql://localhost:3306/tms?serverTimezone=UTC&useSSL=false
jdbc.username=root
jdbc.password=123456
  1. 编写mybatis-config.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>
    <properties resource="jdbc.properties">
    </properties>
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC" />
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.DriverClassName}" />
                <property name="url"
                          value="${jdbc.url}" />
                <property name="username" value="${jdbc.username}" />
                <property name="password" value="${jdbc.password}" />
            </dataSource>
        </environment>
    </environments>

    <mappers>
        <mapper resource="mapper/MemberMapper.xml" />
    </mappers>

</configuration>
  1. 主体代码已经完成,先写测试代码TestMybatis
package com.gbs;

import com.gbs.dao.MemberDao;
import com.gbs.dao.entity.Member;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import java.io.IOException;
import java.util.List;

public class TestMybatis {
    /**查询测试方法*/
    @Test
    public void testFindPageObjects() throws IOException {
        //定义配置文件的路径
        String resource="mybatis-config.xml";
        //通过SqlSessionFactoryBuilder创建SqlSessionFactory
        SqlSessionFactory factory=new SqlSessionFactoryBuilder()
                .build(Resources.getResourceAsStream(resource));
        //通过SqlSessionFactory创建SqlSession
        SqlSession session=factory.openSession();
        //执行dao对象
        MemberDao dao=session.getMapper(MemberDao.class);
        //得到结果集
        List<Member> list=dao.findPageObjects();
        //输出结果集
        System.out.println(list);
        //关闭连接
        session.close();
    }
}

taylor_gao 发布了1 篇原创文章 · 获赞 0 · 访问量 6 私信 关注

标签:return,String,void,Idea,private,MyBatis,import,public,入门
来源: https://blog.csdn.net/taylor_gao/article/details/104566221

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有