初用maven+myeclipse2018+oracle+mybatis+mybatis generator构建项目总结

说来惭愧,java编程近十年——事业单位,自己科研小打小闹,一直没正规的学习框架使用,也没整过maven项目管理,在这新型肺炎冠状病毒肆虐的春节假期,每天睡到10点+起床,三顿并作两顿,陪老婆孩子,刷手机看电视,无聊之际,折腾下新的开发环境(myeclipse2014换为2018),发现新建的项目默认全部变成了maven项目,深感落后时代了,故就此开始学习新的知识:

1、maven安装:因myeclipse自带maven版本较低,因此自行下载安装最新版。这个简单,下载后解压到想放的目录(目录不可有中文,最好也不包含空格)即可。

2、maven配置:1)配置环境变量path增加:%MAVEN_HOME%\bin;2)因maven依赖java环境,环境变量中也需要配置好JAVA_HOME变量;3)修改本地仓库目录,默认仓库位置在C盘,很不好找,为了方便,并防止重装系统丢失,可在%MAVEN_HOME%\config\setting.xml中修改默认仓库路径,如图1所示:

                                                 图1、maven本地仓库默认路径参数

3、myeclipse配置:菜单Window-->Preferences,展开Maven,选择Installations,点击add,选择maven安装目录,应用后,点击setting,选择maven配置参数文件setting.xml,如图2、图3所示,分别点击apply后,就完成

                                                                  图2、myeclipse2018中安装maven

                                                                    图3、myeclipse2018中配置Maven参数文件

4、mybatis generator插件安装:mybatis generator可用于自动生成mybatis持久层框架中的MAPPER及其实现类和POJO。在myeclipse菜单选择Help-->Install from Catolog...,搜索mybatis,点击Install,等待完成即可,如图4所示

                                                              图4、mybatis generator插件安装

至此,三个开发环境基本上配置完成,下面我们创建第一个myeclipse环境下针对oracle数据库采用mybatis框架的Maven项目,主要包括项目的创建,maven项目参数的配置,oracle驱动导入本地仓库,mybatis generator参数设置,测试程序:

1、项目创建:如图5创建maven项目,勾选create a simple...,选择项目存放路径,如图6所示,点击Next,在弹框中填写artifact id(即为项目名),group id,如图7所示,然后点击finish。

                                                                                        图5、项目创建1

                                                                                           图6、项目创建2

                                                                           图7、项目创建3

2、添加mybatis generator框架:右击项目文件夹,快捷菜单中new-->other... ,搜索Mybatis,双击Mybatis generator...,设置generatorConfig.xml存储到项目src/main/resouces目录,自动生成generatorConfig.xml模板,但少一项参数(小bug),下面是我的参数配置:

