IDEA+maven+mybatis+generator筆記
阿新 • • 發佈:2019-02-02
1.pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.lyj</groupId>
<artifactId >MybatisTest1</artifactId>
<packaging>war</packaging>
<version>1.0-SNAPSHOT</version>
<name>MybatisTest1</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId >
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId >
<version>5.1.39</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.1</version>
</dependency>
</dependencies>
<build>
<!--新增mybatis-generator-maven-plugin 外掛-->
<plugins>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.5</version>
<configuration>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
</plugin>
</plugins>
<!--下面這個resouces為了生成的*mapper.xml檔案在java/src/com.*資料夾中能夠訪問到 但是必須要在generator執行完之後在新增,否則執行generator的時候會報錯db.properties找不到-->
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
<finalName>MybatisTest1</finalName>
</build>
</project>
2.編寫generatorConfig.xml 自動生成mybatis對映檔案的配置檔案
<?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"/>
<!--mysql 連線資料庫jar 這裡選擇自己本地位置-->
<classPathEntry location="${jdbc.driverLocation}" />
<context id="default" targetRuntime="MyBatis3">
<commentGenerator>
<!-- 是否去除自動生成的註釋 true:是 : false:否 -->
<property name="suppressAllComments" value="true" />
</commentGenerator>
<!--資料庫連線的資訊:驅動類、連線地址、使用者名稱、密碼 -->
<jdbcConnection driverClass="${jdbc.driverClass}"
connectionURL="${jdbc.jdbcUrl}" userId="${jdbc.user}"
password="${jdbc.password}">
</jdbcConnection>
<!-- 預設false,把JDBC DECIMAL 和 NUMERIC 型別解析為 Integer,為 true時把JDBC DECIMAL 和
NUMERIC 型別解析為java.math.BigDecimal -->
<javaTypeResolver>
<property name="forceBigDecimals" value="false" />
</javaTypeResolver>
<!-- targetProject:生成PO類的位置 -->
<javaModelGenerator targetPackage="${jdbc.pojoLocation}"
targetProject="src/main/java">
<!-- enableSubPackages:是否讓schema作為包的字尾 -->
<property name="enableSubPackages" value="false" />
<!-- 從資料庫返回的值被清理前後的空格 -->
<property name="trimStrings" value="true" />
</javaModelGenerator>
<!-- targetProject:mapper對映檔案生成的位置
如果maven工程只是單獨的一個工程,targetProject="src/main/java"
若果maven工程是分模組的工程,targetProject="所屬模組的名稱",例如:
targetProject="ecps-manager-mapper",下同-->
<sqlMapGenerator targetPackage="${jdbc.mapperLocation}"
targetProject="src/main/java">
<!-- enableSubPackages:是否讓schema作為包的字尾 -->
<property name="enableSubPackages" value="false" />
</sqlMapGenerator>
<!-- targetPackage:mapper介面生成的位置 -->
<javaClientGenerator type="XMLMAPPER"
targetPackage="${jdbc.mapperLocation}"
targetProject="src/main/java">
<!-- enableSubPackages:是否讓schema作為包的字尾 -->
<property name="enableSubPackages" value="false" />
</javaClientGenerator>
<!-- 指定資料庫表 -->
<!--根據需要自行改動資料表-->
<table schema="" tableName="user"></table>
</context>
</generatorConfiguration>
3.db.properties
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.jdbcUrl=jdbc:mysql:///sssptest?useUnicode=true&characterEncoding=UTF-8
jdbc.user=lyj
jdbc.password=123
jdbc.driverLocation=E:/JAVA/maven/mysql/mysql-connector-java/5.1.39/mysql-connector-java-5.1.39.jar
jdbc.pojoLocation=com.lyj.pojo
jdbc.mapperLocation=com.lyj.mapper
4.執行mybatis-generator-maven-plugin
5.mybatisConfig.xml配置mybatis檔案
<?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="db.properties"/>
<!--pojo類配置-->
<typeAliases>
<typeAlias alias="User" type="com.lyj.pojo.User"/>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${jdbc.driverClass}"/>
<property name="url" value="${jdbc.jdbcUrl}" />
<property name="username" value="${jdbc.user}"/>
<property name="password" value="${jdbc.password}"/>
</dataSource>
</environment>
</environments>
<!--mapper對映檔案配置-->
<mappers>
<mapper resource="com/lyj/mapper/UserMapper.xml"/>
</mappers>
</configuration>
6.測試
package com.lyj.handler;
import com.lyj.mapper.UserMapper;
import com.lyj.pojo.User;
import com.lyj.pojo.UserExample;
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 java.io.Reader;
/**
* Created by LYJ on 2016/9/29.
*/
public class Test {
public static void main(String... args) throws Exception {
Reader reader = Resources.getResourceAsReader("mybatisConfig.xml");
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
SqlSession sqlSession = sqlSessionFactory.openSession();
UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
User user = userMapper.selectByPrimaryKey(1);
if (user != null)
System.out.println(user + " --------- user --- Test.main\n");
System.out.println( " --------- --- Test.main\n");
UserExample example=new UserExample();
UserExample.Criteria c= example.createCriteria().andIdEqualTo(1);
User uu=new User();
uu.setId(1);
uu.setUserName("QQ");
//example相當於where後面的限制語句
//下面這句相當於sql:update user set id=1,name='QQ',password='',thirdId='' where id=1
userMapper.updateByExample(uu,example);
sqlSession.commit();
sqlSession.close();
}
}