之前一直学的稀里糊涂的,今天从头开始配置Maven写

下载Maven,自个儿百度

下载后解压,我将解压后的文件夹放在自定义一个文件夹

maven 项目合并 用到相同包名不同版本号_mybatis

下一步就是配置系统环境变量:变量名:MAVEN_HOME 变量值:(直接找到路径拷进去)

maven 项目合并 用到相同包名不同版本号_maven_02

配置path:(变量值就是到bin目录的路径)

maven 项目合并 用到相同包名不同版本号_xml_03

打开windows DOS窗口,键入命令 mvn -v   用来检验Windows是否成功配置Maven

在Maven中,有本地仓库与远程仓库的位置,Maven要导入jar包首先在本地仓库中查找是否有需要的该jar包,如果没有,便从远程仓库中下载该资源到本地仓库,Maven默认本地仓库目录路径中可能有空格问题,所以这里我们重新配置本地仓库,远程仓库由于防火墙的原因,会导致无下载速度,下载失败,所以我们也重新配置一下远程仓库,示例远程仓库为阿里Maven 方法如下:

(1)找一个不带空格或汉字的路径地址下创建一个文件夹,这里我起名为

maven 项目合并 用到相同包名不同版本号_xml_04

(2)在Maven的conf目录下找到settings.xml文件,打开并编辑(原先是有很多注释的,我给删掉了)

maven 项目合并 用到相同包名不同版本号_Java_05

一号为配置的本地仓库

二号为配置的远程仓库

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
	<localRepository>C:\Maven\maven-repository</localRepository>
	<pluginGroups></pluginGroups>
	<proxies></proxies>
	<servers></servers>
	<mirrors>
		<mirror>
			<id>alimaven</id>
			<name>aliyun maven</name>
			<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
			<mirrorOf>central</mirrorOf> 
		</mirror>
	</mirrors>
	<profiles></profiles>
</settings>

修改好保存之后进入WINDOWS DOS 界面,键入mvn help:system 命令,重新将maven的本地仓库配置文件等下载到我们自己设置的本地仓库中

到此为止Maven就完美了,可是我们的myeclipse中还需要配置一下:

Window----Preferences---- (搜索maven)---installations---add(添加Maven目录)

Window----Preferences---- (搜索maven)---User Settings---browser(修改好Maven的settings.xml的目录)-----点击"Update Settings" 

最后点击apply  就保存成功了!

--------------------------------------------------------开发分割线------------------------------------------------------------------------------

首先感谢yuehailin大佬的教程,本文就是根据此文章进行开发的

在数据库中创建测试表并插入几条数据

maven 项目合并 用到相同包名不同版本号_xml_06

创建一个普通的Maven工程,上本项目目录:

maven 项目合并 用到相同包名不同版本号_maven_07

先导入jar包(这里我并没有把整页代码贴上来,就贴了需要的部分代码)

有junit(单元测试),mybatis,hamcrest(配合4.1版本以上的Junit使用,否则报错),slf4j(日志记录),log4j(日志记录)

其实还应该导入ojdbc的jar包,但是我多次导入失败了,无奈只好手动导入(拉进去一个odbc6的jar包,然后在其上右键add bulids就OK了)

<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.12</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.mybatis</groupId>
			<artifactId>mybatis</artifactId>
			<version>3.3.0</version>
		</dependency>
		<dependency>
    	<groupId>org.hamcrest</groupId>
    		<artifactId>hamcrest-core</artifactId>
    		<version>1.3</version>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>1.7.12</version>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-log4j12</artifactId>
			<version>1.7.12</version>
		</dependency>
		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>1.2.17</version>
		</dependency>
	</dependencies>

 

创建实体类User,(私有变量为数据库表中的字段,字段类型要一致),然后自动构建get(),set()

package entity;

public class User {
	private int id;
	private String code;
	private String name;
	
	public String getCode() {
		return code;
	}
	public void setCode(String code) {
		this.code = code;
	}
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
}

maven 项目合并 用到相同包名不同版本号_mybatis_08

配置log4j  创建log4j.porperties文件(内容是我从其他工程拷的,不懂这个哈哈哈)

