【Spring+MyBatis+MySQL实战入门】一、MyBatis操作入门

本系列文章系本人原创,欢迎转载,转载请注明出处

一、开发前的准备

作为最开始的环境,我们先只介绍MyBatis+MySql,等MyBatis+MySql入门后,我们再引入Spring。所以,现在我们的环境只需要MySql,MyBatis和开发工具(IDE)。

  • MySql
    可以在这里选择适合自己操作系统的MySql安部署。
    我们的入门项目是一个简单的购物网站,所以后台数据库会有三个基本的表:用户表,产品表和购物车表。
    a. MySql安装部署好后,打开MySql,建立名为smm的数据库:

    create database smm;

    b. 在smm数据库里面建立User表、Product表和Cart表:

    use smm;
    /* 建立用户表 */
    create table user(id int primary key auto_increment, name varchar(30) not null, contact_info varchar(50));
    
    /* 建立产品表 */ 
    create table product(id int primary key auto_increment, name varchar(30) not null, description varchar(100));
    
    /* 建立购物车表,因为购物车就是用户和产品的对应关系,所以会有对用户表和产品表的外键 */
    create table cart(id int primary key auto_increment, user_id int, product_id int, foreign key(user_id) references user(id), foreign key(product_id) references product(id));
  • MyBatis
    我们的项目是依赖MyBatis的。我们用Maven管理项目依赖,这点将在下面的章节介绍。

  • 开发工具(IDE)
    我们用Eclipse进行开发,可以在这里获取。

二、MyBatis+MySql入门项目

注:本章源码可以在 这里 获取

  • 打开Eclipse,新建一个Maven Project
    这里写图片描述

  • 在pom.xml中添加项目依赖:mybatis和mysql connector:

    <dependencies>
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>3.4.2</version>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>5.1.38</version>
        </dependency>
    </dependencies>
  • 我们已经在smm数据库中建立了用户表、产品表和购物车表,如果是传统的开发的话,我们还需要为这些表建立对应的Java类,并配置各Java类和表的对应关系,以及各DAO。但是MyBatis为我们提供了更为方便的方法:使用MyBatis Generator. 它可以根据数据库中已有的表,自动生成对应的类及DAO(MyBatis中的Mapper)。下面就是如何在Eclipse中使用MyBatis Generator的例子:
    a. 打开Eclipse,选择Help->Eclipse Marketplace,搜索MyBatis Generator,然后安装。
    这里写图片描述

    b. 安装完毕后,右击项目下的src/main/resources目录,选择New->Others->MyBatis->MyBatis Generator Configuration File.
    这里写图片描述

    c.将生成的generatorConfig.xml文件内容修改如下:

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN" "http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
    <generatorConfiguration>
    <!--注意替换location属性的值为mysql connector jar包的位置 -->
      <classPathEntry location="{path to mysql-connector-java-5.1.38.jar}"/>
      <context id="context1">
      <!--注意password和userId属性的值替换为本地mysql的对应的值-->
        <jdbcConnection connectionURL="jdbc:mysql://localhost:3306/smm" driverClass="com.mysql.jdbc.Driver" password="root" userId="root" />
        <javaModelGenerator targetPackage="com.example.model" targetProject="smm/src/main/java" />
        <sqlMapGenerator targetPackage="mapper" targetProject="smm/src/main/resources" />
        <javaClientGenerator targetPackage="com.example.mapper" targetProject="smm/src/main/java" type="XMLMAPPER" />
        <table schema="smm" tableName="user">
            <generatedKey column="id" sqlStatement="MySql" identity="true" />
        </table>
        <table schema="smm" tableName="cart">
            <generatedKey column="id" sqlStatement="MySql" identity="true"/>
        </table>
        <table schema="smm" tableName="product">
            <generatedKey column="id" sqlStatement="MySql" identity="true"/>
        </table>
      </context>
    </generatorConfiguration>

    d. 在上一步中,我们配置了MyBatis Generator如何去访问数据库,并生成哪些表对应的Java对象等行为。现在在Eclipse中右击该文件,选择Run as->Run MyBatis Generator。
    Run MyBatis Generator

    运行结束后,我们就会看到,Java Model和Mapper (即DAO)以及对应的xml文件(用来存放sql和java对应关系)。
    除了generatorConfig.xml,都是自动生成的。

    e.最后一步,配置MyBatis如何访问数据库。在src/main/resources下,新建文件:mybatis-config.properties和mybatis-config.xml。
    mybatis-config.properties内容如下:

    driver=com.mysql.jdbc.Driver
    url=jdbc:mysql://localhost:3306/smm
    
    #下面两行替换为本地的Mysql的用户名和密码
    
    username=root
    password=root

    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="mybatis-config.properties" />
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC" />
            <dataSource type="POOLED">
                <property name="driver" value="${driver}" />
                <property name="url" value="${url}" />
                <property name="username" value="${username}" />
                <property name="password" value="${password}" />
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <mapper resource="mapper/CartMapper.xml" />
        <mapper resource="mapper/ProductMapper.xml" />
        <mapper resource="mapper/UserMapper.xml" />
    </mappers>
    </configuration>

至此,所有的工作都完成了。可以看到,我们没有写一行代码,只需要按照需求去定制配置文件就完成了所有的工作。接下来,我们写一个类来测试:

public class TestMyBatis {

    public static void main(String[] args) throws IOException {
        //装在mybatis-config.xml配置文件
        InputStream inputStream=Resources.getResourceAsStream("mybatis-config.xml");

        //获得SqlSession
        SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(inputStream);
        SqlSession session=factory.openSession();

        //获得UserMapper (及DAO)
        UserMapper userMapper=session.getMapper(UserMapper.class);

        //新建User对象
        User user=new User();
        user.setName("name1");
        user.setContactInfo("contact_info1");

        //向数据库插入新建的User对象并提交事务。
        userMapper.insert(user);
        session.commit();
    }

}

执行main方法,我们会发现数据库中已经插入了在Java中新建的User对象:
这里写图片描述

这样,我们就完成了一个最基本的Java与数据库交互的项目。可以看到,我们只有在做测试的时候写了Java代码,其他时间都是在定制配置文件,这样就大大的提高了开发效率。至于这些配置文件里面每一项的作用以及MyBatis其他的功能,我们会在接下来的章节中作介绍。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值