SpringMVC快速入门(4)SpringMVC整合Mybatis,SpringMVC参数绑定
发布日期:2021-06-29 15:03:52 浏览次数:2 分类:技术文章

本文共 50303 字,大约阅读时间需要 167 分钟。

一、搭建项目工程

1、复制上次的工程并重新命名

在这里插入图片描述

2、引入jar包

在这里插入图片描述

在这里插入图片描述

3、创建数据库

/*Navicat MySQL Data TransferSource Server         : ZHENGSource Server Version : 50527Source Host           : localhost:3306Source Database       : mybatisTarget Server Type    : MYSQLTarget Server Version : 50527File Encoding         : 65001Date: 2021-03-31 20:44:29*/SET FOREIGN_KEY_CHECKS=0;-- ------------------------------ Table structure for `item`-- ----------------------------DROP TABLE IF EXISTS `item`;CREATE TABLE `item` (  `id` int(255) NOT NULL AUTO_INCREMENT,  `name` varchar(255) NOT NULL,  `price` double(255,0) NOT NULL,  `detail` varchar(255) NOT NULL,  `pic` varchar(255) NOT NULL,  `createtime` date NOT NULL,  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;-- ------------------------------ Records of item-- ----------------------------INSERT INTO `item` VALUES ('1', '张三', '100', '212', '2121', '2021-03-01');-- ------------------------------ Table structure for `order`-- ----------------------------DROP TABLE IF EXISTS `order`;CREATE TABLE `order` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `user_id` int(11) NOT NULL COMMENT '下单用户id',  `number` varchar(32) NOT NULL COMMENT '订单号',  `createtime` datetime NOT NULL COMMENT '创建订单时间',  `note` varchar(100) DEFAULT NULL COMMENT '备注',  PRIMARY KEY (`id`),  KEY `FK_orders_1` (`user_id`),  CONSTRAINT `FK_order_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;-- ------------------------------ Records of order-- ----------------------------INSERT INTO `order` VALUES ('3', '1', '1000010', '2015-02-04 13:22:35', null);INSERT INTO `order` VALUES ('4', '1', '1000011', '2015-02-03 13:22:41', null);INSERT INTO `order` VALUES ('5', '10', '1000012', '2015-02-12 16:13:23', null);-- ------------------------------ Table structure for `user`-- ----------------------------DROP TABLE IF EXISTS `user`;CREATE TABLE `user` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `username` varchar(32) NOT NULL COMMENT '用户名称',  `birthday` date DEFAULT NULL COMMENT '生日',  `sex` char(1) DEFAULT NULL COMMENT '性别',  `address` varchar(256) DEFAULT NULL COMMENT '地址',  `uuid2` varchar(128) DEFAULT NULL COMMENT 'uuid2',  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=47 DEFAULT CHARSET=utf8;-- ------------------------------ Records of user-- ----------------------------INSERT INTO `user` VALUES ('1', 'admin', '2014-07-10', '2', '呼和浩特', null);INSERT INTO `user` VALUES ('10', '王五', '2014-07-10', '1', '哈哈哈', null);INSERT INTO `user` VALUES ('16', '王五', '2014-07-10', '1', '略略略', null);INSERT INTO `user` VALUES ('22', '张娜', '2014-07-10', '1', '河北', null);INSERT INTO `user` VALUES ('24', '张三', '2014-07-10', '1', '内蒙古', null);INSERT INTO `user` VALUES ('25', '李四', '2014-07-10', '1', '河南', null);INSERT INTO `user` VALUES ('26', '赵六', '2014-07-10', '2', '广东', null);INSERT INTO `user` VALUES ('27', '张飞', '2021-01-26', '1', '四川', null);INSERT INTO `user` VALUES ('28', '张飞', '2021-01-29', '1', '四川', null);INSERT INTO `user` VALUES ('29', '张飞2', '2021-01-29', '1', '四川', null);INSERT INTO `user` VALUES ('30', '张角', '2021-01-29', '1', '四川', null);INSERT INTO `user` VALUES ('31', '张飞5', '2021-01-29', '1', '四川', null);INSERT INTO `user` VALUES ('32', '张飞7', '2021-01-29', '1', '四川', 'a5e55878-6207-11eb-877e-6045cbbd3ae1');INSERT INTO `user` VALUES ('34', '张飞7', '2021-01-29', '1', '四川', '2240280a-6208-11eb-877e-6045cbbd3ae1');INSERT INTO `user` VALUES ('35', '张飞7', '2021-01-29', '1', '四川', null);INSERT INTO `user` VALUES ('36', '张飞1111', '2021-01-30', '2', '深圳2121', null);INSERT INTO `user` VALUES ('37', '张飞1111', '2021-01-30', '2', '深圳2121', null);INSERT INTO `user` VALUES ('38', '张飞1111', '2021-03-09', '2', '深圳2121', null);INSERT INTO `user` VALUES ('39', '张飞1111', '2021-03-12', '2', '深圳2121', null);INSERT INTO `user` VALUES ('40', '张飞1111', '2021-03-12', '2', '深圳2121', null);INSERT INTO `user` VALUES ('41', '张飞1111', '2021-03-12', '2', '2121', null);INSERT INTO `user` VALUES ('42', '张飞1111', '2021-03-12', '2', '深圳2121', null);INSERT INTO `user` VALUES ('43', '张飞1111', '2021-03-13', '2', '深圳2121', null);INSERT INTO `user` VALUES ('44', '张飞1111', '2021-03-16', '2', '深圳2121', null);INSERT INTO `user` VALUES ('45', '张飞1111', '2021-03-16', '2', '深圳2121', null);INSERT INTO `user` VALUES ('46', '诸葛亮', null, '1', '三国蜀国', null);

一、Dao层

0、创建Item类

在这里插入图片描述

package com.itzheng.springmvc.pojo;import java.util.Date;public class Item {
private Integer id; private String name; private Float price; private String detail; private String pic; private Date createtime; 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 Float getPrice() {
return price; } public void setPrice(Float price) {
this.price = price; } public String getDetail() {
return detail; } public void setDetail(String detail) {
this.detail = detail == null ? null : detail.trim(); } public String getPic() {
return pic; } public void setPic(String pic) {
this.pic = pic == null ? null : pic.trim(); } public Date getCreatetime() {
return createtime; } public void setCreatetime(Date createtime) {
this.createtime = createtime; } @Override public String toString() {
return "Item [id=" + id + ", name=" + name + ", price=" + price + ", detail=" + detail + ", pic=" + pic + ", createtime=" + createtime + "]"; }}

1、创建ItemExample类

在这里插入图片描述

package com.itzheng.springmvc.pojo;import java.util.ArrayList;import java.util.Date;import java.util.List;public class ItemExample {
protected String orderByClause; protected boolean distinct; protected List
oredCriteria; public ItemExample() {
oredCriteria = new ArrayList
(); } 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
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
criteria; protected GeneratedCriteria() {
super(); criteria = new ArrayList
(); } public boolean isValid() {
return criteria.size() > 0; } public List
getAllCriteria() { return criteria; } public List
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
values) { addCriterion("id in", values, "id"); return (Criteria) this; } public Criteria andIdNotIn(List
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
values) { addCriterion("name in", values, "name"); return (Criteria) this; } public Criteria andNameNotIn(List
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 andPriceIsNull() { addCriterion("price is null"); return (Criteria) this; } public Criteria andPriceIsNotNull() { addCriterion("price is not null"); return (Criteria) this; } public Criteria andPriceEqualTo(Float value) { addCriterion("price =", value, "price"); return (Criteria) this; } public Criteria andPriceNotEqualTo(Float value) { addCriterion("price <>", value, "price"); return (Criteria) this; } public Criteria andPriceGreaterThan(Float value) { addCriterion("price >", value, "price"); return (Criteria) this; } public Criteria andPriceGreaterThanOrEqualTo(Float value) { addCriterion("price >=", value, "price"); return (Criteria) this; } public Criteria andPriceLessThan(Float value) { addCriterion("price <", value, "price"); return (Criteria) this; } public Criteria andPriceLessThanOrEqualTo(Float value) { addCriterion("price <=", value, "price"); return (Criteria) this; } public Criteria andPriceIn(List
values) { addCriterion("price in", values, "price"); return (Criteria) this; } public Criteria andPriceNotIn(List
values) { addCriterion("price not in", values, "price"); return (Criteria) this; } public Criteria andPriceBetween(Float value1, Float value2) { addCriterion("price between", value1, value2, "price"); return (Criteria) this; } public Criteria andPriceNotBetween(Float value1, Float value2) { addCriterion("price not between", value1, value2, "price"); return (Criteria) this; } public Criteria andDetailIsNull() { addCriterion("detail is null"); return (Criteria) this; } public Criteria andDetailIsNotNull() { addCriterion("detail is not null"); return (Criteria) this; } public Criteria andDetailEqualTo(String value) { addCriterion("detail =", value, "detail"); return (Criteria) this; } public Criteria andDetailNotEqualTo(String value) { addCriterion("detail <>", value, "detail"); return (Criteria) this; } public Criteria andDetailGreaterThan(String value) { addCriterion("detail >", value, "detail"); return (Criteria) this; } public Criteria andDetailGreaterThanOrEqualTo(String value) { addCriterion("detail >=", value, "detail"); return (Criteria) this; } public Criteria andDetailLessThan(String value) { addCriterion("detail <", value, "detail"); return (Criteria) this; } public Criteria andDetailLessThanOrEqualTo(String value) { addCriterion("detail <=", value, "detail"); return (Criteria) this; } public Criteria andDetailLike(String value) { addCriterion("detail like", value, "detail"); return (Criteria) this; } public Criteria andDetailNotLike(String value) { addCriterion("detail not like", value, "detail"); return (Criteria) this; } public Criteria andDetailIn(List
values) { addCriterion("detail in", values, "detail"); return (Criteria) this; } public Criteria andDetailNotIn(List
values) { addCriterion("detail not in", values, "detail"); return (Criteria) this; } public Criteria andDetailBetween(String value1, String value2) { addCriterion("detail between", value1, value2, "detail"); return (Criteria) this; } public Criteria andDetailNotBetween(String value1, String value2) { addCriterion("detail not between", value1, value2, "detail"); return (Criteria) this; } public Criteria andPicIsNull() { addCriterion("pic is null"); return (Criteria) this; } public Criteria andPicIsNotNull() { addCriterion("pic is not null"); return (Criteria) this; } public Criteria andPicEqualTo(String value) { addCriterion("pic =", value, "pic"); return (Criteria) this; } public Criteria andPicNotEqualTo(String value) { addCriterion("pic <>", value, "pic"); return (Criteria) this; } public Criteria andPicGreaterThan(String value) { addCriterion("pic >", value, "pic"); return (Criteria) this; } public Criteria andPicGreaterThanOrEqualTo(String value) { addCriterion("pic >=", value, "pic"); return (Criteria) this; } public Criteria andPicLessThan(String value) { addCriterion("pic <", value, "pic"); return (Criteria) this; } public Criteria andPicLessThanOrEqualTo(String value) { addCriterion("pic <=", value, "pic"); return (Criteria) this; } public Criteria andPicLike(String value) { addCriterion("pic like", value, "pic"); return (Criteria) this; } public Criteria andPicNotLike(String value) { addCriterion("pic not like", value, "pic"); return (Criteria) this; } public Criteria andPicIn(List
values) { addCriterion("pic in", values, "pic"); return (Criteria) this; } public Criteria andPicNotIn(List
values) { addCriterion("pic not in", values, "pic"); return (Criteria) this; } public Criteria andPicBetween(String value1, String value2) { addCriterion("pic between", value1, value2, "pic"); return (Criteria) this; } public Criteria andPicNotBetween(String value1, String value2) { addCriterion("pic not between", value1, value2, "pic"); return (Criteria) this; } public Criteria andCreatetimeIsNull() { addCriterion("createtime is null"); return (Criteria) this; } public Criteria andCreatetimeIsNotNull() { addCriterion("createtime is not null"); return (Criteria) this; } public Criteria andCreatetimeEqualTo(Date value) { addCriterion("createtime =", value, "createtime"); return (Criteria) this; } public Criteria andCreatetimeNotEqualTo(Date value) { addCriterion("createtime <>", value, "createtime"); return (Criteria) this; } public Criteria andCreatetimeGreaterThan(Date value) { addCriterion("createtime >", value, "createtime"); return (Criteria) this; } public Criteria andCreatetimeGreaterThanOrEqualTo(Date value) { addCriterion("createtime >=", value, "createtime"); return (Criteria) this; } public Criteria andCreatetimeLessThan(Date value) { addCriterion("createtime <", value, "createtime"); return (Criteria) this; } public Criteria andCreatetimeLessThanOrEqualTo(Date value) { addCriterion("createtime <=", value, "createtime"); return (Criteria) this; } public Criteria andCreatetimeIn(List
values) { addCriterion("createtime in", values, "createtime"); return (Criteria) this; } public Criteria andCreatetimeNotIn(List
values) { addCriterion("createtime not in", values, "createtime"); return (Criteria) this; } public Criteria andCreatetimeBetween(Date value1, Date value2) { addCriterion("createtime between", value1, value2, "createtime"); return (Criteria) this; } public Criteria andCreatetimeNotBetween(Date value1, Date value2) { addCriterion("createtime not between", value1, value2, "createtime"); 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); } }}

2、创建QueryVo类

在这里插入图片描述

package com.itzheng.springmvc.pojo;/** *  * @author Steven * */public class QueryVo {
private Item item; public Item getItem() {
return item; } public void setItem(Item item) {
this.item = item; } }

3、创建User类

在这里插入图片描述

package com.itzheng.springmvc.pojo;import java.util.Date;public class User {
private Integer id; private String username; private Date birthday; private String sex; private String address; public Integer getId() {
return id; } public void setId(Integer id) {
this.id = id; } public String getUsername() {
return username; } public void setUsername(String username) {
this.username = username == null ? null : username.trim(); } public Date getBirthday() {
return birthday; } public void setBirthday(Date birthday) {
this.birthday = birthday; } public String getSex() {
return sex; } public void setSex(String sex) {
this.sex = sex == null ? null : sex.trim(); } public String getAddress() {
return address; } public void setAddress(String address) {
this.address = address == null ? null : address.trim(); }}

4、创建UserExample类

在这里插入图片描述

package com.itzheng.springmvc.pojo;import java.util.ArrayList;import java.util.Date;import java.util.Iterator;import java.util.List;public class UserExample {
protected String orderByClause; protected boolean distinct; protected List
oredCriteria; public UserExample() {
oredCriteria = new ArrayList
(); } 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
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
criteria; protected GeneratedCriteria() {
super(); criteria = new ArrayList
(); } public boolean isValid() {
return criteria.size() > 0; } public List
getAllCriteria() { return criteria; } public List
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)); } protected void addCriterionForJDBCDate(String condition, Date value, String property) { if (value == null) { throw new RuntimeException("Value for " + property + " cannot be null"); } addCriterion(condition, new java.sql.Date(value.getTime()), property); } protected void addCriterionForJDBCDate(String condition, List
values, String property) { if (values == null || values.size() == 0) { throw new RuntimeException("Value list for " + property + " cannot be null or empty"); } List
dateList = new ArrayList
(); Iterator
iter = values.iterator(); while (iter.hasNext()) { dateList.add(new java.sql.Date(iter.next().getTime())); } addCriterion(condition, dateList, property); } protected void addCriterionForJDBCDate(String condition, Date value1, Date value2, String property) { if (value1 == null || value2 == null) { throw new RuntimeException("Between values for " + property + " cannot be null"); } addCriterion(condition, new java.sql.Date(value1.getTime()), new java.sql.Date(value2.getTime()), property); } 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
values) { addCriterion("id in", values, "id"); return (Criteria) this; } public Criteria andIdNotIn(List
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 andUsernameIsNull() { addCriterion("username is null"); return (Criteria) this; } public Criteria andUsernameIsNotNull() { addCriterion("username is not null"); return (Criteria) this; } public Criteria andUsernameEqualTo(String value) { addCriterion("username =", value, "username"); return (Criteria) this; } public Criteria andUsernameNotEqualTo(String value) { addCriterion("username <>", value, "username"); return (Criteria) this; } public Criteria andUsernameGreaterThan(String value) { addCriterion("username >", value, "username"); return (Criteria) this; } public Criteria andUsernameGreaterThanOrEqualTo(String value) { addCriterion("username >=", value, "username"); return (Criteria) this; } public Criteria andUsernameLessThan(String value) { addCriterion("username <", value, "username"); return (Criteria) this; } public Criteria andUsernameLessThanOrEqualTo(String value) { addCriterion("username <=", value, "username"); return (Criteria) this; } public Criteria andUsernameLike(String value) { addCriterion("username like", value, "username"); return (Criteria) this; } public Criteria andUsernameNotLike(String value) { addCriterion("username not like", value, "username"); return (Criteria) this; } public Criteria andUsernameIn(List
values) { addCriterion("username in", values, "username"); return (Criteria) this; } public Criteria andUsernameNotIn(List
values) { addCriterion("username not in", values, "username"); return (Criteria) this; } public Criteria andUsernameBetween(String value1, String value2) { addCriterion("username between", value1, value2, "username"); return (Criteria) this; } public Criteria andUsernameNotBetween(String value1, String value2) { addCriterion("username not between", value1, value2, "username"); return (Criteria) this; } public Criteria andBirthdayIsNull() { addCriterion("birthday is null"); return (Criteria) this; } public Criteria andBirthdayIsNotNull() { addCriterion("birthday is not null"); return (Criteria) this; } public Criteria andBirthdayEqualTo(Date value) { addCriterionForJDBCDate("birthday =", value, "birthday"); return (Criteria) this; } public Criteria andBirthdayNotEqualTo(Date value) { addCriterionForJDBCDate("birthday <>", value, "birthday"); return (Criteria) this; } public Criteria andBirthdayGreaterThan(Date value) { addCriterionForJDBCDate("birthday >", value, "birthday"); return (Criteria) this; } public Criteria andBirthdayGreaterThanOrEqualTo(Date value) { addCriterionForJDBCDate("birthday >=", value, "birthday"); return (Criteria) this; } public Criteria andBirthdayLessThan(Date value) { addCriterionForJDBCDate("birthday <", value, "birthday"); return (Criteria) this; } public Criteria andBirthdayLessThanOrEqualTo(Date value) { addCriterionForJDBCDate("birthday <=", value, "birthday"); return (Criteria) this; } public Criteria andBirthdayIn(List
values) { addCriterionForJDBCDate("birthday in", values, "birthday"); return (Criteria) this; } public Criteria andBirthdayNotIn(List
values) { addCriterionForJDBCDate("birthday not in", values, "birthday"); return (Criteria) this; } public Criteria andBirthdayBetween(Date value1, Date value2) { addCriterionForJDBCDate("birthday between", value1, value2, "birthday"); return (Criteria) this; } public Criteria andBirthdayNotBetween(Date value1, Date value2) { addCriterionForJDBCDate("birthday not between", value1, value2, "birthday"); return (Criteria) this; } public Criteria andSexIsNull() { addCriterion("sex is null"); return (Criteria) this; } public Criteria andSexIsNotNull() { addCriterion("sex is not null"); return (Criteria) this; } public Criteria andSexEqualTo(String value) { addCriterion("sex =", value, "sex"); return (Criteria) this; } public Criteria andSexNotEqualTo(String value) { addCriterion("sex <>", value, "sex"); return (Criteria) this; } public Criteria andSexGreaterThan(String value) { addCriterion("sex >", value, "sex"); return (Criteria) this; } public Criteria andSexGreaterThanOrEqualTo(String value) { addCriterion("sex >=", value, "sex"); return (Criteria) this; } public Criteria andSexLessThan(String value) { addCriterion("sex <", value, "sex"); return (Criteria) this; } public Criteria andSexLessThanOrEqualTo(String value) { addCriterion("sex <=", value, "sex"); return (Criteria) this; } public Criteria andSexLike(String value) { addCriterion("sex like", value, "sex"); return (Criteria) this; } public Criteria andSexNotLike(String value) { addCriterion("sex not like", value, "sex"); return (Criteria) this; } public Criteria andSexIn(List
values) { addCriterion("sex in", values, "sex"); return (Criteria) this; } public Criteria andSexNotIn(List
values) { addCriterion("sex not in", values, "sex"); return (Criteria) this; } public Criteria andSexBetween(String value1, String value2) { addCriterion("sex between", value1, value2, "sex"); return (Criteria) this; } public Criteria andSexNotBetween(String value1, String value2) { addCriterion("sex not between", value1, value2, "sex"); return (Criteria) this; } public Criteria andAddressIsNull() { addCriterion("address is null"); return (Criteria) this; } public Criteria andAddressIsNotNull() { addCriterion("address is not null"); return (Criteria) this; } public Criteria andAddressEqualTo(String value) { addCriterion("address =", value, "address"); return (Criteria) this; } public Criteria andAddressNotEqualTo(String value) { addCriterion("address <>", value, "address"); return (Criteria) this; } public Criteria andAddressGreaterThan(String value) { addCriterion("address >", value, "address"); return (Criteria) this; } public Criteria andAddressGreaterThanOrEqualTo(String value) { addCriterion("address >=", value, "address"); return (Criteria) this; } public Criteria andAddressLessThan(String value) { addCriterion("address <", value, "address"); return (Criteria) this; } public Criteria andAddressLessThanOrEqualTo(String value) { addCriterion("address <=", value, "address"); return (Criteria) this; } public Criteria andAddressLike(String value) { addCriterion("address like", value, "address"); return (Criteria) this; } public Criteria andAddressNotLike(String value) { addCriterion("address not like", value, "address"); return (Criteria) this; } public Criteria andAddressIn(List
values) { addCriterion("address in", values, "address"); return (Criteria) this; } public Criteria andAddressNotIn(List
values) { addCriterion("address not in", values, "address"); return (Criteria) this; } public Criteria andAddressBetween(String value1, String value2) { addCriterion("address between", value1, value2, "address"); return (Criteria) this; } public Criteria andAddressNotBetween(String value1, String value2) { addCriterion("address not between", value1, value2, "address"); 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); } }}

5、创建SqlMapConfig.xml

在这里插入图片描述

6、创建spring文件夹并创建applicationContext-dao.xml

a)数据库连接池

b)SqlSessionFactory对象,需要spring和mybatis整合包下的。
c)配置mapper文件扫描器
在这里插入图片描述

7、jdbc.properties和log4j.properties

在这里插入图片描述

jdbc.driver=com.mysql.jdbc.Driverjdbc.url=jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8jdbc.username=rootjdbc.password=root

在这里插入图片描述

# Global logging configurationlog4j.rootLogger=DEBUG, stdout# Console output...log4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n

8、创建mapper文件夹以及对应的类和映射

(1)创建ItemMapper接口和对应的方法

在这里插入图片描述

package com.itzheng.springmvc.mapper;import com.itzheng.springmvc.pojo.Item;import com.itzheng.springmvc.pojo.ItemExample;import java.util.List;import org.apache.ibatis.annotations.Param;public interface ItemMapper {
int countByExample(ItemExample example); int deleteByExample(ItemExample example); int deleteByPrimaryKey(Integer id); int insert(Item record); int insertSelective(Item record); List
selectByExample(ItemExample example); Item selectByPrimaryKey(Integer id); int updateByExampleSelective(@Param("record") Item record, @Param("example") ItemExample example); int updateByExample(@Param("record") Item record, @Param("example") ItemExample example); int updateByPrimaryKeySelective(Item record); int updateByPrimaryKey(Item record);}

(2)创建ItemMapper.xml

在这里插入图片描述

and ${criterion.condition}
and ${criterion.condition} #{criterion.value}
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
and ${criterion.condition}
#{listItem}
and ${criterion.condition}
and ${criterion.condition} #{criterion.value}
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
and ${criterion.condition}
#{listItem}
id, name, price, detail, pic, createtime
delete from item where id = #{id,jdbcType=INTEGER}
delete from item
insert into item (id, name, price, detail, pic, createtime ) values (#{id,jdbcType=INTEGER}, #{name,jdbcType=VARCHAR}, #{price,jdbcType=REAL}, #{detail,jdbcType=VARCHAR}, #{pic,jdbcType=VARCHAR}, #{createtime,jdbcType=TIMESTAMP} )
insert into item
id,
name,
price,
detail,
pic,
createtime,
#{id,jdbcType=INTEGER},
#{name,jdbcType=VARCHAR},
#{price,jdbcType=REAL},
#{detail,jdbcType=VARCHAR},
#{pic,jdbcType=VARCHAR},
#{createtime,jdbcType=TIMESTAMP},
update item
id = #{record.id,jdbcType=INTEGER},
name = #{record.name,jdbcType=VARCHAR},
price = #{record.price,jdbcType=REAL},
detail = #{record.detail,jdbcType=VARCHAR},
pic = #{record.pic,jdbcType=VARCHAR},
createtime = #{record.createtime,jdbcType=TIMESTAMP},
update item set id = #{record.id,jdbcType=INTEGER}, name = #{record.name,jdbcType=VARCHAR}, price = #{record.price,jdbcType=REAL}, detail = #{record.detail,jdbcType=VARCHAR}, pic = #{record.pic,jdbcType=VARCHAR}, createtime = #{record.createtime,jdbcType=TIMESTAMP}
update item
name = #{name,jdbcType=VARCHAR},
price = #{price,jdbcType=REAL},
detail = #{detail,jdbcType=VARCHAR},
pic = #{pic,jdbcType=VARCHAR},
createtime = #{createtime,jdbcType=TIMESTAMP},
where id = #{id,jdbcType=INTEGER}
update item set name = #{name,jdbcType=VARCHAR}, price = #{price,jdbcType=REAL}, detail = #{detail,jdbcType=VARCHAR}, pic = #{pic,jdbcType=VARCHAR}, createtime = #{createtime,jdbcType=TIMESTAMP} where id = #{id,jdbcType=INTEGER}

(3)创建UserMapper.java

在这里插入图片描述

package com.itzheng.springmvc.mapper;import com.itzheng.springmvc.pojo.User;import com.itzheng.springmvc.pojo.UserExample;import java.util.List;import org.apache.ibatis.annotations.Param;public interface UserMapper {
int countByExample(UserExample example); int deleteByExample(UserExample example); int deleteByPrimaryKey(Integer id); int insert(User record); int insertSelective(User record); List
selectByExample(UserExample example); User selectByPrimaryKey(Integer id); int updateByExampleSelective(@Param("record") User record, @Param("example") UserExample example); int updateByExample(@Param("record") User record, @Param("example") UserExample example); int updateByPrimaryKeySelective(User record); int updateByPrimaryKey(User record);}

(4)创建UserMapper.xml

在这里插入图片描述

and ${criterion.condition}
and ${criterion.condition} #{criterion.value}
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
and ${criterion.condition}
#{listItem}
and ${criterion.condition}
and ${criterion.condition} #{criterion.value}
and ${criterion.condition} #{criterion.value} and #{criterion.secondValue}
and ${criterion.condition}
#{listItem}
id, username, birthday, sex, address
delete from user where id = #{id,jdbcType=INTEGER}
delete from user
insert into user (id, username, birthday, sex, address) values (#{id,jdbcType=INTEGER}, #{username,jdbcType=VARCHAR}, #{birthday,jdbcType=DATE}, #{sex,jdbcType=CHAR}, #{address,jdbcType=VARCHAR})
insert into user
id,
username,
birthday,
sex,
address,
#{id,jdbcType=INTEGER},
#{username,jdbcType=VARCHAR},
#{birthday,jdbcType=DATE},
#{sex,jdbcType=CHAR},
#{address,jdbcType=VARCHAR},
update user
id = #{record.id,jdbcType=INTEGER},
username = #{record.username,jdbcType=VARCHAR},
birthday = #{record.birthday,jdbcType=DATE},
sex = #{record.sex,jdbcType=CHAR},
address = #{record.address,jdbcType=VARCHAR},
update user set id = #{record.id,jdbcType=INTEGER}, username = #{record.username,jdbcType=VARCHAR}, birthday = #{record.birthday,jdbcType=DATE}, sex = #{record.sex,jdbcType=CHAR}, address = #{record.address,jdbcType=VARCHAR}
update user
username = #{username,jdbcType=VARCHAR},
birthday = #{birthday,jdbcType=DATE},
sex = #{sex,jdbcType=CHAR},
address = #{address,jdbcType=VARCHAR},
where id = #{id,jdbcType=INTEGER}
update user set username = #{username,jdbcType=VARCHAR}, birthday = #{birthday,jdbcType=DATE}, sex = #{sex,jdbcType=CHAR}, address = #{address,jdbcType=VARCHAR} where id = #{id,jdbcType=INTEGER}

二、创建Service层

(一)创建Service的接口和对应的实现类

1、创建对应的接口的方法

在这里插入图片描述

package com.itzheng.springmvc.service;import java.util.List;import com.itzheng.springmvc.pojo.Item;/** * @author Steven * */public interface ItemService {
/** * @return */ List
getItemList(); /** * @param id * @return */ Item getItemById(Integer id); /** * @param item */ void updateItem(Item item);}

2、创建对应的实现类和对象与的方法

在这里插入图片描述

package com.itzheng.springmvc.service.impl;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Service;import com.itzheng.springmvc.mapper.ItemMapper;import com.itzheng.springmvc.pojo.Item;import com.itzheng.springmvc.service.ItemService;@Servicepublic class ItemServiceImpl implements ItemService {
@Autowired private ItemMapper itemMapper; @Override public List
getItemList() {
return itemMapper.selectByExample(null); } @Override public Item getItemById(Integer id) {
return itemMapper.selectByPrimaryKey(id); } @Override public void updateItem(Item item) {
itemMapper.updateByPrimaryKeySelective(item); }}

(二)Service对应的配置文件

1、applicationContext-service.xml包扫描器,扫描@service注解的类。

在这里插入图片描述

2、applicationContext-trans.xml配置事务。

在这里插入图片描述

三、Controller层:

Springmvc.xml

1、包扫描器,扫描@Controller注解的类。

2、配置注解驱动。

3、视图解析器

在这里插入图片描述

package com.itzheng.springmvc.controller;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Controller;import org.springframework.ui.Model;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.servlet.ModelAndView;import com.itzheng.springmvc.pojo.Item;import com.itzheng.springmvc.pojo.QueryVo;import com.itzheng.springmvc.service.ItemService;@Controllerpublic class ItemController {
@Autowired private ItemService itemService; @RequestMapping("itemList") public ModelAndView itemList() {
ModelAndView mav = new ModelAndView(); List
itemList = itemService.getItemList(); mav.addObject("itemList", itemList); // mav.setViewName("/WEB-INF/jsp/itemList.jsp"); mav.setViewName("itemList"); return mav; } /** * 跟据ID查询商品信息,跳转修改商品页面 * 演示默认支持的参数传递 * Model/ModelMap返回数据模型 * @param request * @param response * @param session * @return */ /*@RequestMapping("itemEdit") public String itemEdit(Model model,ModelMap modelMap,HttpServletRequest request, HttpServletResponse response, HttpSession session) { String idStr = request.getParameter("id"); System.out.println("response:" + response); System.out.println("session:" + session); // 查询商品信息 Item item = itemService.getItemById(new Integer(idStr)); //model返回数据模型 model.addAttribute("item", item); //mav.addObject("item", item); return "itemEdit"; }*/ @RequestMapping("itemEdit") public String itemEdit(Model model,@RequestParam(value="id",required=true,defaultValue="1") Integer ids) {
// 查询商品信息 Item item = itemService.getItemById(ids); //model返回数据模型 model.addAttribute("item", item); //mav.addObject("item", item); return "itemEdit"; } /** * 修改商品 * 演示pojo参数绑定 * @param item * @return */ @RequestMapping("updateItem") public String updateItem(Item item,Model model){
itemService.updateItem(item); model.addAttribute("item", item); model.addAttribute("msg", "修改商品信息成功"); return "itemEdit"; } @RequestMapping("queryItem") public String queryItem(QueryVo vo,Model model){
if(vo.getItem() != null){
System.out.println(vo.getItem()); } //模拟搜索商品 List
itemList = itemService.getItemList(); model.addAttribute("itemList", itemList); return "itemList"; }}

Springmvc.xml

在这里插入图片描述

四、Web.xml

1.配置spring容量监听器

2.配置前端控制器

在这里插入图片描述

03-springmvc-mybatis
index.html
index.htm
index.jsp
default.html
default.htm
default.jsp
contextConfigLocation
classpath:spring/applicationContext*.xml
org.springframework.web.context.ContextLoaderListener
encoding
org.springframework.web.filter.CharacterEncodingFilter
encoding
UTF-8
encoding
/*
springmvc-web
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
classpath:spring/springmvc.xml
springmvc-web
*.action

3.运行并测试项目:

在这里插入图片描述

五、SpringMVC参数绑定

支持的数据类型

参数类型推荐使用包装数据类型,因为基础数据类型不可以为null
整型:Integer、int
字符串:String
单精度:Float,float
双精度:Double、double
布尔型:Boolean ,boolean

1、默认支持的参数类型

基于完成需求:点击修改商品时,打开商品编辑页面,展示商品信息修改ItemController.java

在这里插入图片描述

@RequestMapping("itemEdit")	public String itemEdit(Model model,ModelMap modelMap,HttpServletRequest request, HttpServletResponse response, HttpSession session) {
String idStr = request.getParameter("id"); System.out.println("response:" + response); System.out.println("session:" + session); // 查询商品信息 Item item = itemService.getItemById(new Integer(idStr)); //model返回数据模型 model.addAttribute("item", item); //mav.addObject("item", item); return "itemEdit"; }

2、绑定简单参数

在这里插入图片描述

@RequestMapping("itemEdit")	public String itemEdit(Model model,@RequestParam(value="id",required=true,defaultValue="1") Integer ids) {
// 查询商品信息 Item item = itemService.getItemById(ids); //model返回数据模型 model.addAttribute("item", item); //mav.addObject("item", item); return "itemEdit"; }

在这里插入图片描述

运行并测试
在这里插入图片描述
不传递参数的情况下默认参数为1
在这里插入图片描述

3、创建修改商品的方法

(1)在controller层当中

在这里插入图片描述

/**	 * 修改商品	 * 演示pojo参数绑定	 * @param item	 * @return	 */	@RequestMapping("updateItem")	public String updateItem(Item item,Model model){
itemService.updateItem(item); model.addAttribute("item", item); model.addAttribute("msg", "修改商品信息成功"); return "itemEdit"; }
(2)在service层当中

接口方法

在这里插入图片描述

/**	 * @param item	 */	void updateItem(Item item);

实现方法

在这里插入图片描述

@Override	public void updateItem(Item item) {
itemMapper.updateByPrimaryKeySelective(item); }

运行并测试项目

在这里插入图片描述
修改信息后点击提交
在这里插入图片描述
修改成功
在这里插入图片描述

4、包装的pojo参数绑定

(1)创建包装类

在这里插入图片描述

package com.itzheng.springmvc.pojo;/** * @author Steven */public class QueryVo {
private Item item; public Item getItem() {
return item; } public void setItem(Item item) {
this.item = item; }}
(2)测试访问:

在这里插入图片描述

5、完善上述表单的查询方法

(1)修改itemList.jsp当中的内容

在这里插入图片描述

查询条件:	
商品名称: 商品价格:
商品列表:
(2)完善ItemController创建对应的查询的方法

在这里插入图片描述

@RequestMapping("queryItem")//绑定请求地址	public String queryItem(QueryVo vo,Model model){
if(vo.getItem() != null){
System.out.println(vo.getItem()); } //模拟搜索商品 List
itemList = itemService.getItemList(); model.addAttribute("itemList", itemList); return "itemList"; }
(3)运行测试

在这里插入图片描述
点击查询后台运行:条件查询成功
在这里插入图片描述

转载地址:https://code100.blog.csdn.net/article/details/115334290 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Java 解决SpringMVC的post请求乱码的问题
下一篇:SpringMVC快速入门(3)默认组件加载

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2024年04月09日 21时42分30秒