欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

mybatis****使用步骤

程序员文章站 2022-06-09 13:48:31
...

1.引入依赖

<dependency>
   <groupId>org.mybatis.generator</groupId>
   <artifactId>mybatis-generator-core</artifactId>
   <version>1.3.5</version>
   <scope>test</scope>
</dependency>
<dependency>
   <groupId>mysql</groupId>
   <artifactId>mysql-connector-java</artifactId>
   <version>5.1.18</version>
</dependency>

2.编写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>
   <!-- 引入配置文件 -->
   <properties resource="db.properties" />

   <!-- 加载数据库驱动 -->
   <classPathEntry location="${class_path}" />
   
   <!-- context:生成一组对象的环境 
         id:必选,上下文id,用于在生成错误时提示 
         defaultModelType:指定生成对象的样式 
             1,conditional:类似hierarchical;
             2,flat:所有内容(主键,blob)等全部生成在一个对象中,推荐使用; 
             3,hierarchical:主键生成一个XXKey对象(key class),Blob等单独生成一个对象,其他简单属性在一个对象中(record class) 
         targetRuntime: 
             1,MyBatis3:默认的值,生成基于MyBatis3.x以上版本的内容,包括XXXBySample; 
               2,MyBatis3Simple:类似MyBatis3,只是不生成XXXBySample; 
     -->
   <context id="context1" targetRuntime="MyBatis3"    defaultModelType="flat">
   
       <!-- 生成的Java文件的编码 -->
       <property name="javaFileEncoding" value="UTF-8"/>
   
   
      <commentGenerator>
         <!-- 是否去除自动生成的注释 true:是 : false:-->
         <property name="suppressAllComments" value="false" />
         <!-- 阻止注释中包含时间戳 true:是 : false:-->
         <property name="suppressDate" value="true" />
         <!--  注释是否包含数据库表的注释信息  true:是 : false:-->
         <property name="addRemarkComments" value="true" />
      </commentGenerator>
      
      <!--数据库连接的信息:驱动类、连接地址、用户名、密码 -->
      <jdbcConnection driverClass="${jdbc_driver}"
         connectionURL="${jdbc_url}" userId="${jdbc_username}" password="${jdbc_password}" />


        <!-- java模型创建器,是必须要的元素   负责:1,key类(见context的defaultModelType);2,java类;3,查询类
           targetPackage:生成的类要放的包,真实的包受enableSubPackages属性控制;
           targetProject:目标项目,指定一个存在的目录下,生成的内容会放到指定目录中,如果目录不存在,MBG不会自动建目录
       -->
      <javaModelGenerator targetPackage="com.enjoylearning.mybatis.entity" targetProject="${project_src}">
         <!-- 设置一个根对象,
                         如果设置了这个根对象,那么生成的keyClass或者recordClass会继承这个类;在Table的rootClass属性中可以覆盖该选项
                         注意:如果在key class或者record class中有root class相同的属性,MBG就不会重新生成这些属性了,包括:
                   1,属性名相同,类型相同,有相同的getter/setter方法;
            -->
         <property name="rootClass" value="com.enjoylearning.mybatis.entity.BaseEntity" />
      </javaModelGenerator>


      <!-- 生成SQL map的XML文件生成器,
            targetPackage:生成的类要放的包,真实的包受enableSubPackages属性控制;
           targetProject:目标项目,指定一个存在的目录下,生成的内容会放到指定目录中,如果目录不存在,MBG不会自动建目录
         -->
      <sqlMapGenerator targetPackage="." targetProject="${project_mapper_xml}">
      </sqlMapGenerator>
      
      
       <!-- 对于mybatis来说,即生成Mapper接口,注意,如果没有配置该元素,那么默认不会生成Mapper接口 
              type:选择怎么生成mapper接口(在MyBatis3/MyBatis3Simple下):
                  1,ANNOTATEDMAPPER:会生成使用Mapper接口+Annotation的方式创建(SQL生成在annotation中),不会生成对应的XML;
                  2,MIXEDMAPPER:使用混合配置,会生成Mapper接口,并适当添加合适的Annotation,但是XML会生成在XML中;
                  3,XMLMAPPER:会生成Mapper接口,接口完全依赖XML;
              注意,如果context是MyBatis3Simple:只支持ANNOTATEDMAPPER和XMLMAPPER
          -->       
       <javaClientGenerator  targetPackage="com.enjoylearning.mybatis.mapper" targetProject="${project_src}" type="XMLMAPPER" />




      <!-- shema 数据库 tableName表明 -->
      <table schema="${jdbc_username}" tableName="%" >
         <generatedKey column="id" sqlStatement="MySql"/>
      </table>


   </context>
</generatorConfiguration>

3.运行main方法

@Test
public void mybatisGeneratorTest() throws FileNotFoundException{
   	   List<String> warnings = new ArrayList<String>();  
       boolean overwrite = true;
       //在resources根目录
       String genCfg = "generatorConfig.xml";  
       File configFile = new File(getClass().getClassLoader().getResource(genCfg).getFile());
       ConfigurationParser cp = new ConfigurationParser(warnings);  
       Configuration config = null;  
       try {  
           config = cp.parseConfiguration(configFile);  
       } catch (IOException e) {  
           e.printStackTrace();  
       } catch (XMLParserException e) {  
           e.printStackTrace();  
       }  
       DefaultShellCallback callback = new DefaultShellCallback(overwrite);  
       MyBatisGenerator myBatisGenerator = null;  
       try {  
           myBatisGenerator = new MyBatisGenerator(config, callback, warnings);  
       } catch (InvalidConfigurationException e) {  
           e.printStackTrace();  
       }  
       try {  
           myBatisGenerator.generate(null);  
       } catch (SQLException e) {  
           e.printStackTrace();  
       } catch (IOException e) {  
           e.printStackTrace();  
       } catch (InterruptedException e) {  
           e.printStackTrace();  
       }  
   }
相关标签: 入门案例