您的位置:首页 > 编程语言 > Java开发

从头到尾搭建用myeclipse2017+用maven搭建SSM框架+逆向生成实体以及sql语句。

2017-12-30 17:51 671 查看
        赶着元旦这两天放假准备重弄一个编程软件,之前的版本有点低了,好多功能都没有,然后从贴吧里面逛了一圈,就安装了myeclipse2017,并且安装好后就用maven搭建了一个SSM的框架。正好我的一个小项目要用到。

   首先这里是从官网下载好myeclipse2017,并且安装,这里是百度的地址:https://jingyan.baidu.com/article/a3aad71a1b0db9b1fb0096fb.html,然后就开始配置jdk了,



我的jdk安装的是1.7的安装在C盘,新建一个用户变量:JAVA_HOME 变量值:C:\Program Files\Java\jdk1.7.0_80



变量值就是你安装的路径:




再新建一个:



变量值:%JAVAHOME%\lib\tools.jar;%JAVAHOME%\lib\dt.jar;      注意分号不要丢。最后安装成功后我们打开myeclipse2017。

再接着我们的项目是要用maven来管理的,我们再来安装自己的maven,先从官网下载好解压到自己的电脑上


然后就是配置maven环境,右击我的电脑--》属性--》高级系统设置--》环境变量--》系统变量--》新建,如下图

接着编辑系统变量的Path:


接在之前的变量值后面就好。最后来检测下:打开命令行,输入mvn -v 如果出现下图的信息,那么恭喜你,配置成功了!当然,信息可能有些许出入,如版本不同等,这些不用在意。



接下来将eclipse集成的maven换成我们自己的,而不用eclipse自带的,重新定位,点击Window -> Preference -> Maven -> Installation -> Add进行设置,如下图


点击添加找到自己的解压路径,添加进来。

二添加tomcat

接下来开始添加tomcat进来,我是从官网下载的:https://tomcat.apache.org/download-70.cgi


然后解压放在你的电脑盘里面,我的是放在C盘:C:\apache-tomcat-7.0.82

然后再来设置下你的tomcat 用到的jdk:找到:C:\apache-tomcat-7.0.82\bin里面的startup.bat文件,然后在里面直接手动添加jdk路径:



收动添加这两句,也就是我们刚才配置的。保存退出。

打开myeclipse2017来
19498
添加tomcat:





add添加我们解压的修改好的tomcat。最后点OK,到此基本配置就好了。后面还用什么配置我们再配置。

开始建一个maven项目

  
我们开始新建一个web项目



第二部关键:



这里的版本一定要选择合适,我就因为版本搞了好长时间。点击完成。

完成后项目结构是这样的:


打开来一张


接下来就是配置文件了

首先是pom.xml

<project xmlns="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"> <modelVersion>4.0.0</modelVersion>
<groupId>dcxbs2</groupId>
<artifactId>dcxbs2</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>dcxbs2</name>
<description/>

<properties>
<webVersion>2.5</webVersion>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<srping.version>4.0.2.RELEASE</srping.version>
<mybatis.version>3.2.8</mybatis.version>
<slf4j.version>1.7.12</slf4j.version>
<log4j.version>1.2.17</log4j.version>
</properties>

