使用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驱动包