ITPub博客

首页 > 应用开发 > IT综合 > maven spring ibatis struts项目

maven spring ibatis struts项目

原创 IT综合 作者:杜珊 时间:2015-01-25 20:43:14 0 删除 编辑

pom.xml

    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/xsd/maven-4.0.0.xsd">
  4.0.0
 
   zttc.itat.user
   user-parent
   0.0.1-SNAPSHOT
   ../user-parent/pom.xml
 

  user-log
  jar

  user-log


 
   
      junit
      junit
   

   
  commons-logging
  commons-logging
 

 
 
  log4j
  log4j
 

            
            
 

src/main/java/zttc/itat/user/log

log.java


package zttc.itat.user.log;

public class Log {

}



user-core



  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  4.0.0
 
   zttc.itat.user
   user-parent
   0.0.1-SNAPSHOT
   ../user-parent/pom.xml
 

 
  user-core
  jar

  user-core

 
 
   
      junit
      junit
   

   
  org.hibernate
  hibernate-core
 

 
  mysql
  mysql-connector-java
 

 
  log4j
  log4j
 

 
  dbunit
  dbunit
 

                   
 

 
 
   
  org.apache.maven.plugins
  maven-compiler-plugin
 

 
  org.codehaus.mojo
  sql-maven-plugin
 

 
  org.codehaus.mojo
  cobertura-maven-plugin
 

 

 


 

src/main/java

    --zttc/itat/user/dao

userdao


package zttc.itat.user.dao;

import org.hibernate.Session;

import zttc.itat.user.model.User;
import zttc.itat.user.util.HibernateUtil;

public class UserDao implements IUserDao {

 public void add(User user) {
  Session session = null;
  try {
   session = HibernateUtil.openSession();
   session.beginTransaction();
   
   session.save(user);
   
   session.getTransaction().commit();
  } catch (Exception e) {
   e.printStackTrace();
  } finally {
   HibernateUtil.close(session);
  }
 }

 public User loadByUsername(String username) {
  Session session = null;
  User user = null;
  try {
   session = HibernateUtil.openSession();
   user = (User)session.createQuery("from User where username=?")
      .setParameter(0, username).uniqueResult();
   
  } catch (Exception e) {
   e.printStackTrace();
  } finally {
   HibernateUtil.close(session);
  }
  return user;
 }

}

iuserdao


package zttc.itat.user.dao;

import zttc.itat.user.model.User;

public interface IUserDao {
 public void add(User user);
 public User loadByUsername(String username);
}


zttc/itat/user/model

user.java

package zttc.itat.user.model;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

@Entity
@Table(name="t_user")
public class User {
 private int id;
 private String username;
 private String password;
 private String nickname;
 
 public User() {
  // TODO Auto-generated constructor stub
 }
 
 public User(String username, String password, String nickname) {
  super();
  this.username = username;
  this.password = password;
  this.nickname = nickname;
 }
 public User(int id, String username, String password, String nickname) {
  super();
  this.id = id;
  this.username = username;
  this.password = password;
  this.nickname = nickname;
 }
 @Id
 @GeneratedValue
 public int getId() {
  return id;
 }
 public void setId(int id) {
  this.id = id;
 }
 public String getUsername() {
  return username;
 }
 public void setUsername(String username) {
  this.username = username;
 }
 public String getPassword() {
  return password;
 }
 public void setPassword(String password) {
  this.password = password;
 }
 public String getNickname() {
  return nickname;
 }
 public void setNickname(String nickname) {
  this.nickname = nickname;
 }
}


zttc/itat/user/util

DbUtil.java


package zttc.itat.user.util;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

public class DbUtil {
 public static Connection getConnection() throws SQLException {
  Connection con = null;
  con = DriverManager.getConnection("jdbc:mysql://localhost:3306/itat_hibernate",
    "root", "123456");
  return con;
 }
 
 public static void close(Connection con) {
  try {
   if(con!=null) con.close();
  } catch (SQLException e) {
   e.printStackTrace();
  }
 }
 