<?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="datasource.properties"/>
 
    <!-- 指定数据库驱动的jdbc驱动jar包的位置 
    <classPathEntry location="${db.driverLocation}" />-->
 
    <!-- context 是逆向工程的主要配置信息 -->
    <!-- id:起个名字 -->
    <!-- targetRuntime:设置生成的文件适用于那个 mybatis 版本 -->
  <context id="context1"  targetRuntime="MyBatis3">
    <!--optional,旨在创建class时,对注释进行控制-->
    <commentGenerator>
      <property name="suppressDate" value="true" />
      <!-- 是否去除自动生成的注释 true:是 : false:否 -->
      <property name="suppressAllComments" value="true" />
    </commentGenerator>
    
    <jdbcConnection connectionURL="${db.url}" driverClass="${db.driverClassName}" password="${db.password}" userId="${db.username}" />
   
    <!--非必须,类型处理器,在数据库类型和java类型之间的转换控制-->
    <javaTypeResolver>
       <!-- 默认情况下数据库中的 decimal,bigInt 在 Java 对应是 sql 下的 BigDecimal 类 -->
       <!-- 不是 double 和 long 类型 -->
       <!-- 使用常用的基本类型代替 sql 包下的引用类型 -->
       <property name="forceBigDecimals" value="false" />
    </javaTypeResolver>
    <!-- targetPackage:生成的实体类所在的包 -->
    <!-- targetProject:生成的实体类所在的硬盘位置 -->
    <javaModelGenerator targetPackage="com.dataobject" targetProject="mbd/src/main/java">
      <!-- 是否允许子包 -->
      <property name="enableSubPackages" value="false" />
      <!-- 是否对modal添加构造函数 -->
      <property name="constructorBased" value="true" />
      <!-- 是否清理从数据库中查询出的字符串左右两边的空白字符 -->
      <property name="trimStrings" value="true" />
       <!-- 建立modal对象是否不可改变 即生成的modal对象不会有setter方法,只有构造方法 -->
       <property name="immutable" value="false" />
    </javaModelGenerator>
    
    <!-- targetPackage 和 targetProject:生成的 mapper 文件的包和位置 -->
    <sqlMapGenerator targetPackage="com.dao" targetProject="mbd/src/main/java">
       <!-- 针对数据库的一个配置,是否把 schema 作为字包名 -->
       <property name="enableSubPackages" value="false" />
    </sqlMapGenerator>
    
    <!-- targetPackage 和 targetProject:生成的 interface 文件的包和位置 -->
    <javaClientGenerator targetPackage="com.dao" targetProject="mbd/src/main/java" type="ANNOTATEDMAPPER" >
        <!-- 针对 oracle 数据库的一个配置,是否把 schema 作为字包名 -->
        <property name="enableSubPackages" value="false" />
    </javaClientGenerator>
    <table schema="qzdata" tableName="qz_312_dys_01">
      <!-- columnOverride column="???" property="???" /> -->
    </table>
    <table schema="qzdata" tableName="qz_312_dyu_01">
      <!-- columnOverride column="???" property="???" /> -->
    </table>
  </context>
  <!-- mappers>
    <mapper resource="com/dao/Qz312Dys01Mapper.xml"/>
    <mapper class="cn.dao.dao.Qz312Dys01Mapper"/>
  </mappers>  -->
</generatorConfiguration>

并在同路径下建数据库属性文件datasource.properties:

db.driverLocation=E:/mavenjar/ojdbc6.jar
db.driverClassName=oracle.jdbc.driver.OracleDriver
db.url=jdbc:oracle:thin:@{ip address}:1521:{service name}
db.username=??
db.password=??

3、配置项目依赖包和插件:依赖包有:mybatis,mybatis generator和oracle驱动;插件包括mybatis generator。将下面的配置信息粘贴到项目pom.xml文件中,maven系统会自动寻找相应的包和插件,若本地库没有,联网情况下,会自动从maven中央库下载。注意:oracle驱动无法自动下载,需要手动导入到本地库。

 <dependencies>
    <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.3</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>com.oracle</groupId>
      <artifactId>ojdbc6</artifactId>
      <version>11.2.0.1.0</version>
    </dependency>
    <dependency>
  	  <groupId>org.mybatis.generator</groupId>
  	  <artifactId>mybatis-generator-core</artifactId>
    </dependency>
    <dependency>
  	  <groupId>org.mybatis.generator</groupId>
  	  <artifactId>mybatis-generator-maven-plugin</artifactId>
  	  <version>1.4.0</version>
  	  <type>maven-plugin</type>
    </dependency>
  </dependencies>
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.8</source>
          <target>1.8</target>
        </configuration>
      </plugin>
      <plugin>
         <groupId>org.mybatis.generator</groupId>
         <artifactId>mybatis-generator-maven-plugin</artifactId>
         <version>1.4.0</version>
         <configuration>
            <verbose>true</verbose>
            <overwrite>true</overwrite>
         </configuration>
      </plugin>	
    </plugins>
  </build>
  <dependencyManagement>
  	<dependencies>
  		<dependency>
  			<groupId>org.mybatis.generator</groupId>
  			<artifactId>mybatis-generator-core</artifactId>
  			<version>1.4.0</version>
  		</dependency>
  		<dependency>
  			<groupId>org.mybatis.generator</groupId>
  			<artifactId>mybatis-generator-maven-plugin</artifactId>
  			<version>1.4.0</version>
  		</dependency>
  	</dependencies>
  </dependencyManagement>