<dependencies>
<!-- 单元测试 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!-- java ee包 -->
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
</dependency>
<!-- spring框架包 start -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${srping.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${srping.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
<version>${srping.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${srping.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${srping.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${srping.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${srping.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${srping.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-expression</artifactId>
<version>${srping.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${srping.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${srping.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${srping.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>${srping.version}</version>
</dependency>
<!-- spring框架包 end -->

<!-- mybatis框架包 start -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>${mybatis.version}</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.2.2</version>
</dependency>
<!-- 扩展MyBaits Generator工具时需要使用,不需要被打包 -->
<dependency>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-core</artifactId>
<version>1.3.2</version>
<scope>provided</scope>
</dependency>

<!-- mybatis框架包 end -->
<dependency>
<groupId>org.apache.openejb</groupId>
<artifactId>javaee-api</artifactId>
<version>5.0-1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.glassfish.web</groupId>
<artifactId>javax.servlet.jsp.jstl</artifactId>
<version>1.2.1</version>
</dependency>

<!-- 数据库驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.35</version>
</dependency>
<!-- Apache Commons -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.1</version>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.1</version>
</dependency>

<!-- 导入dbcp的jar包,用来在applicationContext.xml中配置数据库 -->
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>

<!-- jstl标签类 -->
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>

<!-- log start -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>${log4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${slf4j.version}</version>
</dependency>
<!-- log END -->

<!-- Json -->
<!-- 格式化对象,方便输出日志 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.6</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
<!-- 上传组件包 start -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.10</version>
</dependency>
<!-- 上传组件包 end -->

<!-- AL相关添加 -->
<dependency>
<groupId>net.sourceforge.jexcelapi</groupId>
<artifactId>jxl</artifactId>
<version>2.6</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.8</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.9</version>
</dependency>
<!-- AL相关添加 -->
</dependencies>

<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration/>
</plugin>
</plugins>
</build>
</project>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:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:cache="http://www.springframework.org/schema/cache"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/cache http://www.springframework.org/schema/cache/spring-cache-3.2.xsd">
<!-- 使用注解式注入 -->
<context:annotation-config />

<!-- 自动扫描 -->
<context:component-scan base-package="com.controller" >
<!-- 制定扫包规则 ,只扫描使用@Controller注解的JAVA类 -->
<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
<context:include-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice"/>
</context:component-scan>

<!-- 导入DAO配置 -->
<import resource="spring-dao.xml"/>

<!-- 导入数据库配置 -->
<import resource="spring-db.xml"/>

<!-- 导入事物配置 -->
<import resource="spring-tx.xml"/>

</beans>jdbc.properties
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/dcxbs
username=root
password=DCX5201314
initialSize=0
maxActive=20
maxIdle=20
minIdle=1
maxWait=60000log4j.properties
#定义LOG输出级别
log4j.rootLogger=DEBUG,Console,File
#定义日志输出目的地为控制台
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.Target=System.out
#可以灵活地指定日志输出格式,下面一行是指定具体的格式
log4j.appender.Console.layout = org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n

#文件大小到达指定尺寸的时候产生一个新的文件
log4j.appender.File = org.apache.log4j.RollingFileAppender
#指定输出目录
log4j.appender.File.File = logs/dcxlogs.log
#定义文件最大大小
log4j.appender.File.MaxFileSize = 10MB
# 输出所以日志,如果换成DEBUG表示输出DEBUG以上级别日志
log4j.appender.File.Threshold = ALL
log4j.appender.File.layout = org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%nspring-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" xmlns:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">
<!-- 自动扫描dao的接口文件,并注入Spring IOC容器 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.mapper" />
</bean>

</beans>spring-db.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:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"> 
<!-- 引入配置文件 -->
<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location" value="classpath:jdbc.properties" />
</bean>

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
<!-- 初始化连接大小 -->
<property name="initialSize" value="${initialSize}"></property>
<!-- 连接池最大数量 -->
<property name="maxActive" value="${maxActive}"></property>
<!-- 连接池最大空闲 -->
<property name="maxIdle" value="${maxIdle}"></property>
<!-- 连接池最小空闲 -->
<property name="minIdle" value="${minIdle}"></property>
<!-- 获取连接最大等待时间 -->
<property name="maxWait" value="${maxWait}"></property>
</bean>

<!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 -->
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<!-- 自动扫描mapping.xml文件 -->
<property name="mapperLocations" value="classpath:com/mapper/sqlmap/*.xml"></property>
</bean>

</beans>
spring-mvc.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:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.0.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd"> 
<!-- 启用@AspectJ注解,cglib动态代理 -->
<aop:aspectj-autoproxy proxy-target-class="true"/>
<!--避免IE执行AJAX时,返回JSON出现下载文件 -->
<bean id="mappingJacksonHttpMessageConverter"
class="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>text/html;charset=UTF-8</value>
</list>
</property>
</bean>

<!-- 添加注解驱动 -->
<mvc:annotation-driven />
<mvc:default-servlet-handler/>

<!-- 设置使用注解的类所在的包 -->
<context:component-scan base-package="com.controller" />

<!-- 完成请求和注解POJO的映射 -->
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<ref bean="mappingJacksonHttpMessageConverter" />	<!-- JSON转换器 -->
</list>
</property>
</bean>

<!-- 定义跳转的文件的前后缀 ,视图模式配置-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/jsp/" />
<property name="suffix" value=".jsp" />
</bean>

<!-- SpringMVC上传文件时,需要配置MultipartResolver处理器-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<!-- 默认编码 -->
<property name="defaultEncoding" value="utf-8" />
<!-- 文件大小最大值 -->
<property name="maxUploadSize" value="10485760000" />
<!-- 内存中的最大值 -->
<property name="maxInMemorySize" value="40960" />
</bean>

</beans>
spring-tx.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:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd"> 
<!-- (事务管理)transaction manager, use JtaTransactionManager for global tx -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>

<context:component-scan base-package="com.service"/>

<!--  配置参与事务的类 -->
<aop:config>
<aop:pointcut id="allServiceMethod" expression="execution(* com.chillax.service.*.*(..))" />
<aop:advisor pointcut-ref="allServiceMethod" advice-ref="TxAdvice" />
</aop:config>

<!-- 使用声明方式配置事务 -->
<tx:advice id="TxAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="*" propagation="REQUIRED" rollback-for="java.lang.Exception"/>
</tx:attributes>
</tx:advice>

</beans>

接下又要划重点了:

配置mybatis的逆向工程:http://blog.csdn.net/qq_34178998/article/details/78849600  可以参考我的这篇文章。
最后我们来写个程序进行测试:

comtroller

import java.util.List;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;

import com.model.Users;
import com.model.UsersExample;
import com.service.IUsersService;

/**
*
* 创建者:
* @param
* @return
* @date: 日期:2017-12-29 时间:下午4:00:10
*/

@Controller
@RequestMapping("/user")
public class usersController {
@Resource
private IUsersService usersService;

@RequestMapping("/userList")
public String userList(HttpServletRequest request,Model model){
UsersExample example=new UsersExample();
List<Users> uList = usersService.getAllUsers(example);
model.addAttribute("uList", uList);
return "userlist";
}

@RequestMapping("/addUser")
public String addUser(HttpServletRequest request,Model model){
Users users = new Users();
users.setName(String.valueOf(request.getParameter("name")));
users.setPwd(String.valueOf(request.getParameter("password")));
users.setAge(Integer.parseInt(String.valueOf(request.getParameter("age"))));
System.out.println("页面渠道的值"+users);
usersService.insertUser(users);
return "redirect:/user/userList.action";
}
}

service层接口:
package com.service;

import java.util.List;

import com.model.Users;
import com.model.UsersExample;

/**
*
* 创建者:
* @param
* @return
* @date: 日期:2017-12-29 时间:下午5:09:41
*/
public interface IUsersService {

public int insertUser(Users user);

public List<Users> getAllUsers(UsersExample example);
}实现层:
package com.service.impl;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.mapper.UsersMapper;
import com.model.Users;
import com.model.UsersExample;
import com.service.IUsersService;

/**
*
* 创建者:
* @return
* @date: 日期:2017-12-29 时间:下午5:23:13
*/
@Service
public class UsertsServiceImpl implements IUsersService{
@Resource
private UsersMapper usersMapper;

/**
* 添加
*/
@Override
public int insertUser(Users users) {
int num=usersMapper.insert(users);
return num;
}

/**
*
* 查询
*/
@Override
public List<Users> getAllUsers(UsersExample example) {
List<Users> list=usersMapper.selectByExample(example);
return list;
}

}
Mapper和sqlmap以及model,modelexample都是反向生成的
Mapper
package com.mapper;

import com.model.Users;
import com.model.UsersExample;
import java.util.List;
import org.apache.ibatis.annotations.Param;

public interface UsersMapper {
int countByExample(UsersExample example);

int deleteByExample(UsersExample example);

int deleteByPrimaryKey(Integer id);

int insert(Users record);

int insertSelective(Users record);

List<Users> selectByExample(UsersExample example);

Users selectByPrimaryKey(Integer id);

int updateByExampleSelective(@Param("record") Users record, @Param("example") UsersExample example);

int updateByExample(@Param("record") Users record, @Param("example") UsersExample example);

int updateByPrimaryKeySelective(Users record);

int updateByPrimaryKey(Users record);
}

sqlmap
<?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.mapper.UsersMapper" >
<resultMap id="BaseResultMap" type="com.model.Users" >
<id column="id" property="id" jdbcType="INTEGER" />
<result column="name" property="name" jdbcType="VARCHAR" />
<result column="age" property="age" jdbcType="INTEGER" />
<result column="pwd" property="pwd" jdbcType="VARCHAR" />
</resultMap>
<sql id="Example_Where_Clause" >
<where >
<foreach collection="oredCriteria" item="criteria" separator="or" >
<if test="criteria.valid" >
<trim prefix="(" suffix=")" prefixOverrides="and" >
<foreach collection="criteria.criteria" item="criterion" >
<choose >
<when test="criterion.noValue" >
and ${criterion.condition}
</when>
<when test="criterion.singleValue" >
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue" >
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue" >
and ${criterion.condition}
<foreach collection="criterion.value" item="listItem" open="(" close=")" separator="," >
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Update_By_Example_Where_Clause" >
<where >
<foreach collection="example.oredCriteria" item="criteria" separator="or" >
<if test="criteria.valid" >
<trim prefix="(" suffix=")" prefixOverrides="and" >
<foreach collection="criteria.criteria" item="criterion" >
<choose >
<when test="criterion.noValue" >
and ${criterion.condition}
</when>
<when test="criterion.singleValue" >
and ${criterion.condition} #{criterion.value}
</when>
<when test="criterion.betweenValue" >
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
</when>
<when test="criterion.listValue" >
and ${criterion.condition}
<foreach collection="criterion.value" item="listItem" open="(" close=")" separator="," >
#{listItem}
</foreach>
</when>
</choose>
</foreach>
</trim>
</if>
</foreach>
</where>
</sql>
<sql id="Base_Column_List" >
id, name, age, pwd
</sql>
<select id="selectByExample" resultMap="BaseResultMap" parameterType="com.model.UsersExample" >
select
<if test="distinct" >
distinct
</if>
<include refid="Base_Column_List" />
from users
<if test="_parameter != null" >
<include refid="Example_Where_Clause" />
</if>
<if test="orderByClause != null" >
order by ${orderByClause}
</if>
</select>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer" >
select
<include refid="Base_Column_List" />
from users
where id = #{id,jdbcType=INTEGER}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer" >
delete from users
where id = #{id,jdbcType=INTEGER}
</delete>
<delete id="deleteByExample" parameterType="com.model.UsersExample" >
delete from users
<if test="_parameter != null" >
<include refid="Example_Where_Clause" />
</if>
</delete>
<insert id="insert" parameterType="com.model.Users" >
insert into users (id, name, age,
pwd)
values (#{id,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR}, #{age,jdbcType=INTEGER},
#{pwd,jdbcType=VARCHAR})
</insert>
<insert id="insertSelective" parameterType="com.model.Users" >
insert into users
<trim prefix="(" suffix=")" suffixOverrides="," >
<if test="id != null" >
id,
</if>
<if test="name != null" >
name,
</if>
<if test="age != null" >
age,
</if>
<if test="pwd != null" >
pwd,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides="," >
<if test="id != null" >
#{id,jdbcType=INTEGER},
</if>
<if test="name != null" >
#{name,jdbcType=VARCHAR},
</if>
<if test="age != null" >
#{age,jdbcType=INTEGER},
</if>
<if test="pwd != null" >
#{pwd,jdbcType=VARCHAR},
</if>
</trim>
</insert>
<select id="countByExample" parameterType="com.model.UsersExample" resultType="java.lang.Integer" >
select count(*) from users
<if test="_parameter != null" >
<include refid="Example_Where_Clause" />
</if>
</select>
<update id="updateByExampleSelective" parameterType="map" >
update users
<set >
<if test="record.id != null" >
id = #{record.id,jdbcType=INTEGER},
</if>
<if test="record.name != null" >
name = #{record.name,jdbcType=VARCHAR},
</if>
<if test="record.age != null" >
age = #{record.age,jdbcType=INTEGER},
</if>
<if test="record.pwd != null" >
pwd = #{record.pwd,jdbcType=VARCHAR},
</if>
</set>
<if test="_parameter != null" >
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByExample" parameterType="map" >
update users
set id = #{record.id,jdbcType=INTEGER},
name = #{record.name,jdbcType=VARCHAR},
age = #{record.age,jdbcType=INTEGER},
pwd = #{record.pwd,jdbcType=VARCHAR}
<if test="_parameter != null" >
<include refid="Update_By_Example_Where_Clause" />
</if>
</update>
<update id="updateByPrimaryKeySelective" parameterType="com.model.Users" >
update users
<set >
<if test="name != null" >
name = #{name,jdbcType=VARCHAR},
</if>
<if test="age != null" >
age = #{age,jdbcType=INTEGER},
</if>
<if test="pwd != null" >
pwd = #{pwd,jdbcType=VARCHAR},
</if>
</set>
where id = #{id,jdbcType=INTEGER}
</update>
<update id="updateByPrimaryKey" parameterType="com.model.Users" >
update users
set name = #{name,jdbcType=VARCHAR},
age = #{age,jdbcType=INTEGER},
pwd = #{pwd,jdbcType=VARCHAR}
where id = #{id,jdbcType=INTEGER}
</update>
</mapper>model
package com.model;

public class Users {
private Integer id;

private String name;

private Integer age;

private String pwd;

public Integer getId() {
return id;
}

public void setId(Integer id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name == null ? null : name.trim();
}

public Integer getAge() {
return age;
}

public void setAge(Integer age) {
this.age = age;
}

public String getPwd() {
return pwd;
}

public void setPwd(String pwd) {
this.pwd = pwd == null ? null : pwd.trim();
}
}modelexample
package com.model;

import java.util.ArrayList;
import java.util.List;

public class UsersExample {
protected String orderByClause;

protected boolean distinct;

protected List<Criteria> oredCriteria;

public UsersExample() {
oredCriteria = new ArrayList<Criteria>();
}

public void setOrderByClause(String orderByClause) {
this.orderByClause = orderByClause;
}

public String getOrderByClause() {
return orderByClause;
}

public void setDistinct(boolean distinct) {
this.distinct = distinct;
}

public boolean isDistinct() {
return distinct;
}

public List<Criteria> getOredCriteria() {
return oredCriteria;
}

public void or(Criteria criteria) {
oredCriteria.add(criteria);
}

public Criteria or() {
Criteria criteria = createCriteriaInternal();
oredCriteria.add(criteria);
return criteria;
}

public Criteria createCriteria() {
Criteria criteria = createCriteriaInternal();
if (oredCriteria.size() == 0) {
oredCriteria.add(criteria);
}
return criteria;
}

protected Criteria createCriteriaInternal() {
Criteria criteria = new Criteria();
return criteria;
}

public void clear() {
oredCriteria.clear();
orderByClause = null;
distinct = false;
}

protected abstract static class GeneratedCriteria {
protected List<Criterion> criteria;

protected GeneratedCriteria() {
super();
criteria = new ArrayList<Criterion>();
}

public boolean isValid() {
return criteria.size() > 0;
}

public List<Criterion> getAllCriteria() {
return criteria;
}

public List<Criterion> getCriteria() {
return criteria;
}

protected void addCriterion(String condition) {
if (condition == null) {
throw new RuntimeException("Value for condition cannot be null");
}
criteria.add(new Criterion(condition));
}

protected void addCriterion(String condition, Object value, String property) {
if (value == null) {
throw new RuntimeException("Value for " + property + " cannot be null");
}
criteria.add(new Criterion(condition, value));
}

protected void addCriterion(String condition, Object value1, Object value2, String property) {
if (value1 == null || value2 == null) {
throw new RuntimeException("Between values for " + property + " cannot be null");
}
criteria.add(new Criterion(condition, value1, value2));
}

public Criteria andIdIsNull() {
addCriterion("id is null");
return (Criteria) this;
}

public Criteria andIdIsNotNull() {
addCriterion("id is not null");
return (Criteria) this;
}

public Criteria andIdEqualTo(Integer value) {
addCriterion("id =", value, "id");
return (Criteria) this;
}

public Criteria andIdNotEqualTo(Integer value) {
addCriterion("id <>", value, "id");
return (Criteria) this;
}

public Criteria andIdGreaterThan(Integer value) {
addCriterion("id >", value, "id");
return (Criteria) this;
}

public Criteria andIdGreaterThanOrEqualTo(Integer value) {
addCriterion("id >=", value, "id");
return (Criteria) this;
}

public Criteria andIdLessThan(Integer value) {
addCriterion("id <", value, "id");
return (Criteria) this;
}

public Criteria andIdLessThanOrEqualTo(Integer value) {
addCriterion("id <=", value, "id");
return (Criteria) this;
}

public Criteria andIdIn(List<Integer> values) {
addCriterion("id in", values, "id");
return (Criteria) this;
}

public Criteria andIdNotIn(List<Integer> values) {
addCriterion("id not in", values, "id");
return (Criteria) this;
}

public Criteria andIdBetween(Integer value1, Integer value2) {
addCriterion("id between", value1, value2, "id");
return (Criteria) this;
}

public Criteria andIdNotBetween(Integer value1, Integer value2) {
addCriterion("id not between", value1, value2, "id");
return (Criteria) this;
}

public Criteria andNameIsNull() {
addCriterion("name is null");
return (Criteria) this;
}

public Criteria andNameIsNotNull() {
addCriterion("name is not null");
return (Criteria) this;
}

public Criteria andNameEqualTo(String value) {
addCriterion("name =", value, "name");
return (Criteria) this;
}

public Criteria andNameNotEqualTo(String value) {
addCriterion("name <>", value, "name");
return (Criteria) this;
}

public Criteria andNameGreaterThan(String value) {
addCriterion("name >", value, "name");
return (Criteria) this;
}

public Criteria andNameGreaterThanOrEqualTo(String value) {
addCriterion("name >=", value, "name");
return (Criteria) this;
}

public Criteria andNameLessThan(String value) {
addCriterion("name <", value, "name");
return (Criteria) this;
}

public Criteria andNameLessThanOrEqualTo(String value) {
addCriterion("name <=", value, "name");
return (Criteria) this;
}

public Criteria andNameLike(String value) {
addCriterion("name like", value, "name");
return (Criteria) this;
}

public Criteria andNameNotLike(String value) {
addCriterion("name not like", value, "name");
return (Criteria) this;
}

public Criteria andNameIn(List<String> values) {
addCriterion("name in", values, "name");
return (Criteria) this;
}

public Criteria andNameNotIn(List<String> values) {
addCriterion("name not in", values, "name");
return (Criteria) this;
}

public Criteria andNameBetween(String value1, String value2) {
addCriterion("name between", value1, value2, "name");
return (Criteria) this;
}

public Criteria andNameNotBetween(String value1, String value2) {
addCriterion("name not between", value1, value2, "name");
return (Criteria) this;
}

public Criteria andAgeIsNull() {
addCriterion("age is null");
return (Criteria) this;
}

public Criteria andAgeIsNotNull() {
addCriterion("age is not null");
return (Criteria) this;
}

public Criteria andAgeEqualTo(Integer value) {
addCriterion("age =", value, "age");
return (Criteria) this;
}

public Criteria andAgeNotEqualTo(Integer value) {
addCriterion("age <>", value, "age");
return (Criteria) this;
}

public Criteria andAgeGreaterThan(Integer value) {
addCriterion("age >", value, "age");
return (Criteria) this;
}

public Criteria andAgeGreaterThanOrEqualTo(Integer value) {
addCriterion("age >=", value, "age");
return (Criteria) this;
}

public Criteria andAgeLessThan(Integer value) {
addCriterion("age <", value, "age");
return (Criteria) this;
}

public Criteria andAgeLessThanOrEqualTo(Integer value) {
addCriterion("age <=", value, "age");
return (Criteria) this;
}

public Criteria andAgeIn(List<Integer> values) {
addCriterion("age in", values, "age");
return (Criteria) this;
}

public Criteria andAgeNotIn(List<Integer> values) {
addCriterion("age not in", values, "age");
return (Criteria) this;
}

public Criteria andAgeBetween(Integer value1, Integer value2) {
addCriterion("age between", value1, value2, "age");
return (Criteria) this;
}

public Criteria andAgeNotBetween(Integer value1, Integer value2) {
addCriterion("age not between", value1, value2, "age");
return (Criteria) this;
}

public Criteria andPwdIsNull() {
addCriterion("pwd is null");
return (Criteria) this;
}

public Criteria andPwdIsNotNull() {
addCriterion("pwd is not null");
return (Criteria) this;
}

public Criteria andPwdEqualTo(String value) {
addCriterion("pwd =", value, "pwd");
return (Criteria) this;
}

public Criteria andPwdNotEqualTo(String value) {
addCriterion("pwd <>", value, "pwd");
return (Criteria) this;
}

public Criteria andPwdGreaterThan(String value) {
addCriterion("pwd >", value, "pwd");
return (Criteria) this;
}

public Criteria andPwdGreaterThanOrEqualTo(String value) {
addCriterion("pwd >=", value, "pwd");
return (Criteria) this;
}

public Criteria andPwdLessThan(String value) {
addCriterion("pwd <", value, "pwd");
return (Criteria) this;
}

public Criteria andPwdLessThanOrEqualTo(String value) {
addCriterion("pwd <=", value, "pwd");
return (Criteria) this;
}

public Criteria andPwdLike(String value) {
addCriterion("pwd like", value, "pwd");
return (Criteria) this;
}

public Criteria andPwdNotLike(String value) {
addCriterion("pwd not like", value, "pwd");
return (Criteria) this;
}

public Criteria andPwdIn(List<String> values) {
addCriterion("pwd in", values, "pwd");
return (Criteria) this;
}

public Criteria andPwdNotIn(List<String> values) {
addCriterion("pwd not in", values, "pwd");
return (Criteria) this;
}

public Criteria andPwdBetween(String value1, String value2) {
addCriterion("pwd between", value1, value2, "pwd");
return (Criteria) this;
}

public Criteria andPwdNotBetween(String value1, String value2) {
addCriterion("pwd not between", value1, value2, "pwd");
return (Criteria) this;
}
}

public static class Criteria extends GeneratedCriteria {

protected Criteria() {
super();
}
}

public static class Criterion {
private String condition;

private Object value;

private Object secondValue;

private boolean noValue;

private boolean singleValue;

private boolean betweenValue;

private boolean listValue;

private String typeHandler;

public String getCondition() {
return condition;
}

public Object getValue() {
return value;
}

public Object getSecondValue() {
return secondValue;
}

public boolean isNoValue() {
return noValue;
}

public boolean isSingleValue() {
return singleValue;
}

public boolean isBetweenValue() {
return betweenValue;
}

public boolean isListValue() {
return listValue;
}

public String getTypeHandler() {
return typeHandler;
}

protected Criterion(String condition) {
super();
this.condition = condition;
this.typeHandler = null;
this.noValue = true;
}

protected Criterion(String condition, Object value, String typeHandler) {
super();
this.condition = condition;
this.value = value;
this.typeHandler = typeHandler;
if (value instanceof List<?>) {
this.listValue = true;
} else {
this.singleValue = true;
}
}

protected Criterion(String condition, Object value) {
this(condition, value, null);
}

protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
super();
this.condition = condition;
this.value = value;
this.secondValue = secondValue;
this.typeHandler = typeHandler;
this.betweenValue = true;
}

protected Criterion(String condition, Object value, Object secondValue) {
this(condition, value, secondValue, null);
}
}
}最后再来看下数据库



最后我们建两个jsp页面测试下:



adduser.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>My JSP 'adduser.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

</head>

<body>
<form id="addUser" action="user/addUser.action" method="post">
userName: <input id="name" name="name" /><br/>
password: <input id="password" name="password" /><br/>
age: <input id="age" name="age"/><br/>
<input type="submit" value="添加新用户"/>
</form>
</body>
</html>userlist.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">

<title>My JSP 'userlist.jsp' starting page</title>

<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->

</head>

<body>
<c:forEach items="${uList }" var="u">
用户名称:${u.name}
用户年龄:${u.age }
<br/>
</c:forEach>
</body>
</html>


好了最后我们添加到tomcat上运行测试下:



点击添加之后调转页面



再来看下数据库:



好的,添加成功。欢迎一起交流。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: