之前一直学的稀里糊涂的,今天从头开始配置Maven写
下载Maven,自个儿百度
下载后解压,我将解压后的文件夹放在自定义一个文件夹
下一步就是配置系统环境变量:变量名:MAVEN_HOME 变量值:(直接找到路径拷进去)
配置path:(变量值就是到bin目录的路径)
打开windows DOS窗口,键入命令 mvn -v 用来检验Windows是否成功配置Maven
在Maven中,有本地仓库与远程仓库的位置,Maven要导入jar包首先在本地仓库中查找是否有需要的该jar包,如果没有,便从远程仓库中下载该资源到本地仓库,Maven默认本地仓库目录路径中可能有空格问题,所以这里我们重新配置本地仓库,远程仓库由于防火墙的原因,会导致无下载速度,下载失败,所以我们也重新配置一下远程仓库,示例远程仓库为阿里Maven 方法如下:
(1)找一个不带空格或汉字的路径地址下创建一个文件夹,这里我起名为
(2)在Maven的conf目录下找到settings.xml文件,打开并编辑(原先是有很多注释的,我给删掉了)
一号为配置的本地仓库
二号为配置的远程仓库
C:\Maven\maven-repository
alimaven
aliyun maven
http://maven.aliyun.com/nexus/content/groups/public/
central
修改好保存之后进入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大佬的教程https://blog.csdn.net/yuehailin/article/details/79038332,本文就是根据此文章进行开发的
在数据库中创建测试表并插入几条数据
创建一个普通的Maven工程,上本项目目录:
先导入jar包(这里我并没有把整页代码贴上来,就贴了需要的部分代码)
有junit(单元测试),mybatis,hamcrest(配合4.1版本以上的Junit使用,否则报错),slf4j(日志记录),log4j(日志记录)
其实还应该导入ojdbc的jar包,但是我多次导入失败了,无奈只好手动导入(拉进去一个odbc6的jar包,然后在其上右键add bulids就OK了)
junit
junit
4.12
test
org.mybatis
mybatis
3.3.0
org.hamcrest
hamcrest-core
1.3
org.slf4j
slf4j-api
1.7.12
org.slf4j
slf4j-log4j12
1.7.12
log4j
log4j
1.2.17
创建实体类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;
}
}
配置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实体类,别的也装不了
配置连接参数等:创建mybatis-conf.xml (里面的内容希望会有大佬帮忙解答,因为这都是我随手一抄的!)
最后写个测试类测试一下吧!:创建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 userList = sqlSession.selectList("selectAll");
//调用遍历
printUserList(userList);
} finally {
sqlSession.close();
}
}
//这个方法可以传入列表,遍历列表,然后获得数据
private void printUserList(List 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();
}
}