maven spring ibatis struts项目

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



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


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



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

 <!-- 导入了三个模块,把这三个模块聚合在一起了 --&gt
 
  <!-- 聚合是模块的位置 --&gt
  ../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
 

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

 
  
   
    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}
    
     <!-- 可以排除依赖 --&gt
     
      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
     <!-- 使用插件依然可以指定相应的依赖 --&gt
     
      
       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等于设置了把所有的测试编译都跳过,如果测试类写得有问题,也不会报错,所以一般不使用 --&gt
      <!-- true --&gt
     
    
    
     org.apache.maven.plugins
     maven-surefire-plugin
     2.14
     
      <!-- 设置包含的测试类 --&gt
      <!-- **/Hello* --&gt
      <!-- 设置不进行测试的类 Test* --&gt
      <!-- 跳过测试阶段,一般不推荐跳过 --&gt
      <!-- true --&gt
     
    
   
  
 



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的文件 --&gt
  ../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


<?xml version="1.0"?>
    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




    pageEncoding="UTF-8"%>




Insert title here


Hello----&gt${user.nickname }




ddd





web.xml


<?xml version="1.0" encoding="UTF-8"?>
 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博客 ” ,链接:http://blog.itpub.net/30117285/viewspace-1414560/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/30117285/viewspace-1414560/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值