Maven中有三大模块

在Maven中有三大模块,分别是依赖、仓库、生命周期和插件,我们接下来下来介绍下依赖,为了方便起见我们还是以案例来说:

1、首先建立一个maven项目,这里我建立一个user的项目

2、接下来我们在这个项目中要使用到hibernate框架,此时就要在此项目中加入hibernate的支持,而之前我们讲到maven会自动的为我们加入jar包,但是前提是我们要找到怎么样编写hibernate的引用,如何编写呢?接下来我们就要牵涉到依赖的查询,在maven中所有的依赖都是通过坐标来保存的(GAV-->groupId,artifactId,version),在网上有一些仓库为我们提供了一下项目的坐标,比如:http://mvnrepository.com/http://www.sonatype.org/nexus/等等,这里我们就使用mvnrepository仓库了,在里面搜索hibernate就能找到对应的hibernate包,如下:

如图,只需要将其中的dependency拷贝到当前项目的pom.xml中即可,如下:

 1 <dependencies>
2 <dependency>
3 <groupId>junit</groupId>
4 <artifactId>junit</artifactId>
5 <version>4.10</version>
6 <scope>test</scope>
7 </dependency>
8 <dependency>
9 <groupId>org.hibernate</groupId>
10 <artifactId>hibernate-core</artifactId>
11 <version>4.2.5.Final</version>
12 </dependency>
13 </dependencies>

保存后,maven就会首先检查本地仓库中是否有hibernate的支持包,如果没有的话则会到网上进行下载,这个过程可能会稍微有点慢!

这里附上hibernate的配置文件和数据库的创建脚本:

 1 <?xml version='1.0' encoding='UTF-8'?>
2 <!DOCTYPE hibernate-configuration PUBLIC
3 "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
4 "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
5 <!-- Generated by MyEclipse Hibernate Tools. -->
6 <hibernate-configuration>
7 <session-factory>
8 <property name="dialect">
9 org.hibernate.dialect.MySQLDialect
10 </property>
11 <property name="connection.url">
12 jdbc:mysql://localhost:3306/user
13 </property>
14 <property name="connection.username">root</property>
15 <property name="connection.password">wangzhen</property>
16 <property name="connection.driver_class">
17 org.gjt.mm.mysql.Driver
18 </property>
19 <property name="myeclipse.connection.profile">mysql</property>
20 <property name="show_sql">true</property>
21 <property name="format_sql">true</property>
22
23 <mapping class="com.lq.wangzhen.user.vo.User"/>
24 </session-factory>
25 </hibernate-configuration>

数据库user的创建脚本:

3、完成后我们在src下再建立一个文件夹,src/main/resources用来保存hibernate的资源文件和log4j的日志文件,这样的话,我们还要加入log4j的jar包,我们继续到仓库里面搜索log4j对应的依赖坐标。

继续在pom.xml中加入对log4j的支持:

 1 <dependencies>
2 <dependency>
3 <groupId>junit</groupId>
4 <artifactId>junit</artifactId>
5 <version>4.10</version>
6 <scope>test</scope>
7 </dependency>
8 <dependency>
9 <groupId>org.hibernate</groupId>
10 <artifactId>hibernate-core</artifactId>
11 <version>4.2.5.Final</version>
12 </dependency>
13 <dependency>
14 <groupId>log4j</groupId>
15 <artifactId>log4j</artifactId>
16 <version>1.2.17</version>
17 </dependency>
18 </dependencies>

4、因为要进行数据库的连接,所以这里还要加入对mysql数据库的依赖:

继续在pom.xml中加入对mysql的依赖支持:

 1 <dependencies>
2 <dependency>
3 <groupId>junit</groupId>
4 <artifactId>junit</artifactId>
5 <version>4.10</version>
6 <scope>test</scope>
7 </dependency>
8 <dependency>
9 <groupId>org.hibernate</groupId>
10 <artifactId>hibernate-core</artifactId>
11 <version>4.2.5.Final</version>
12 </dependency>
13 <dependency>
14 <groupId>log4j</groupId>
15 <artifactId>log4j</artifactId>
16 <version>1.2.17</version>
17 </dependency>
18 <dependency>
19 <groupId>mysql</groupId>
20 <artifactId>mysql-connector-java</artifactId>
21 <version>5.1.26</version>
22 </dependency>
23 </dependencies>

5、编写vo类User:

 1 package com.lq.wangzhen.user.vo;
2
3 import javax.persistence.Entity;
4 import javax.persistence.GeneratedValue;
5 import javax.persistence.Id;
6 import javax.persistence.Table;
7
8
9 @Entity
10 @Table(name = "t_user")
11 public class User {
12
13 private Integer id;
14 private String username;
15 private String password;
16 private String email;
17
18 @Id
19 @GeneratedValue
20 public Integer getId() {
21 return id;
22 }
23 public void setId(Integer id) {
24 this.id = id;
25 }
26 public String getUsername() {
27 return username;
28 }
29 public void setUsername(String username) {
30 this.username = username;
31 }
32 public String getPassword() {
33 return password;
34 }
35 public void setPassword(String password) {
36 this.password = password;
37 }
38 public String getEmail() {
39 return email;
40 }
41 public void setEmail(String email) {
42 this.email = email;
43 }
44
45
46 }

对应的表t_user的创建脚本:

1 create table t_user
2 (
3 id int primary key auto_increment,
4 username varchar(100),
5 password varchar(32),
6 email varchar(100)
7 );

6、编写测试类,在编写测试类之前我们要首先编写Hibernate的一个工具类,用来获得Session对象:

 1 package com.lq.wangzhen.user.vo;
2
3 import org.hibernate.Session;
4 import org.hibernate.SessionFactory;
5 import org.hibernate.cfg.Configuration;
6
7 public class HibernateUntil {
8
9 private static SessionFactory factory = null;
10
11 static{
12
13 factory = new Configuration().configure().buildSessionFactory();
14 }
15
16 public static Session openSession(){
17 return factory.openSession();
18 }
19 }

然后在编写测试类:

 1 package com.lq.wangzhen.test;
2
3 import org.hibernate.Session;
4 import org.junit.Assert;
5 import org.junit.Test;
6
7 import com.lq.wangzhen.user.vo.HibernateUntil;
8 import com.lq.wangzhen.user.vo.User;
9
10 public class TestUser {
11
12 @Test
13 public void testAdd(){
14 Session session = HibernateUntil.openSession();
15 session.beginTransaction();
16
17 User u = new User();
18 u.setUsername("zhangsan");
19 u.setPassword("123456");
20 u.setEmail("admin@admin.com");
21 session.save(u);
22 Assert.assertTrue(u.getId()>0);
23 session.getTransaction().commit();
24 }
25 }

通过myeclipse在pom.xml右键点击,运行Maven test,如图:

此时我们查看数据库,就可以看到数据库中多了一条数据:

然后运行maven install就可以进行程序的打包操作了:

 
 
分类: maven

Maven中有三大模块的更多相关文章

  1. maven 配置多模块项目 pom modules

    所有用Maven管理的真实的项目都应该是分模块的,每个模块都对应着一个pom.xml.它们之间通过继承和聚合(也称作多模块,multi-module)相互关联.那么,为什么要这么做呢?我们明明在开发一 ...

  2. SSH框架之一详解maven搭建多模块项目

    闲来无事,思量着自己搭建一个ssh框架,一来回顾熟悉一下ssh的内容,hibernate还就没用过了,生疏了都.二来整合一下,将其他掌握的和正在学习的框架核技术糅合到一起,就当是做一个demo练手了. ...

  3. Maven管理 划分模块

    转载地址:juvenshun.iteye.com/blog/305865 “分天下为三十六郡,郡置守,尉,监” —— <史记·秦始皇本纪> 所有用Maven管理的真实的项目都应该是分模块的 ...

  4. 使用Maven构建多模块项目

    [转] 使用Maven构建多模块项目 在平时的Javaweb项目开发中为了便于后期的维护,我们一般会进行分层开发,最常见的就是分为domain(域模型层).dao(数据库访问层).service(业务 ...

  5. Maven使用笔记(六)使用Maven进行多模块拆分

    模块拆分是Maven经常使用的功能,简单梳理一下如何使用Maven进行多模块拆分, 只做归纳总结,网上资料很多,不再一步一步实际创建和部署. >>建立Maven多模块项目 一个简单的Jav ...

  6. Maven 创建多模块工程

    1. 创建父项目 new -->project-->maven-->maven Project,然后下一步, 进入new maven Project的Select project n ...

  7. Maven管理多模块项目

    首先,我们要明确的多模块项目的含义,它是指一个应用中包含多个module.一般来说,一个应用单独部署成服务,只是打包的时候,maven会把各个module组合在一起.各模块一般单独打成jar放到lib ...

  8. Maven学习(2) - Maven构建多模块Java工程

    概述 项目开发时,通常会将项目分为多个模块进行开发,本文讨论如何用Maven构建多模块的Java工程. 软件环境 Java:1.6.0_26 Maven:3.1.1 OS:WindowXP SP3 项 ...

  9. maven导入多模块项目

    maven导入多模块项目   一.SVN上Maven多模块项目结构 使用eclipse导入SVN上的Maven多模块项目 Maven多模块项目所在SVN目录 二.eclipse通过SVN导入到工作空间 ...

随机推荐

  1. C#关于HttpClient的应用(二):融云IM集成

    public class RcHttpClient:BaseHttpClient { private String appKey; private String appSecret; public R ...

  2. Jquery zTree实例

    zTree[简单介绍] zTree 是利用 JQuery 的核心代码,实现一套能完毕大部分经常使用功能的 Tree 插件 兼容 IE.FireFox.Chrome 等浏览器 在一个页面内可同一时候生成 ...

  3. HDFS副本放置策略和机架感知

    副本放置策略 的副本放置策略的基本思想是: 第一block在复制和client哪里node于(假设client它不是群集的范围内,则这第一个node是随机选取的.当然系统会尝试不选择哪些太满或者太忙的 ...

  4. mysql 千分位 Format

    原文:mysql 千分位 Format select Format(123456789) 结果:123,456,789

  5. Cocos2d-xvision3.0加载失败,和,Vs2012环境搭建

    1.安装好VS2012,下载Cocos2d-x3.0 双击击win32 sln运行VS2012 如果加载失败点击程序运行,输入devenv.exe /resetuserdata 回车,然后再进入VS, ...

  6. SQL点滴27—性能分析之执行计划

    原文:SQL点滴27-性能分析之执行计划 一直想找一些关于SQL语句性能调试的权威参考,但是有参考未必就能够做好调试的工作.我深信实践中得到的经验是最珍贵的,书本知识只是一个引导.本篇来源于<I ...

  7. java查找反复类/jar包/普通文件

    开发web应用时,有时更新了类却没有生效,事实上是由于jboss/tomcat中其它公布包下有同名类(包含全路径都同样). 于是萌发了做个程序来检查指定文件夹是否存在反复类(通过asm从类文件里取类的 ...

  8. 探秘IntelliJ IDEA 13测试版新功能——调试器显示本地变量

    IntelliJ IDEA在业界被公认为最好的Java开发平台之一,JetBrains公司将在12月正式发布IntelliJ IDEA 13版本. 现在,小编将和大家一起探秘密IntelliJ IDE ...

  9. extern用法汇总

    extern 在源文件A里定义的函数,在其他源文件中是看不见的(即不能訪问).为了在源文件B里能调用这个函数,应该在B的头部加上一个外部声明: extern   函数原型: 这样,在源文件B里也能够调 ...

  10. windows下架设SVN服务器并设置开机启动

    原文:windows下架设SVN服务器并设置开机启动 1.安装SVN服务器,到http://subversion.apache.org/packages.html上下载windows版的SVN,并安装 ...