 public static void close(PreparedStatement ps) {
  try {
   if(ps!=null) ps.close();
  } catch (SQLException e) {
   e.printStackTrace();
  }
 }
 
 public static void close(ResultSet rs) {
  try {
   if(rs!=null) rs.close();
  } catch (SQLException e) {
   e.printStackTrace();
  }
 }
}


hibernateUtil.java


package zttc.itat.user.util;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
import org.hibernate.service.ServiceRegistryBuilder;

public class HibernateUtil {
 private final static SessionFactory FACTORY = buildSessionFactory();

 private static SessionFactory buildSessionFactory() {
  Configuration cfg = new Configuration().configure();
  ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(cfg.getProperties()).buildServiceRegistry();
  SessionFactory factory = cfg.buildSessionFactory(serviceRegistry);
  return factory;
 }
 
 public static SessionFactory getSessionFactory() {
  return FACTORY;
 }
 
 public static Session openSession() {
  return FACTORY.openSession();
 }
 
 public static void close(Session session) {
  if(session!=null) session.close();
 }
}



src/main/resource

hibernate.cfg.xml



 "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
 "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">


 
 <!-- hibernate的方言,用来确定连接的数据库 -->
  org.hibernate.dialect.MySQLDialect
 <!-- 数据库的连接类 -->
  com.mysql.jdbc.Driver
 <!-- 数据库的连接字符串和用户名密码 -->
  jdbc:mysql://localhost:3306/itat_hibernate
  root
  123456
 <!-- 在使用hibernate时会显示相应的SQL -->
  <!-- true -->
 <!-- 会自动完成类到数据表的转换 -->
  update
 <!-- 加入实体类的映射文件 --> 
  
 



init.sql


use itat_maven_test;
create table IF NOT EXISTS t_user(
 id int(10) auto_increment primary key,
 username varchar(20),
 password varchar(20)
);



log4j.properties



### direct log messages to stdout ###
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### direct messages to file hibernate.log ###
#log4j.appender.file=org.apache.log4j.FileAppender
#log4j.appender.file.File=hibernate.log
#log4j.appender.file.layout=org.apache.log4j.PatternLayout
#log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n

### set log levels - for more verbose logging change 'info' to 'debug' ###

log4j.rootLogger=warn, stdout

#log4j.logger.org.hibernate=info
#log4j.logger.org.hibernate=debug

### log HQL query parser activity
#log4j.logger.org.hibernate.hql.ast.AST=debug

### log just the SQL
log4j.logger.org.hibernate.SQL=debug

### log JDBC bind parameters ###
#log4j.logger.org.hibernate.type=info
#log4j.logger.org.hibernate.type=debug

### log schema export/update ###
#log4j.logger.org.hibernate.tool.hbm2ddl=debug

### log HQL parse trees
#log4j.logger.org.hibernate.hql=debug

### log cache activity ###
#log4j.logger.org.hibernate.cache=debug

### log transaction activity
#log4j.logger.org.hibernate.transaction=debug

### log JDBC resource acquisition
#log4j.logger.org.hibernate.jdbc=debug

### enable the following line if you want to track down connection ###
### leakages when using DriverManagerConnectionProvider ###
#log4j.logger.org.hibernate.connection.DriverManagerConnectionProvider=trace



user-parten

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/xsd/maven-4.0.0.xsd">
 4.0.0
 zttc.itat.user
 user-parent
 0.0.1-SNAPSHOT
 pom

 http://maven.apache.org

 <!-- 导入了三个模块,把这三个模块聚合在一起了 -->
 
  <!-- 聚合是模块的位置 -->
  ../user-core
  ../user-log
  ../user-service
 

 
  
   user-release
   user release resp
   http://localhost:8081/nexus/content/repositories/cms-release/
  

  
   user-snapshots
   user snapshots resp
   http://localhost:8081/nexus/content/repositories/cms-snapshots/
  

 

 
  UTF-8
  com.mysql.jdbc.Driver
  jdbc:mysql://localhost:3306
  root
  123456
  D:\apache-tomcat-6.0.33-windows-x86
 

 <!-- nexus Nexus Repository
  http://localhost:8081/nexus/content/groups/public/
  true
