在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. @Entity
  9. @Table(name = "t_user")
  10. public class User {
  11.  
  12. private Integer id;
  13. private String username;
  14. private String password;
  15. private String email;
  16.  
  17. @Id
  18. @GeneratedValue
  19. public Integer getId() {
  20. return id;
  21. }
  22. public void setId(Integer id) {
  23. this.id = id;
  24. }
  25. public String getUsername() {
  26. return username;
  27. }
  28. public void setUsername(String username) {
  29. this.username = username;
  30. }
  31. public String getPassword() {
  32. return password;
  33. }
  34. public void setPassword(String password) {
  35. this.password = password;
  36. }
  37. public String getEmail() {
  38. return email;
  39. }
  40. public void setEmail(String email) {
  41. this.email = email;
  42. }
  43.  
  44. }

对应的表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实战】依赖的范围的更多相关文章

  1. Maven实战(六)依赖

    我们项目中用到的jar包可以通过依赖的方式引入,构建项目的时候从Maven仓库下载即可. 1. 依赖配置    依赖可以声明如下: <project> ... <dependenci ...

  2. (转)Maven实战(六)依赖

    我们项目中用到的jar包可以通过依赖的方式引入,构建项目的时候从Maven仓库下载即可. 1. 依赖配置    依赖可以声明如下: <project> ... <dependenci ...

  3. Maven实战(十一)eclipse下载依赖jar包出问题

    问题描述 在pom.xml中配置了依赖,但是提示依赖不成功,或在本地仓库找不到相关依赖 大致错误如下: ArtifactDescriptorException: Failed to read arti ...

  4. [Maven实战](9)传递性依赖

    了解Spring的朋友都知道.创建一个Spring Framework项目都须要依赖什么样的Jar包.假设不使用Maven,那么在项目中就须要手动下载相关的依赖.因为Spring Framework又 ...

  5. Maven实战读书笔记(三):Maven依赖

    3.1 依赖的配置 一个依赖声明可以包含下面元素: <dependencies> <dependency> <groupId></groupId> &l ...

  6. Maven实战07_依赖

    1:依赖声明 <project> ... <dependencies> <dependency> <groupId>...</groupId> ...

  7. Maven实战:Maven生命周期

    前言 之前有写过一篇文章Maven实战,介绍了Maven的一些基本概念,以及对于一个初学者而言的Maven基础知识,当时在我看来掌握了这些基本是够用的. 随着工作的深入,越来越感觉对于Maven的理解 ...

  8. 学习笔记——Maven实战(四)基于Maven的持续集成实践

    Martin的<持续集成> 相信很多读者和我一样,最早接触到持续集成的概念是来自Martin的著名文章<持续集成>,该文最早发布于2000年9月,之后在2006年进行了一次修订 ...

  9. 学习笔记——Maven实战(六)Gradle,构建工具的未来?

    Maven面临的挑战 软件行业新旧交替的速度之快往往令人咂舌,不用多少时间,你就会发现曾经大红大紫的技术已经成为了昨日黄花,当然,Maven也不会例外.虽然目前它基本上是Java构建的事实标准,但我们 ...

  10. 学习笔记——Maven实战(七)常用Maven插件介绍(上)

    我们都知道Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完成,例如编译源代码是由maven-compiler-plugin完成的.进一步说,每个任务对应了 ...

随机推荐

  1. python urllib2详解及实例

    urllib2是Python的一个获取URLs(Uniform Resource Locators)的组件.他以urlopen函数的形式提供了一个非常简单的接口, 这是具有利用不同协议获取URLs的能 ...

  2. tyvj1728 普通平衡树

    为了彻底理解树状数组,试着用树状数组做了下普通平衡树 而树状数组只能离线做,或者保证值的大小在数组可承受的范围内也是可以的,因为要求离线是因为必须事前对所有数离散化. 然后我们看刘汝佳蓝书上的图 利用 ...

  3. PHP学习之[第07讲]PHP5.4 文件操作函数 之 图片计数器的实例

    1.filetype():输出文件类型: 2.stat():获取文件的基本属性的数组: 3.clearstatcache().is_executable().isDir().idFile().scan ...

  4. 利用MyEclipse配置S2SH三大框架篇-Spring配置

    1.配置完Struts2后,然后配置Spring 2.单击“MyEclipse->Project Capabilities->Add Spring Capabilities” 3.选择Sp ...

  5. mybatis 多参数处理

    接口交互比较多, 所以 入参比较多,  有五个参数,是排序 参数, 跟这个五个参数排序,本来想写个对象的, 怕麻烦, 就把 五个参数 变成一个参数, 升序 1 ,降序2 ,比如  11221 ,第三第 ...

  6. Core Foundation框架介绍

    Core Foundation框架介绍 **参考网址: ARC下OC对象和CF对象之间的桥接 Core Foundation框架介绍 Core Foundation框架 Core Foundation ...

  7. Java的容器小结

    1. 各个类与接口的关系:

  8. 屏幕录像专家V7.5(完美破解版,无水印)下载

    分享一个屏幕录像工具.屏幕录像专家V7.5(完美破解版,无水印).经测试可破解使用. 破解注册 点击安装.EXE,安装软件. 点击安装好的屏幕录像专家,会给你一个机器码,要你注册,复制下这个机器码(下 ...

  9. centos7.2下安装mysql5.7,使用rpm包安装

    0.环境 本文操作系统: CentOS 7.2.1511 x86_64 MySQL 版本: 5.7.16 1.卸载系统自带的 mariadb-lib[root@centos-linux ~]# rpm ...

  10. centos 安装nginx

    centos 安装nginx 安装依赖 更换源 yum install http://mirrors.163.com/centos/6.8/extras/x86_64/Packages/epel-re ...