IDEA开发多项目的示例
前言:慢慢习惯用IDEA了,觉得用起来确实还不错,有VS的感觉,但是缺点就是每次启动慢,如果修改以后反应也需要好久,这方面做得不好。但是职能提示个人觉得要比Eclipse好太多。好了现在我用IDEA来开发一个简单的功能,希望给刚刚使用不太熟悉或者准备使用IDEA的开发者一点帮助。
1:需求
我们开发一个项目基本的需要一个domain层、dao层、Service层、web层。有的时候我们也需要comment层(存放一些公共调用的一些类)
2:创建项目
第一步:我们先创建一个父工程。
点击file然后选择new选择项目然后到下面界面
然后按照他的提示下一步就成功的创建了父工程了。然后在pom中把packaging修改为pom,删除src整个目录。
第二步:创建子工程
找到你刚刚创建的父工程右击如下图
选择以后出现如下图的界面选择你需要的原型,比如(如果你要创建web就可以选择web,也可以不选择)
最后你对你的模块进行命名就可以了。
3:配置
请参考http://www.cnblogs.com/LipeiNet/p/5810251.html这个进行配置。
4:实战
主要功能就是添加用户到库中
在父工程的pom中把公共依然的jar引入,这是我引用的如下
<properties>
<spring_version>3.1.0.RELEASE</spring_version>
</properties>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spring_version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring_version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring_version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring_version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring_version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring_version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring_version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring_version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring_version}</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency> <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring_version}</version>
<exclusions>
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>com.migr.common</groupId>
<artifactId>migr-common-util</artifactId>
<version>1.0</version>
</dependency>
然后在domain工程中可以定义自己的实体类比喻我的就是一个UserBean类如下
public class UserBean implements Serializable{
private int id;//用户自增长id
private String username;//用户名
private String password;//密码
private String realname;//真实姓名
private int userroleid;//用户角色id;
private Date createdate;//添加日期
public String getUsername() {
return username;
} public void setUsername(String username) {
this.username = username;
} public int getId() {
return id;
} public void setId(int id) {
this.id = id;
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password;
} public String getRealname() {
return realname;
} public void setRealname(String realname) {
this.realname = realname;
} public int getUserroleid() {
return userroleid;
} public void setUserroleid(int userroleid) {
this.userroleid = userroleid;
} public Date getCreatedate() {
return createdate;
} public void setCreatedate(Date createdate) {
this.createdate = createdate;
}
}
在开始定义dao工程,在这里采用的是Mybatis,所以要把Mybatis jar包引进过来
<dependency>
<groupId>com.lp.rpc</groupId>
<artifactId>web-domain</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.2.2</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.2.7</version>
</dependency>
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.26</version>
</dependency>
定义dao中的接口和实现类
public interface UserDao {
/**
* 添加用户
* @param userBean 用户信息
* @return
*/
int add(UserBean userBean); /**
* 验证用户是否存在
* @param userBean 用户信息
* @return
*/
int isExistUser(UserBean userBean);
}
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.lp.rpc.dao.UserDao">
<insert id="add" parameterType="com.lp.web.beans.UserBean" keyProperty="id" useGeneratedKeys="true">
INSERT INTO user(username,password,realname,userroleid,createdate)VALUES
(#{username},#{password},#{realname},#{userroleid},#{createdate})
</insert>
<select id="isExistUser" parameterType="com.lp.web.beans.UserBean" resultType="java.lang.Integer">
SELECT COUNT(1) FROM user WHERE username=#{username} AND password=#{password}
</select>
</mapper>
注意的是可以把这个dao写在resource中如下图
竟然写完dao层了我们就要进行数据源的配置如下
spring-config-dao.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<import resource="spring-config-datasource.xml"/>
<!-- myBatis文件 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<!-- 自动扫描entity目录, 省掉Configuration.xml里的手工配置 -->
<property name="mapperLocations" value="classpath:sql/*.xml" />
</bean>
<!-- 注入映射的接口类 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.lp.rpc.dao" />
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory" />
</bean>
</beans>
spring-config-datasource.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
<property name="url" value="jdbc:mysql://localhost:3306/usermanagerdb?useUnicode=true"></property>
<property name="username" value="root"></property>
<property name="password" value="123456"></property>
<!--设置连接池初始值-->
<property name="initialSize" value="5"></property>
<!--设置连接池最大值-->
<property name="maxActive" value="200"></property>
<!--最大等待-->
<property name="maxWait" value="10000"></property>
<!--设置连接池最大空闲值-->
<property name="maxIdle" value="10"></property>
<!--设置连接池最小空闲值-->
<property name="minIdle" value="5"></property>
</bean>
</beans>
Service工程在这里比较简单
public interface UserService {
/**
* 添加用户信息
* @param userBean
* @return
*/
boolean add(UserBean userBean); /**
* 验证用户是否存在
* @param userBean
* @return
*/
boolean isExist(UserBean userBean);
}
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserDao userDao;
public boolean add(UserBean userBean) {
if (userDao.add(userBean)>=0){
return true;
}
return false;
} public boolean isExist(UserBean userBean) {
if (userDao.isExistUser(userBean)>0){
return true;
}
return false;
}
}
最后我们进可以进行web工程了
pom中需要引用下面这几个依赖包
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>3.0-alpha-1</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>javax.servlet.jsp-api</artifactId>
<version>2.2.1</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
然后建立如下的目录
然后add.jsp如下
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>添加用户</title>
</head>
<body>
<form action="/user/save" method="post">
<table>
<tr>
<td>用户名:<input type="text" name="username"></td>
<td>密码:<input type="text" name="password"></td> </tr>
<tr>
<td>真实姓名:<input type="text" name="realname"></td>
<td>用户角色id:<input type="text" name="userroleid"></td>
</tr>
<tr>
<td><input type="submit" value="提交"></td>
<td><input type="reset" value="重置"></td>
</tr>
</table>
</form>
</body>
</html>
然后在定义一个UserController
package com.lp.rpc; import com.lp.web.beans.UserBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.Date; /**
* Created by Administrator on 2016/9/2.
*/
@Controller
@RequestMapping(value = "/user/")
public class UserController {
@Autowired
private UserService userService; @RequestMapping(value = "dologin",method = RequestMethod.POST)
public ModelAndView login(HttpServletRequest request, HttpServletResponse response) {
String username = request.getParameter("username");
String password = request.getParameter("password");
UserBean userBean = new UserBean();
userBean.setUsername(username);
userBean.setPassword(password);
if (userService.isExist(userBean)){
return new ModelAndView("successful");
}
return new ModelAndView("add");
} @RequestMapping(value = "add",method = RequestMethod.POST)
public String add(){
return "add";
}
@RequestMapping(value = "save",method = RequestMethod.POST)
public String save(HttpServletRequest request, HttpServletResponse response)
{
String userName=request.getParameter("username");
String password=request.getParameter("password");
String userroleid=request.getParameter("userroleid");
String realname=request.getParameter("realname");
UserBean userBean=new UserBean();
userBean.setUsername(userName);
userBean.setPassword(password);
userBean.setCreatedate(new Date());
userBean.setRealname(realname);
userBean.setUserroleid(Integer.parseInt(userroleid));
if (userService.add(userBean)){
return "successful";
}
return "error";
}
}
然后进行配置web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/applicationContext.xml</param-value>
</context-param>
<!--springmvc开始-->
<servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/applicationContext.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
然后在进行配置Servlet解析器
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<!-- 前缀 -->
<property name="prefix" value="/WEB-INF/jsp/" />
<!-- 后缀 -->
<property name="suffix" value=".jsp" />
<property name="contentType" value="text/html;charset=UTF-8" />
</bean>
</beans>
最后把所有的配置文件导入applicationContext.xml中
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.1.xsd">
<import resource="classpath:spring-config-dao.xml"></import>
<import resource="spring-servlet.xml"></import>
<context:component-scan base-package="com.lp.*"/>
<context:annotation-config/>
</beans>
演示结果:
然后用zhangsan(库中不存在)去登陆就会跳转到添加用户页面
点击提交
如果在添加的时候java不是资源目标记得要转换下
ok结束了,主要流程基本就是这样的,如果没有使用过IDEA的或者初学者按照写一遍应该会明白IDEA的基本使用。
IDEA开发多项目的示例的更多相关文章
- Visual Studio 2015开发Qt项目实战经验分享(附项目示例源码)
Visual Studio 2015开发Qt项目实战经验分享(附项目示例源码) 转 https://blog.csdn.net/lhl1124281072/article/details/800 ...
- nodejs开发aspnet5项目
结合nodejs开发aspnet5项目 1.安装kvm 官方教程地址:https://github.com/ligershark/Kulture 打开 powershell命令窗口,找不到可以在开 ...
- 汇总一些知名的 JavaScript 开发开源项目
汇总一些知名的 JavaScript 开发开源项目 转自:CTOLib , www.ctolib.com/topics-107352.html ggraph - 图形可视化的凌乱数据 这是一个建立 ...
- SSM框架开发web项目系列(二) MyBatis真正的力量
前言 上篇SSM框架环境搭建篇,演示了我们进行web开发必不可少的一些配置和准备工作,如果这方面还有疑问的地方,可以先参考上一篇“SSM框架开发web项目系列(一) 环境搭建篇”.本文主要介绍MyBa ...
- SSM框架开发web项目系列(三) MyBatis之resultMap及关联映射
前言 在上篇MyBatis基础篇中我们独立使用MyBatis构建了一个简单的数据库访问程序,可以实现单表的基本增删改查等操作,通过该实例我们可以初步了解MyBatis操作数据库需要的一些组成部分(配置 ...
- SSM框架开发web项目系列(五) Spring集成MyBatis
前言 在前面的MyBatis部分内容中,我们已经可以独立的基于MyBatis构建一个数据库访问层应用,但是在实际的项目开发中,我们的程序不会这么简单,层次也更加复杂,除了这里说到的持久层,还有业务逻辑 ...
- springmvc 项目完整示例07 设置配置整合springmvc springmvc所需jar包springmvc web.xml文件配置
前面主要是后台代码,spring以及mybatis的整合 下面主要是springmvc用来处理请求转发,展现层的处理 之前所有做到的,完成了后台,业务层和持久层的开发完成了 接下来就是展现层了 有很多 ...
- 【转】前端Web开发MVC模式-入门示例
前端Web开发MVC模式-入门示例 MVC概论起初来之桌面应用开发.其实java的structs框架最能体现MVC框架:model模型是理解成服务器端的模块程序:view为发送给客服端的内容:cont ...
- Linux就业技术指导(二):简历项目经验示例
一,期中项目经验示例 1.1 新服务器上线搭建系统环境 1,根据现有结构部署工具(PXE+kickstart) 2,结合应用系统需求定制部署模版 3,制作系统优化等一键执行脚本 4,自动化部署实施 5 ...
随机推荐
- 动画总结(UIView的动画)
Main.storyboard ViewController.m // // ViewController.m // 8A08.动画总结 // // Created by huan on 16/ ...
- Java 元注解
元注解@Target,@Retention,@Documented,@Inherited * * @Target 表示该注解用于什么地方,可能的 ElemenetType 参数包括: * Elemen ...
- android ProgressBar 进度条的进度两端是圆角的方法
转自 http://www.jianshu.com/p/6e7ea842d5ce 另外工作原理可以参考http://blog.csdn.net/lan603168/article/details/44 ...
- python 元类
转载自 http://blog.jobbole.com/21351/ 类也是对象 在理解元类之前,你需要先掌握Python中的类.Python中类的概念借鉴于Smalltalk,这显得有些奇特.在大 ...
- Java学习笔记三——数据类型
前言 Java是强类型(strongly typed)语言,强类型包含两方面的含义: 所有的变量必须先声明后使用: 指定类型的变量只能接受预支匹配的值. 这意味着每一个变量和表达式都有一个在编译时就确 ...
- css块级元素,内联元素,内联块状元素
块元素 什么是块级元素?在html中<div><p><h1><form><ul>之类的就是块级元素.设置display:block是就将元素 ...
- 3.使用CXF开发webService
CXF 简介 关于 Apache CXF Apache CXF = Celtix + XFire,Apache CXF 的前身叫 Apache CeltiXfire,现在已经正式更名为 Apache ...
- FreeRTOS和Ucos在打开关闭中断的区别
- 【转】C#Winform程序如何发布并自动升级(图解)
有不少朋友问到C#Winform程序怎么样配置升级,怎么样打包,怎么样发布的,在这里我解释一下打包和发布关于打包的大家可以看我的文章C# winform程序怎么打包成安装项目(图解)其实打包是打包,发 ...
- Android前端人员与后台开发的撕逼(一)
首先表明一下身份,本人是Android前端开发人员,本篇只做合理性探讨,不进行人身攻击: 其次希望各位大神进行点评!点评!点评! 我们讨论一下接口的两种返回方式,直接举例说明一下,假设书籍信息表有30 ...