snapshots默认是关闭的,需要手动开启 true
  
-->

 
  
   
    junit
    junit
    4.10
    test
   

   
    org.hibernate
    hibernate-core
    4.1.10.Final
   

   
    mysql
    mysql-connector-java
    5.1.24
    runtime
   

   
    log4j
    log4j
    1.2.17
   

   
    dbunit
    dbunit
    2.2
   

   
    commons-logging
    commons-logging
    1.1.1
   

   
    org.easymock
    easymock
    3.1
    test
   

   
    org.mortbay.jetty
    servlet-api
    2.5.20110712
    provided
   

   
    ${project.groupId}
    user-core
    ${project.version}
   

   
    ${project.groupId}
    user-service
    ${project.version}
   

   
    ${project.groupId}
    user-log
    ${project.version}
    
     <!-- 可以排除依赖 -->
     
      commons-logging
      commons-logging
     

    

   

  
 

 
  
   
    
      org.mortbay.jetty
      jetty-maven-plugin
     
        10
       
          /hello
       

       
          
              8787
              60000
          

        

     

    

    
     com.github.goldin
     copy-maven-plugin
     0.2.5
     
      
       copy-war
       package
       
        copy
       

       
        
         
          ${catalina.home}/webapps
          ${project.build.directory}
          
           user-web.war
          

         

        

       

      

     

    

    
     org.eclipse.m2e
     lifecycle-mapping
     1.0.0
     
      
       
        
         
          org.codehaus.mojo
          sql-maven-plugin
          [1.5,)
          
           execute
          

         

         
          
         

        

       

      

     

    

    
     org.codehaus.mojo
     sql-maven-plugin
     1.5
     <!-- 使用插件依然可以指定相应的依赖 -->
     
      
       mysql
       mysql-connector-java
       5.1.24
      

     

     
      ${jdbc.driver}
      ${jdbc.url}
      ${jdbc.username}
      ${jdbc.password}
     

     
      
       create-db
       compile
       
        execute
       

       
        create database IF NOT EXISTS itat_maven_test
       

      

      
       init-table
       test-compile
       
        execute
       

       
        
         src/main/resources/init.sql
        

       

      

     

    

    
     org.apache.maven.plugins
     maven-rar-plugin
     2.3
     
      
       
        rar
       

       package
      

     

     
      true
     

    

    
     org.codehaus.mojo
     cobertura-maven-plugin
     
      
       html
       xml
      

     

     
      
       cobertura-report
       
        cobertura
       

       test
      

     

    

    
     org.apache.maven.plugins
     maven-source-plugin
     2.2.1
     
      
       compile
       
        jar
       

      

     

    

    
     org.apache.maven.plugins
     maven-compiler-plugin
     3.0
     
      1.6
      1.6
      <!-- 此处设置了skip等于设置了把所有的测试编译都跳过,如果测试类写得有问题,也不会报错,所以一般不使用 -->
      <!-- true -->
     

    

    
     org.apache.maven.plugins
     maven-surefire-plugin
     2.14
     
      <!-- 设置包含的测试类 -->
      <!-- **/Hello* -->
      <!-- 设置不进行测试的类 Test* -->
      <!-- 跳过测试阶段,一般不推荐跳过 -->
      <!-- true -->
     

    

   

  

 



user-services

pom.xml

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/xsd/maven-4.0.0.xsd">
 4.0.0
 
  zttc.itat.user
  user-parent
  0.0.1-SNAPSHOT
  <!-- 继承的绝对路径是pom的文件 -->
  ../user-parent/pom.xml
 

 user-service
 jar

 user-service

 
  
   junit
   junit
   test
  

  
   org.jasig
   AjaxPortletSupport
   1.0.7
  

  
   org.easymock
   easymock
  

  
   ${project.groupId}
   user-core
  

  
   ${project.groupId}
   user-log
  

 

 
  
   
    org.apache.maven.plugins
    maven-source-plugin
   

   
    org.apache.maven.plugins
    maven-compiler-plugin
   

   
    org.apache.maven.plugins
    maven-rar-plugin
   

  

 


