使用MyBatis Generator工具操作MySQL数据库示

2019-04-05  本文已影响0人  问瑾遗

本例运行环境:jdk1.8,mysql8.0,mysql-connector-java-8.0.11.jar,mybatis-3.4.3
注意版本控制,版本不同经常报错

1.Help-》Eclipse MarketPlace下载安装MyBatis Generator插件,我这里的版本为1.3.7

2.建表语句如下:

DROP TABLE IF EXISTS `userinfo`;
CREATE TABLE `userinfo` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `username` varchar(45) DEFAULT NULL,
  `password` varchar(45) DEFAULT NULL,
  `age` int(11) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

3.新建Java Project项目,项目名称为:MyBatis01

4.添加jar包:mysql-connector-java-8.0.11.jar
mybatis-3.4.3,我这里下载的Zip,解压后将里面所有jar包全都添加进来了。

5.src目录下新建文件: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>
  <context id="context1">
    <!--数据库驱动,数据库为test
    因为我使用的是mysql-connector-java-8.0.11.jar所以这里driverClass为com.mysql.cj.jdbc.Driver-->
    <jdbcConnection connectionURL="jdbc:mysql://localhost:3306/test?useSSL=false" driverClass="com.mysql.cj.jdbc.Driver" 
    password="123456" userId="root" />
    <!--javaBean类文件生成位置,同时生成的还有xxxExample.java文件-->
    <javaModelGenerator targetPackage="bean" targetProject="MyBatis01" />
    <!--xxxMapper.xml生成位置-->
    <sqlMapGenerator targetPackage="mapping" targetProject="MyBatis01" />
    <!--xxxMapper.java生成位置-->
    <javaClientGenerator targetPackage="mapping" targetProject="MyBatis01" type="XMLMAPPER" />
    
    <table schema="test" tableName="userinfo">
        <!--column为数据库中的字段名,property为与之对应的javabean文件的属性名-->
      <columnOverride column="id" property="id" />
    </table>
  </context>
</generatorConfiguration>

右键generatorConfig.xml文件,Run As-》Run MyBatis Generator生成相应文件;项目目录结构如下:


关于xxxExample.java:mybatis中关于example类详解

6.在src中创建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>
    <environments default="development">
        <environment id="development">
            <!--事务管理配置-->
            <transactionManager type="JDBC"/>
            <!--数据源配置-->
            <dataSource type="POOLED">
                <property name="driver" value="com.mysql.cj.jdbc.Driver"/>
                <property name="url" value="jdbc:mysql://localhost:3306/test?useSSL=false"/>
                <property name="username" value="root"/>
                <property name="password" value="123456"/>
            </dataSource>
        </environment>
    </environments>
    <mappers>
        <!--这里的resource对应上一步自动生成的mapping/UserinfoMapper.xml文件-->
        <mapper resource="mapping/UserinfoMapper.xml"/>
    </mappers>
</configuration>

7.新建Test类测试,代码如下:

package test;

import java.io.IOException;
import java.io.InputStream;

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 bean.Userinfo;

public class Test {

    public static void main(String[] args) {
        try {
            Userinfo userinfo=new Userinfo();
            userinfo.setUsername("usernameValue");
            userinfo.setPassword("passwordValue");
            userinfo.setAge(80);
            //读取mybatis-config.xml配置
            String resource="mybatis-config.xml";
            InputStream inputStream=Resources.getResourceAsStream(resource);
            //生成SqlSessionFactory
            SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream);
            //生成SqlSession
            SqlSession sqlSession=sqlSessionFactory.openSession();
            //执行插入操作,这里的第一个参数"insert"对应xxxMapper.xml文件中<insert>标签的id,
            //第二个参数userinfo对应xxxMapper.xml文件中<insert>标签的parameterType,
            //<insert id="insert" parameterType="bean.Userinfo">
            sqlSession.insert("insert",userinfo);
            //提交事务
            sqlSession.commit();
            //关闭会话
            sqlSession.close();
        } catch (IOException e) {
            // TODO: handle exception
            e.printStackTrace();
        }
    }
    
}

运行Test.java类后在userinfo数据表中可以看到新添加的记录。


公司电脑环境只能离线按照:eclipse中mybatis generator插件的安装
逆向工程中出现Exception getting JDBC Driver:重新导入一下mysql-connector-java-x.x.x-bin.jar驱动包

上一篇下一篇

猜你喜欢

热点阅读