#设置级别和目的地
log4j.rootLogger=error,appender1,appender2

#输出到控制台
log4j.appender.appender1=org.apache.log4j.ConsoleAppender
#设置输出样式
log4j.appender.appender1.layout=org.apache.log4j.PatternLayout
#自定义样式
# %r 时间 0
# %t 方法名 main
# %p 优先级 DEBUG/INFO/ERROR
# %c 所属类的全名(包括包名)
# %l 发生的位置,在某个类的某行
# %m 输出代码中指定的讯息,如log(message)中的message
# %n 输出一个换行符号
log4j.appender.appender1.layout.ConversionPattern=[%d{yy/MM/dd HH:mm:ss:SSS}][%C-%M] %m%n

#输出到文件(这里默认为追加方式)
#org.apache.log4j.ConsoleAppender(控制台),
#org.apache.log4j.FileAppender(文件),
#org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
#org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
#org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
log4j.appender.appender2=org.apache.log4j.DailyRollingFileAppender
#设置文件输出路径
#【1】文本文件
log4j.appender.appender2.File=../logs/log/log.log
#设置文件输出样式
log4j.appender.appender2.layout=org.apache.log4j.PatternLayout
log4j.appender.appender2.layout.ConversionPattern=[%d{HH\:mm\:ss\:SSS}][%C-%M] -%m%n

配置SQL(我的个人理解):创建UserMapper.xml   其中namespace为该文件的目录,这里我是放在根上的  id后面要用到,最好起一个恰当的名字  resultType是User,我就只有一个User实体类,别的也装不了

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 
					"http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="UserMapper">
	<select id="selectAll" resultType="User">
		select id,code,name from stg.users
	</select>
</mapper>

配置连接参数等:创建mybatis-conf.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>
<!-- log4j -->
    <settings>
        <setting name="logImpl" value="LOG4J"/>
    </settings>
    
    <!-- 实体类所在的包名 -->
     <typeAliases>
        <package name="entity"/>
    </typeAliases>
 
    <environments default="development">
        <environment id="development">
            <transactionManager type="JDBC">
                <property name="" value=""/>
            </transactionManager>
            <dataSource type="UNPOOLED">
                <property name="driver" value="oracle.jdbc.driver.OracleDriver"/>
                <property name="url" value="jdbc:oracle:thin:@10.135.17.124:1521/edwdev"/>
                <property name="username" value="ods"/>
                <property name="password" value="ods123"/>
            </dataSource>
        </environment>
    </environments>
 
    <mappers>
        <mapper resource="UserMapper.xml"/>
    </mappers>
</configuration>

最后写个测试类测试一下吧!:创建UserMapperTest.java

其中main方法先调用init方法再调用test方法,希望大佬帮忙详细讲解一下!我只能了解大概!

package test;

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 org.junit.BeforeClass;
import org.junit.Test;
import entity.User;
import java.io.IOException;
import java.io.Reader;
import java.util.List;
 
public class UserMapperTest {
	
	private static SqlSessionFactory sqlSessionFactory;
	//在类中只运行一次,必须声明成public static
	@BeforeClass
	public static void init(){
		try {
			//读取这个文件
            Reader reader = Resources.getResourceAsReader("mybatis-config.xml");
            //通过读取到的文件数据  new SQL映射工厂
            sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
            reader.close();
        } catch (IOException e) {
        	e.printStackTrace();
        }
	}
	
	@Test
	public void testSelectAll(){
		//获取SQL映射
		SqlSession sqlSession = sqlSessionFactory.openSession();
		try {
			List<User> userList = sqlSession.selectList("selectAll");
			//调用遍历
			printUserList(userList);
		} finally {
			sqlSession.close();
		}
	}
	//这个方法可以传入列表,遍历列表,然后获得数据
	private void printUserList(List<User> userList){
		for(User user : userList){
			System.out.println("数据是:"+user.getId()+user.getName()+user.getCode());
		}
	}
	//main 方法
	public static void main(String[] args) {
		UserMapperTest.init();
 
		UserMapperTest umt =new UserMapperTest();
		umt.testSelectAll();
 
	}
 
}