src/main/java

zttc/itat/user/service/userservice.java

package zttc.itat.user.service;

import zttc.itat.user.dao.IUserDao;
import zttc.itat.user.model.User;

public class UserService implements IUserService {
 private IUserDao userDao;

 public UserService(IUserDao userDao) {
  super();
  this.userDao = userDao;
 }

 public void add(User user) {
  userDao.add(user);
 }

 public User loadByUsername(String username) {
  return userDao.loadByUsername(username);
 }

}


iuserservice.java

package zttc.itat.user.service;

import zttc.itat.user.model.User;

public interface IUserService {
 public void add(User user);
 
 public User loadByUsername(String username);
}



src/test/java

zttc/itat/user/service

testuserservice.java

package zttc.itat.user.service;

import static org.easymock.EasyMock.*;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import zttc.itat.user.dao.IUserDao;
import zttc.itat.user.model.User;
import zttc.itat.user.util.EntitiesHelper;

public class TestUserService {
 private IUserDao userDao;
 private IUserService userService;
 private User baseUser;
 
 @Before
 public void setUp() {
  userDao = createStrictMock(IUserDao.class);
  userService = new UserService(userDao);
  baseUser = new User("admin","123","admin");
 }
 
 @Test
 public void testAdd() {
  userDao.add(baseUser);
  expectLastCall();
  replay(userDao);
  userService.add(baseUser);
 }
 
 @Test
 public void testLoadByUsername() {
  expect(userDao.loadByUsername("admin")).andReturn(baseUser);
  replay(userDao);
  User tu = userService.loadByUsername("admin");
  EntitiesHelper.assertUser(tu,baseUser);
 }
 
 @After
 public void tearDown() {
  verify(userDao);
 }
}


zttc/itat/user/util/entitieshelper.java



package zttc.itat.user.util;

import junit.framework.Assert;
import zttc.itat.user.model.User;

public class EntitiesHelper {
 private static User baseUser = new User(1,"admin","123","管理员");
 
 public static void assertUser(User expected,User actual) {
  Assert.assertNotNull(expected);
  Assert.assertEquals(expected.getId(), actual.getId());
  Assert.assertEquals(expected.getUsername(), actual.getUsername());
  Assert.assertEquals(expected.getPassword(), actual.getPassword());
  Assert.assertEquals(expected.getNickname(), actual.getNickname());
 }
 
 public static void assertUser(User expected) {
  assertUser(expected, baseUser);
 }
}




user-web

pom.xml



    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  4.0.0
 
    zttc.itat.user
    user-parent
    0.0.1-SNAPSHOT
    ../user-parent/pom.xml
 

  user-web
  war
  user-web Maven Webapp
  http://maven.apache.org
 
   
      junit
      junit
   

   
  org.mortbay.jetty
  servlet-api
   

   
  ${project.groupId}
  user-service
 

 

 
    user-web
   
     
      org.mortbay.jetty
   jetty-maven-plugin
     

   

 



src/main/java

zttc/itat/servlet/helloservlet.java




package zttc.itat.servlet;

import java.io.IOException;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import zttc.itat.user.model.User;

public class HelloServlet extends HttpServlet {
 /**
  *
  */
 private static final long serialVersionUID = 1L;

 @Override
 protected void doGet(HttpServletRequest req, HttpServletResponse resp)
   throws ServletException, IOException {
  req.setAttribute("user", new User("admin","123","管理员123"));
  req.getRequestDispatcher("/hello.jsp").forward(req, resp);
 }
}

src/main/webapp

hello.jsp




<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>




Insert title here


Hello---->${user.nickname }




ddd





web.xml



 xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
 xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
 id="WebApp_ID" version="2.5">
 Archetype Created Web Application
 
  HelloServlet
  zttc.itat.servlet.HelloServlet
 

 
  HelloServlet
  /hello.do
 


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30117285/viewspace-1414560/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
下一篇: sts web maven (转载)
请登录后发表评论 登录
全部评论

注册时间:2015-01-25

  • 博文量
    2
  • 访问量
    4060