idea简单的一对一增删改查
代码生成器
package com. nxy. config;
import com. baomidou. mybatisplus. core. exceptions. MybatisPlusException;
import com. baomidou. mybatisplus. core. toolkit. StringPool;
import com. baomidou. mybatisplus. extension. plugins. PaginationInterceptor;
import com. baomidou. mybatisplus. extension. plugins. pagination. optimize. JsqlParserCountOptimize;
import com. baomidou. mybatisplus. generator. AutoGenerator;
import com. baomidou. mybatisplus. generator. InjectionConfig;
import com. baomidou. mybatisplus. generator. config. *;
import com. baomidou. mybatisplus. generator. config. po. TableInfo;
import com. baomidou. mybatisplus. generator. config. rules. NamingStrategy;
import com. baomidou. mybatisplus. generator. engine. FreemarkerTemplateEngine;
import org. apache. commons. lang3. StringUtils;
import org. mybatis. spring. annotation. MapperScan;
import org. slf4j. Logger;
import org. slf4j. LoggerFactory;
import org. springframework. context. annotation. Bean;
import org. springframework. context. annotation. Configuration;
import org. springframework. transaction. annotation. EnableTransactionManagement;
import java. util. ArrayList;
import java. util. List;
import java. util. Scanner;
@EnableTransactionManagement
@Configuration
@MapperScan ( "com.nxy.mapper" )
public class MybatisPlusConfig {
private Logger logger = LoggerFactory. getLogger ( MybatisPlusConfig. class ) ;
@Bean
public PaginationInterceptor paginationInterceptor ( ) {
PaginationInterceptor paginationInterceptor = new PaginationInterceptor ( ) ;
paginationInterceptor. setCountSqlParser ( new JsqlParserCountOptimize ( true ) ) ;
return paginationInterceptor;
}
public static void main ( String[ ] args) {
String moduleName = "homework-0526" ;
AutoGenerator mpg = new AutoGenerator ( ) ;
GlobalConfig gc = new GlobalConfig ( ) ;
String projectPath = System. getProperty ( "user.dir" ) ;
gc. setOutputDir ( projectPath + "/" + moduleName+ "/src/main/java" ) ;
gc. setAuthor ( "牛星元" ) ;
gc. setOpen ( false ) ;
mpg. setGlobalConfig ( gc) ;
DataSourceConfig dsc = new DataSourceConfig ( ) ;
dsc. setUrl ( "jdbc:mysql://localhost:3306/xiao4day2-1?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai" ) ;
dsc. setDriverName ( "com.mysql.jdbc.Driver" ) ;
dsc. setUsername ( "root" ) ;
dsc. setPassword ( "487857" ) ;
mpg. setDataSource ( dsc) ;
PackageConfig pc = new PackageConfig ( ) ;
pc. setParent ( "com.nxy" ) ;
mpg. setPackageInfo ( pc) ;
InjectionConfig cfg = new InjectionConfig ( ) {
@Override
public void initMap ( ) {
}
} ;
String templatePath = "/templates/mapper.xml.ftl" ;
List< FileOutConfig> focList = new ArrayList < > ( ) ;
focList. add ( new FileOutConfig ( templatePath) {
@Override
public String outputFile ( TableInfo tableInfo) {
return projectPath + "/" + moduleName + "/src/main/resources/mappers/" + tableInfo. getEntityName ( ) + "Mapper" + StringPool. DOT_XML;
}
} ) ;
cfg. setFileOutConfigList ( focList) ;
mpg. setCfg ( cfg) ;
TemplateConfig templateConfig = new TemplateConfig ( ) ;
templateConfig. setXml ( null) ;
mpg. setTemplate ( templateConfig) ;
StrategyConfig strategy = new StrategyConfig ( ) ;
strategy. setNaming ( NamingStrategy. underline_to_camel) ;
strategy. setColumnNaming ( NamingStrategy. underline_to_camel) ;
strategy. setEntityLombokModel ( true ) ;
strategy. setRestControllerStyle ( true ) ;
strategy. setInclude ( "t_student" , "t_classes" ) ;
strategy. setControllerMappingHyphenStyle ( true ) ;
strategy. setTablePrefix ( "t_" ) ;
mpg. setStrategy ( strategy) ;
mpg. setTemplateEngine ( new FreemarkerTemplateEngine ( ) ) ;
mpg. execute ( ) ;
}
public static String scanner ( String someThing) {
Scanner scanner = new Scanner ( System. in) ;
StringBuilder help = new StringBuilder ( ) ;
help. append ( "请输入" + someThing + ":" ) ;
System. out. println ( help. toString ( ) ) ;
if ( scanner. hasNext ( ) ) {
String sc = scanner. next ( ) ;
if ( StringUtils. isNotEmpty ( sc) ) {
return sc;
}
}
throw new MybatisPlusException ( "请输入正确的" + someThing + "!" ) ;
}
}
实体类
package com. nxy. entity;
import com. baomidou. mybatisplus. annotation. TableName;
import com. baomidou. mybatisplus. annotation. IdType;
import com. baomidou. mybatisplus. annotation. TableId;
import java. io. Serializable;
import lombok. Data;
import lombok. EqualsAndHashCode;
import lombok. experimental. Accessors;
@Data
@EqualsAndHashCode ( callSuper = false )
@Accessors ( chain = true )
@TableName ( "t_classes" )
public class Classes implements Serializable {
private static final long serialVersionUID = 1 L;
@TableId ( value = "cid" , type = IdType. AUTO)
private Integer cid;
private String cname;
}
package com. nxy. entity;
import com. baomidou. mybatisplus. annotation. TableName;
import com. baomidou. mybatisplus. annotation. IdType;
import java. time. LocalDate;
import com. baomidou. mybatisplus. annotation. TableId;
import java. io. Serializable;
import java. util. Date;
import lombok. Data;
import lombok. EqualsAndHashCode;
import lombok. experimental. Accessors;
import org. springframework. format. annotation. DateTimeFormat;
@Data
@EqualsAndHashCode ( callSuper = false )
@Accessors ( chain = true )
@TableName ( "t_student" )
public class Student implements Serializable {
private static final long serialVersionUID = 1 L;
@TableId ( value = "id" , type = IdType. AUTO)
private Integer id;
private String name;
private String sex;
@DateTimeFormat ( pattern = "yyyy-MM-dd" )
private Date cdate;
private Integer cid;
private String cname;
}
Mapper
package com. nxy. mapper;
import com. nxy. entity. Classes;
import com. baomidou. mybatisplus. core. mapper. BaseMapper;
public interface ClassesMapper extends BaseMapper < Classes> {
}
package com. nxy. mapper;
import com. nxy. entity. Classes;
import com. nxy. entity. Student;
import com. baomidou. mybatisplus. core. mapper. BaseMapper;
import java. util. List;
public interface StudentMapper extends BaseMapper < Student> {
List< Student> list ( Student student) ;
int add ( Student student) ;
int pldel ( int [ ] ids) ;
int upd ( Student student) ;
List< Classes> findAll ( ) ;
Student findOne ( Student student) ;
}
service
package com. nxy. service;
import com. nxy. entity. Classes;
import com. baomidou. mybatisplus. extension. service. IService;
public interface IClassesService extends IService < Classes> {
}
package com. nxy. service;
import com. github. pagehelper. PageInfo;
import com. nxy. entity. Classes;
import com. nxy. entity. Student;
import com. baomidou. mybatisplus. extension. service. IService;
import java. util. List;
public interface IStudentService extends IService < Student> {
PageInfo< Student> list ( Student student, Integer pageNum, Integer pageSize) ;
int add ( Student student) ;
int pldel ( int [ ] ids) ;
int upd ( Student student) ;
List< Classes> findAll ( ) ;
Student findOne ( Student student) ;
}
ServiceImpl
package com. nxy. service. impl;
import com. nxy. entity. Classes;
import com. nxy. mapper. ClassesMapper;
import com. nxy. service. IClassesService;
import com. baomidou. mybatisplus. extension. service. impl. ServiceImpl;
import org. springframework. stereotype. Service;
@Service
public class ClassesServiceImpl extends ServiceImpl < ClassesMapper, Classes> implements IClassesService {
}
package com. nxy. service. impl;
import com. github. pagehelper. PageHelper;
import com. github. pagehelper. PageInfo;
import com. nxy. entity. Classes;
import com. nxy. entity. Student;
import com. nxy. mapper. StudentMapper;
import com. nxy. service. IStudentService;
import com. baomidou. mybatisplus. extension. service. impl. ServiceImpl;
import org. springframework. beans. factory. annotation. Autowired;
import org. springframework. stereotype. Service;
import java. util. List;
@Service
public class StudentServiceImpl extends ServiceImpl < StudentMapper, Student> implements IStudentService {
@Autowired
private StudentMapper studentMapper;
@Override
public PageInfo< Student> list ( Student student, Integer pageNum, Integer pageSize) {
PageHelper. startPage ( pageNum, pageSize) ;
return new PageInfo < Student> ( studentMapper. list ( student) ) ;
}
@Override
public int add ( Student student) {
return studentMapper. add ( student) ;
}
@Override
public int pldel ( int [ ] ids) {
return studentMapper. pldel ( ids) ;
}
@Override
public int upd ( Student student) {
return studentMapper. upd ( student) ;
}
@Override
public List< Classes> findAll ( ) {
return studentMapper. findAll ( ) ;
}
@Override
public Student findOne ( Student student) {
return studentMapper. findOne ( student) ;
}
}
Mapper.xml
< ? 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.nxy.mapper.ClassesMapper" >
< / mapper>
< ? 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.nxy.mapper.StudentMapper" >
< select id= "list" resultType= "Student" >
SELECT * FROM t_student s LEFT JOIN t_classes c on ( s. cid= c. cid)
< / select>
< select id= "findOne" resultType= "Student" >
SELECT * FROM t_student s LEFT JOIN t_classes c on ( s. cid= c. cid) where id= #{ id}
< / select>
< select id= "findAll" resultType= "Classes" >
SELECT * FROM t_classes
< / select>
< insert id= "add" >
insert into t_student value ( null, #{ name} , #{ sex} , #{ cdate} , #{ cid} )
< / insert>
< update id= "upd" >
update t_student set name= #{ name} , sex= #{ sex} , cdate= #{ cdate} , cid= #{ cid} where id= #{ id}
< / update>
< delete id= "pldel" >
delete from t_student where id in
< foreach collection= "array" item= "id" open= "(" close= ")" separator= "," >
#{ id}
< / foreach>
< / delete>
< / mapper>
Controller层
package com. nxy. controller;
import com. github. pagehelper. PageInfo;
import com. nxy. entity. Classes;
import com. nxy. entity. Student;
import com. nxy. service. IStudentService;
import org. mybatis. spring. annotation. MapperScan;
import org. springframework. beans. factory. annotation. Autowired;
import org. springframework. stereotype. Controller;
import org. springframework. ui. ModelMap;
import org. springframework. web. bind. annotation. RequestMapping;
import org. springframework. web. bind. annotation. RequestParam;
import org. springframework. web. bind. annotation. RestController;
import java. util. List;
@Controller
@MapperScan ( "com.nxy.mapper" )
public class StudentController {
@Autowired
private IStudentService iStudentService;
@RequestMapping ( "list" )
public String list ( ModelMap modelMap, Student student, @RequestParam ( defaultValue = "1" ) Integer pageNum, @RequestParam ( defaultValue = "5" ) Integer pageSize) {
PageInfo< Student> info = iStudentService. list ( student, pageNum, pageSize) ;
modelMap. addAttribute ( "info" , info) ;
return "list" ;
}
@RequestMapping ( "add" )
public String add ( ModelMap modelMap, Student student) {
int add = iStudentService. add ( student) ;
return "redirect:list" ;
}
@RequestMapping ( "upd" )
public String upd ( ModelMap modelMap, Student student) {
int upd = iStudentService. upd ( student) ;
return "redirect:list" ;
}
@RequestMapping ( "toadd" )
public String toadd ( ModelMap modelMap) {
List< Classes> all = iStudentService. findAll ( ) ;
modelMap. addAttribute ( "all" , all) ;
return "add" ;
}
@RequestMapping ( "toupd" )
public String toupd ( ModelMap modelMap, Student student) {
List< Classes> all = iStudentService. findAll ( ) ;
Student one = iStudentService. findOne ( student) ;
modelMap. addAttribute ( "all" , all) ;
modelMap. addAttribute ( "one" , one) ;
return "upd" ;
}
@RequestMapping ( "pldel" )
public String pldel ( @RequestParam ( "ids" ) int [ ] ids) {
int i = iStudentService. pldel ( ids) ;
return "redirect:list" ;
}
}
application.properties
#应用配置
spring. application. name= homework- 0522
server. port= 8081
#数据源
spring. datasource. url= jdbc: mysql: / / localhost: 3306 / xiao4day2- 1 ? useUnicode= true & characterEncoding= utf8& serverTimezone= Asia/ Shanghai
spring. datasource. username= root
spring. datasource. password= root
#全局设置@JsonFormat 的格式pattern
spring. jackson. date- format= yyyy- MM- dd HH: mm: ss
#设置全局时区
spring. jackson. time- zone= GMT+ 8
#不为空的属性才会序列化
spring. jackson. default - property- inclusion= non_null
#java. util. date转换成timestamp
spring. jackson. serialization. write- dates- as- timestamps= false
#对象为空时是否报错,默认true
spring. jackson. serialization. fail- on- empty- beans= false
#json中含pojo不存在属性时是否失败报错, 默认true
spring. jackson. deserialization. fail- on- unknown- properties= false
#mybatis- plus配置
mybatis- plus. type- aliases- package = com. nxy. entity
mybatis- plus. mapper- locations= classpath: mappers
前台List
< ! DOCTYPE html>
< html lang= "en" >
< head>
< meta charset= "UTF-8" >
< title> Title< / title>
< link href= "/css/bootstrap.css" rel= "stylesheet" >
< script src= "/js/jquery.min.js" > < / script>
< script src= "/js/bootstrap.min.js" > < / script>
< / head>
< body>
< script>
function toupd ( id) {
location= "toupd?id=" + id;
}
function toadd ( ) {
location= "toadd" ;
}
function pldel ( ) {
var ids= new Array ( ) ;
$( "#c1:checked" ) . each (
function ( ) {
ids. push ( $( this ) . val ( ) ) ;
}
)
alert ( ids)
var re = confirm ( "确认删除?" )
if ( re== false )
return ;
location= "pldel?ids=" + ids;
}
< / script>
< button onclick= "toadd()" > 添加< / button> < button onclick= "pldel()" > 批量删除< / button>
< table class = "table" >
< tr>
< td> 选择< / td>
< td> 姓名< / td>
< td> 性别< / td>
< td> 班级< / td>
< td> 入学日期< / td>
< td> 操作< / td>
< / tr>
< #list info. list as m>
< tr>
< td> < input type= "checkbox" id= "c1" value= "${m.id!}" > < / td>
< td> ${ m. name! } < / td>
< td> ${ m. sex! } < / td>
< td> ${ m. cname! } < / td>
< td> ${ ( m. cdate? string ( 'yyyy-MM-dd' ) ) ! } < / td>
< td> < button onclick= "toupd(${m.id!})" > 编辑< / button> < / td>
< / tr>
< / #list>
< / table>
< / body>
< / html>
前台Add
< ! DOCTYPE html>
< html lang= "en" >
< head>
< meta charset= "UTF-8" >
< title> Title< / title>
< link href= "/css/bootstrap.css" rel= "stylesheet" >
< script src= "/js/jquery.min.js" > < / script>
< script src= "/js/bootstrap.min.js" > < / script>
< / head>
< body>
< form action= "add" method= "post" >
姓名< input type= "text" name= "name" > < br>
性别< input type= "text" name= "sex" > < br>
班级< select name= "cid" >
< option value= "0" > 请选择班级< / option>
< #list all as c>
< option value= "${c.cid!}" > ${ c. cname! } < / option>
< / #list>
< / select> < br>
入学日期< input type= "date" name= "cdate" > < br>
< button> 添加< / button>
< / form>
< / body>
< / html>
前台LUpdate
< ! DOCTYPE html>
< html lang= "en" >
< head>
< meta charset= "UTF-8" >
< title> Title< / title>
< link href= "/css/bootstrap.css" rel= "stylesheet" >
< script src= "/js/jquery.min.js" > < / script>
< script src= "/js/bootstrap.min.js" > < / script>
< / head>
< body>
< form action= "upd" method= "post" >
< input type= "text" name= "id" value= "${one.id!}" >
姓名< input type= "text" name= "name" value= "${one.name!}" > < br>
性别< input type= "text" name= "sex" value= "${one.sex!}" > < br>
班级< select name= "cid" >
< option value= "0" > 请选择班级< / option>
< #list all as c>
< #if one. cid? ? && one. cid== c. cid>
< option value= "${c.cid!}" selected> ${ c. cname! } < / option>
< #else > < option value= "${c.cid!}" > ${ c. cname! } < / option>
< / #if >
< / #list>
< / select> < br>
入学日期< input type= "date" name= "cdate" value= "${(one.cdate?string('yyyy-MM-dd'))!}" > < br>
< button> 保存< / button>
< / form>
< / body>
< / html>
pom.xml
< ? xml version= "1.0" encoding= "UTF-8" ? >
< 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>
< parent>
< groupId> org. springframework. boot< / groupId>
< artifactId> spring- boot- starter- parent< / artifactId>
< version> 2.2 .5 . RELEASE< / version>
< relativePath/ > < ! -- lookup parent from repository -- >
< / parent>
< groupId> com. niuxingyuan. springboot< / groupId>
< artifactId> homework- 0526 < / artifactId>
< version> 1.0 - SNAPSHOT< / version>
< name> com. niuxingyuan. springboot< / name>
< description> Demo project for Spring Boot< / description>
< properties>
< java. version> 1.8 < / java. version>
< / properties>
< dependencies>
< ! -- web -- >
< dependency>
< groupId> org. springframework. boot< / groupId>
< artifactId> spring- boot- starter- web< / artifactId>
< / dependency>
< ! -- mysql java驱动 -- >
< dependency>
< groupId> mysql< / groupId>
< artifactId> mysql- connector- java< / artifactId>
< scope> runtime< / scope>
< / dependency>
< ! -- mybatis- plus -- >
< dependency>
< groupId> com. baomidou< / groupId>
< artifactId> mybatis- plus- boot- starter< / artifactId>
< version> 3.3 .1 . tmp< / version>
< / dependency>
< ! -- test -- >
< dependency>
< groupId> org. springframework. boot< / groupId>
< artifactId> spring- boot- starter- test< / artifactId>
< / dependency>
< ! -- freemarker -- >
< dependency>
< groupId> org. springframework. boot< / groupId>
< artifactId> spring- boot- starter- freemarker< / artifactId>
< / dependency>
< ! -- 日志 -- >
< dependency>
< groupId> org. springframework. boot< / groupId>
< artifactId> spring- boot- starter- logging< / artifactId>
< / dependency>
< ! -- pagehelper -- >
< dependency>
< groupId> com. github. pagehelper< / groupId>
< artifactId> pagehelper- spring- boot- starter< / artifactId>
< version> 1.2 .3 < / version>
< / dependency>
< ! -- mybatis -- >
< dependency>
< groupId> org. mybatis. spring. boot< / groupId>
< artifactId> mybatis- spring- boot- starter< / artifactId>
< version> 2.1 .2 < / version>
< / dependency>
< ! -- lombok -- >
< dependency>
< groupId> org. projectlombok< / groupId>
< artifactId> lombok< / artifactId>
< optional> true < / optional>
< / dependency>
< ! -- 热部署 -- >
< dependency>
< groupId> org. springframework. boot< / groupId>
< artifactId> spring- boot- devtools< / artifactId>
< optional> true < / optional>
< scope> true < / scope>
< / dependency>
< ! -- 代码生成器-- >
< dependency>
< groupId> com. baomidou< / groupId>
< artifactId> mybatis- plus- generator< / artifactId>
< version> 3.3 .1 . tmp< / version>
< / dependency>
< dependency>
< groupId> org. apache. velocity< / groupId>
< artifactId> velocity- engine- core< / artifactId>
< version> 2.2 < / version>
< / dependency>
< / dependencies>
< build>
< plugins>
< plugin>
< groupId> org. springframework. boot< / groupId>
< artifactId> spring- boot- maven- plugin< / artifactId>
< / plugin>
< / plugins>
< / build>
< / project>
one前台
< ! DOCTYPE html>
< html lang= "en" >
< head>
< meta charset= "UTF-8" >
< title> Title< / title>
< link href= "/css/bootstrap.css" rel= "stylesheet" >
< / head>
< body>
< script src= "/js/jquery.min.js" > < / script>
< script src= "/js/bootstrap.min.js" > < / script>
< script type= "text/javascript" >
function toAdd ( ) {
location= "toAdd" ;
}
function toUpdate ( id) {
location= "toUpdate?id=" + id;
}
function del ( id) {
$. post ( "delete" , { id: id} , function ( flag) {
if ( flag) {
location= "list" ;
alert ( "删除成功" )
} else {
alert ( "删除失败" )
}
} )
}
< / script>
< form action= "/list" method= "get" >
学生姓名: < input type= "text" name= "wname" value= "${bm.wname!}" >
专业:< select name= "zname" >
< option value= "" > -- 请选择-- < / option>
< #list hh as h>
< #if ( bm. zname? ? && h. zid== bm. zname) >
< option value= "${h.zid!}" selected> ${ h. zyname! } < / option>
< #else >
< option value= "${h.zid!}" > ${ h. zyname! } < / option>
< / #if >
< / #list>
< / select>
出生日期: < input type= "date" name= "b1" value= "${(bm.b1?string('yyyy-MM-dd'))!}" > - < input type= "date" name= "b2" value= "${(bm.b2?string('yyyy-MM-dd'))!}" >
< button> 查询< / button>
< / form>
< button onclick= "toAdd()" > 添加< / button>
< table class = "table" >
< tr>
< td> 学生姓名< / td>
< td> 性别< / td>
< td> 出生日期< / td>
< td> 年龄< / td>
< td> 联系电话< / td>
< td> 专业< / td>
< td> 学费< / td>
< td> 住宿费< / td>
< td> 报名费< / td>
< td> 总计< / td>
< td> 操作< / td>
< / tr>
< #list info. list as bm>
< tr>
< td> ${ bm. name! } < / td>
< td>
< #if ( bm. sex? ? && bm. sex== 1 ) > 男< #else > 女< / #if >
< / td>
< td> ${ ( bm. birth? date) ! } < / td>
< td> ${ bm. age! } < / td>
< td> ${ bm. phone! } < / td>
< td> ${ bm. zyname! } < / td>
< td> ${ bm. xf! } < / td>
< td> ${ bm. zsf! } < / td>
< td> ${ bm. bmf! } < / td>
< td> ${ ( bm. xf+ bm. zsf+ bm. bmf) ! } < / td>
< td>
< button onclick= "toUpdate(${bm.id})" > 修改< / button>
< button onclick= "del(${bm.id})" > 删除< / button>
< / td>
< / tr
< / #list>
< tr>
< td colspan= "100" >
< a href= "/list?pageNum=1" > 首页< / a>
< a href= "/list?pageNum=${info.pageNum-1}" > 上一页< / a>
< a href= "/list?pageNum=${info.pageNum+1}" > 下一页< / a>
< a href= "/list?pageNum=${info.pages}" > 尾页< / a>
< / td>
< / tr>
< / table>
< / body>
< / html>
添加
< ! DOCTYPE html>
< html lang= "en" >
< head>
< meta charset= "UTF-8" >
< title> Title< / title>
< link href= "/css/bootstrap.css" rel= "stylesheet" >
< / head>
< body>
< script src= "/js/jquery.min.js" > < / script>
< script src= "/js/bootstrap.min.js" > < / script>
< script type= "text/javascript" >
$( function ( ) {
$. get ( "selectZy" , function ( list) {
for ( var i in list) {
$( "#td" ) . append ( "<option value='" + list[ i] . zid+ "'>" + list[ i] . zyname+ "</option>" )
$( "#tt" ) . val ( list[ i] . xf)
}
} )
} )
function ph ( ) {
var x= document. getElementById ( "phone" ) ;
var reg= / ^ [ 11 ] $/ ;
if ( reg. test ( x) ) {
alert ( "格式正确" )
return true ;
} else {
alert ( "格式正确" )
return true ;
}
}
< / script>
< form action= "/add" method= "get" >
< table class = "table" >
< tr>
< td> 学生姓名< / td>
< td>
< input type= "text" name= "name" >
< / td>
< / tr>
< tr>
< td> 性别< / td>
< td>
< input type= "radio" name= "sex" value= "1" checked> 男
< input type= "radio" name= "sex" value= "2" > 女
< / td>
< / tr>
< tr>
< td> 出生日期< / td>
< td>
< input type= "date" name= "birth" >
< / td>
< / tr>
< tr>
< td> 联系电话< / td>
< td>
< input type= "text" name= "phone" onblur= "ph()" >
< / td>
< / tr>
< tr>
< td> 专业< / td>
< td>
< select id= "td" name= "sid" >
< / select>
< / td>
< / tr>
< tr>
< td> 学费< / td>
< td>
< input type= "text" id= "tt" >
< / td>
< / tr>
< tr>
< td> 住宿费< / td>
< td>
< input type= "text" name= "zsf" >
< / td>
< / tr>
< tr>
< td> 报名费< / td>
< td>
< input type= "text" name= "bmf" >
< / td>
< / tr>
< tr>
< td colspan= "10" >
< button> 保存< / button>
< / td>
< / tr>
< / table>
< / form>
< / body>
< / html>
修改
< ! DOCTYPE html>
< html lang= "en" >
< head>
< meta charset= "UTF-8" >
< title> Title< / title>
< link href= "/css/bootstrap.css" rel= "stylesheet" >
< / head>
< body>
< script src= "/js/jquery.min.js" > < / script>
< script src= "/js/bootstrap.min.js" > < / script>
< script type= "text/javascript" >
$( function ( ) {
$. get ( "selectZy" , function ( list) {
for ( var i in list) {
if ( ${ info. sid} == list[ i] . zid) {
$( "#td" ) . append ( "<option value='" + list[ i] . zid+ "' selected>" + list[ i] . zyname+ "</option>" )
} else {
$( "#td" ) . append ( "<option value='" + list[ i] . zid+ "' >" + list[ i] . zyname+ "</option>" )
}
}
} )
} )
< / script>
< form action= "/update" method= "get" >
< table class = "table" >
< tr>
< td> 学生姓名< / td>
< td>
< input type= "hidden" name= "id" value= "${info.id}" >
< input type= "text" name= "name" value= "${info.name}" >
< / td>
< / tr>
< tr>
< td> 性别< / td>
< td>
< #if ( info. sex? ? && info. sex== 1 ) >
< input type= "radio" name= "sex" checked value= "1" > 男
< input type= "radio" name= "sex" value= "2" > 女
< #else >
< input type= "radio" name= "sex" value= "1" > 男
< input type= "radio" name= "sex" checked value= "2" > 女
< / #if >
< / td>
< / tr>
< tr>
< td> 出生日期< / td>
< td>
< input type= "text" name= "birth" value= "${info.birth?date}" >
< / td>
< / tr>
< tr>
< td> 联系电话< / td>
< td>
< input type= "text" name= "phone" value= "${info.phone}" >
< / td>
< / tr>
< tr>
< td> 专业< / td>
< td>
< select id= "td" name= "sid" >
< / select>
< / td>
< / tr>
< tr>
< td> 住宿费< / td>
< td>
< input type= "text" name= "zsf" value= "${info.zsf}" >
< / td>
< / tr>
< tr>
< td> 报名费< / td>
< td>
< input type= "text" name= "bmf" value= "${info.bmf}" >
< / td>
< / tr>
< tr>
< td colspan= "10" >
< button> 保存< / button>
< / td>
< / tr>
< / table>
< / form>
< / body>
< / html>
Controller
package com. wpx. controller;
import com. github. pagehelper. PageInfo;
import com. wpx. pojo. Bm;
import com. wpx. pojo. Zy;
import com. wpx. service. BmService;
import org. springframework. beans. factory. annotation. Autowired;
import org. springframework. stereotype. Controller;
import org. springframework. ui. ModelMap;
import org. springframework. web. bind. annotation. *;
import java. util. List;
@Controller
public class BmController {
@Autowired
BmService bmService;
@RequestMapping ( "list" )
public String list ( @RequestParam ( value = "pageNum" , defaultValue = "1" ) Integer pageNum, @RequestParam ( value = "pageSize" , defaultValue = "5" ) Integer pageSize, Bm bm, ModelMap modelMap) {
PageInfo< Bm> list = bmService. list ( pageNum, pageSize, bm) ;
List< Zy> zies = bmService. selectZy ( ) ;
modelMap. addAttribute ( "info" , list) ;
modelMap. addAttribute ( "bm" , bm) ;
modelMap. addAttribute ( "hh" , zies) ;
return "list" ;
}
@RequestMapping ( "toAdd" )
public String toAdd ( ) {
return "add" ;
}
@RequestMapping ( "toUpdate" )
public String toUpdate ( Integer id, ModelMap modelMap) {
Bm bm= bmService. toUpdate ( id) ;
modelMap. addAttribute ( "info" , bm) ;
return "update" ;
}
@GetMapping ( "selectZy" )
@ResponseBody
public List< Zy> selectZy ( ) {
return bmService. selectZy ( ) ;
}
@RequestMapping ( "add" )
public String add ( Bm bm) {
int i= bmService. add ( bm) ;
return "redirect:list" ;
}
@RequestMapping ( "update" )
public String update ( Bm bm) {
int i= bmService. update ( bm) ;
return "redirect:list" ;
}
@PostMapping ( "delete" )
@ResponseBody
public boolean delete ( Integer id) {
int i= bmService. delete ( id) ;
return i> 0 ;
}
}
0526
< ! DOCTYPE html>
< html lang= "en" >
< head>
< meta charset= "UTF-8" >
< title> Title< / title>
< link rel= "stylesheet" href= "/css/bootstrap.css" >
< / head>
< body>
< script src= "/js/jquery.min.js" > < / script>
< script src= "/js/bootstrap.min.js" > < / script>
< script type= "text/javascript" >
function choose ( own) {
$( "[name=check]" ) . attr ( "checked" , own. checked) ;
}
function fx ( ) {
$( "[name='check']" ) . each ( function ( ) {
if ( $( this ) . attr ( "checked" ) )
{
$( this ) . attr ( "checked" , false ) ;
}
else
{
$( this ) . attr ( "checked" , true ) ;
}
} ) ;
}
function del ( id) {
if ( confirm ( "确定要删除id为" + id+ "吗" ) ) {
$. post (
"del" ,
{ id: id} ,
function ( obj) {
if ( obj) {
alert ( "删除成功" ) ;
location. reload ( ) ;
} else {
alert ( "删除失败" ) ;
return ;
}
} ,
"json"
)
}
}
< / script>
< button onclick= "fx()" > 反选< / button>
< form action= "/student/list" method= "post" >
入学时间:< input type= "date" name= "t1" > -
< input type= "date" name= "t2" >
< button> 查询< / button>
< / form>
< a href= "/student/toAdd" > < button> 添加< / button> < / a>
< table class = "table" >
< thead>
< tr>
< th>
< input type= "checkbox" onclick= "choose(this)" >
< / th>
< th> 学生姓名< / th>
< th> 性别< / th>
< th> 所在班级< / th>
< th> 入学日期< / th>
< th> 操作< / th>
< / tr>
< / thead>
< tbody>
< #list info. list as m>
< tr>
< td>
< input type= "checkbox" name= "check" value= "${m.id}" >
< / td>
< td> ${ m. name! } < / td>
< td> ${ m. sex! } < / td>
< td> ${ ( m. aclass. name) ! } < / td>
< td> ${ m. dt! } < / td>
< td>
< input type= "button" value= "删除" onclick= "del(${m.id})" >
< a href= "/student/toUpdate?id=#{m.id}" > < button> 修改< / button> < / a>
< / td>
< / tr>
< / #list>
< tr>
< td colspan= "10" >
当前是${ info. pageNum} / 共有${ info. pages} 页-- - 共有${ info. total} 条数据< br>
< a href= "/student/list?pageNum=1" > 首页< / a>
< a href= "/student/list?pageNum=${info.prePage}" > 上一页< / a>
< a href= "/student/list?pageNum=${info.nextPage}" > 下一页< / a>
< a href= "/student/list?pageNum=${info.pages}" > 尾页< / a>
< / td>
< / tr>
< / tbody>
< / table>
< / body>
< / html>
ADD
< ! DOCTYPE html>
< html lang= "en" >
< head>
< meta charset= "UTF-8" >
< title> Title< / title>
< link href= "/css/bootstrap.css" rel= "stylesheet" >
< / head>
< body>
< script src= "/js/jquery.min.js" > < / script>
< script src= "/js/bootstrap.min.js" > < / script>
< form action= "/student/add" method= "post" >
姓名: < input type= "text" name= "name" id= "name" > < br>
性别: < input type= "radio" name= "sex" value= "男" > 男
< input type= "radio" name= "sex" value= "女" > 女< br>
班级< select name= "cid" >
< #list clazzes as c>
< option value= "${c.id}" > ${ c. name} < / option>
< / #list>
< / select> < br>
时间: < input type= "date" name= "dt" >
< button> 添加< / button>
< / form>
< / body>
< / html>