4、oracle驱动的手动导入本地库:首先驱动版本不能太低,至少11.2版本(驱动包下载),或更新的,否则项目运行是会报错。打开命令提示符窗口,当前路径切换到maven的安装目录/bin下,运行命令行:mvn install:install-file -DgroupId=com.oracle -DartifactId=ojdbc6 -Dversion=11.2.0.1.0 -Dpackaging=jar -Dfile=D:\download\ojdbc6.jar,注意驱动jar包的路径、版本号不要填错。

5、配置mybatis参数文件(sqlConfig.xml):若不配置,程序无法访问数据库,本尊以为配置了mybatis generator的参数文件就行了,折腾了一整天,才找到是这个原因。

<?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="datasource.properties"/>
    <settings>
        <!--全局性设置懒加载。如果设为‘false’,则所有相关联的都会被初始化加载,默认值为false-->
        <setting name="lazyLoadingEnabled" value="true"/>
        <!--当设置为‘true’的时候,懒加载的对象可能被任何懒属性全部加载。否则,每个属性都按需加载。默认值为true-->
        <setting name="aggressiveLazyLoading" value="false"/>
    </settings>
        <!-- 其实就是将bean的替换成一个短的名字-->
    <!-- typeAliases>
        <typeAlias type="com.demo.mybatis.pojo.User" alias="User"/>
    </typeAliases>-->
    <!--对事务的管理和连接池的配置-->
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC"></transactionManager>
            <dataSource type="POOLED"><!--POOLED:使用Mybatis自带的数据库连接池来管理数据库连接-->
                <property name="driver" value="${db.driverClassName}"/>
                <property name="url" value="${db.url}"/>
                <property name="username" value="${db.username}"/>
                <property name="password" value="${db.password}"/>
            </dataSource>
        </environment>
    </environments>
    <!--mapping文件路径配置-->
    <mappers>
        <!--<mapper resource="mapper/UserMapper.xml"/>-->
        <mapper class="com.dao.Qz312Dyu01Mapper"/>
        <!--<package name="com.demo.mybatis.mapper"/>-->
        <!--<mapper url=""/>-->
    </mappers>

</configuration>

5、生成mybatis框架的持久层程序:右键点击generatorConfig.xml,快捷菜单中选择Run as-->Run Mybatis generator,自动生成包括mapper、接口实现类、pojo等类。

6、数据库访问session工具类:

package com.util.batis;

import java.io.IOException;
import java.io.Reader;

import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;

public class MybatisUtil {

	public MybatisUtil() {
		// TODO Auto-generated constructor stub
	}
	private static SqlSessionFactory sqlSessionFactory;
	private static Reader reader;
	static {
		try {
			reader = Resources.getResourceAsReader("sqlConfig.xml");
			SqlSessionFactoryBuilder ssfb=new SqlSessionFactoryBuilder();
			sqlSessionFactory = ssfb.build(reader);
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	public static SqlSession getSession() {
		return sqlSessionFactory.openSession();
	}
}

7、测试类:右键run as-->maven clean,maven build,然后java application

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

import org.apache.ibatis.session.SqlSession;

import com.dao.Qz312Dyu01Mapper;
import com.dataobject.Qz312Dyu01;
import com.dataobject.Qz312Dyu01Key;
import com.util.batis.MybatisUtil;


public class TestFirst {

	public TestFirst() {
		// TODO Auto-generated constructor stub
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		SqlSession session = MybatisUtil.getSession();
		//推荐使用的方法
		Qz312Dyu01Mapper userDao = session.getMapper(Qz312Dyu01Mapper.class);
		Date dt=new Date();
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
		try {
			dt=sdf.parse("2018-12-10");
		} catch (ParseException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		String stationid="34008",pointid="2",itemid="3127";
		Qz312Dyu01Key key=new Qz312Dyu01Key(dt, stationid, pointid, itemid);
		Qz312Dyu01 user = userDao.selectByPrimaryKey(key);
		System.out.println(user.getObsvalue());
	}

}

至此,终于完成基本测试项目的全部工作,成功运行。

本文为本人看这idea+mybatis+maven+mysql的视频学习,凭着碰到问题解决问题的顽强战斗精神,经连续三天,熬红了双眼,磕磕碰碰,折腾出myeclipse+mybatis+mybatis generator+maven+oracle,谨以此献给学习路上的后来人。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值