精华内容
下载资源
问答
  • 用sqlite实现学生成绩数据库的增删改查用sqlite实现学生成绩数据库的增删改查用sqlite实现学生成绩数据库的增删改查用sqlite实现学生成绩数据库的增删改查用sqlite实现学生成绩数据库的增删改查用sqlite实现学生成绩...
  • asp mvc 增删改查

    2018-05-07 20:31:02
    asp mvc 增删改查asp mvc 增删改查asp mvc 增删改查asp mvc 增删改查asp mvc 增删改查asp mvc 增删改查asp mvc 增删改查asp mvc 增删改查
  • 增删改查 示例程序增删改新时代,增删改查新时代,增删改查增删改查 示例程序
  • map增删改查

    2017-12-07 16:45:46
    用map集合做的增删改查用map集合做的增删改查用map集合做的增删改查用map集合做的增删改查
  • .net增删改查

    2018-04-15 16:38:28
    .net 增删改查 .net 增删改查.net 增删改查.net 增删改查.net 增删改查.net 增删改查.net 增删改查.net 增删改查.net 增删改查.net 增删改查.net 增删改查.net 增删改查.net 增删改查.net 增删改查.net 增删改查.net...
  • 这篇文章主要讲解后端对数据库的增删改查,大致实现所需要提供的接口。

    前言

    这篇文章主要讲解对数据库的增删改查,之前讲过数据库的安装及使用,没什么印象的同学可以复习一下 「Vue + Spring Boot 项目实战(四):数据库的引入」

    可以说几乎所有的 Web 项目都要涉及增删改查这一套东西。有很多刚入职的年轻人抱怨“面试造核弹,工作拧螺丝”,本以为工作的内容会多么高大上,结果天天在公司就只学到了增删改查。实际上这里面有很多门道,大的方面如不同应用场景下的技术选型,小的方面如某一条 SQL 语句怎么写,可能看似细微的差别,放在互联网高并发的环境下就会带来截然不同的效果。

    考虑到实际情况(作者贼懒),这个教程里并没有深入探讨这些问题,目标就是把功能给实现喽,然后让跟着做的各位也能实现,如果你们有更好的想法,欢迎分享给我,我会不断重构这个项目,争取做成一个有一些实际意义的东西。等我把这个坑填完了,再仔细想想性能优化之类的问题怎么写。

    一、数据库设计

    把拍脑袋想字段的过程称为数据库设计也是脸皮够厚,不过反正你们也不能顺着网线来打我。说起来也确实没啥需要认真琢磨的地方,等到之后做后台管理时可以把用户权限管理那一套东西整上,现在嘛,我们的需求大致如下:

    • 展示书籍的信息,包括封面、标题、作者、出版日期、出版社、摘要和分类。
    • 维护分类信息。

    所以表结构暂时是下面这个样子:
    在这里插入图片描述
    包含建表及完整数据的 wj.sql 文件在我的 gayhub github 上:

    https://github.com/Antabot/White-Jotter/tree/master/wj/src/main/resources

    如果直接 clone 项目,因为我配置了自动注入的代码,直接运行项目就可以生成表结构(数据库需要手动创建)。关闭此功能,可以把 application.properties 中的如下代码注释掉:

    # 每次运行时初始化数据库,如不需要可以注释掉
    spring.datasource.initialization-mode=always
    

    这里我只贴出来建表语句吧:

    user 表:

    DROP TABLE IF EXISTS `user`;
    CREATE TABLE `user` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `username` char(255) DEFAULT NULL,
      `password` varchar(255) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
    

    book 表:

    DROP TABLE IF EXISTS `book`;
    CREATE TABLE `book` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `cover` varchar(255) DEFAULT '',
      `title` varchar(255) NOT NULL DEFAULT '',
      `author` varchar(255) DEFAULT '',
      `date` varchar(20) DEFAULT '',
      `press` varchar(255) DEFAULT '',
      `abs` varchar(255) DEFAULT NULL,
      `cid` int(11) DEFAULT NULL,
      PRIMARY KEY (`id`),
      KEY `fk_book_category_on_cid` (`cid`),
      CONSTRAINT `fk_book_category_on_cid` FOREIGN KEY (`cid`) REFERENCES `category` (`id`) ON DELETE SET NULL ON UPDATE CASCADE
    ) ENGINE=InnoDB AUTO_INCREMENT=102 DEFAULT CHARSET=utf8;
    

    category 表:

    DROP TABLE IF EXISTS `category`;
    CREATE TABLE `category` (
      `id` int(11) NOT NULL,
      `name` varchar(255) NOT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    

    这里注意在 book 表在 cid 上有一个外键。

    二、增删改查

    还是先看需求:

    • 查询书籍信息(查)
    • 上传书籍信息(增)
    • 修改书籍信息(改)
    • 删除书籍信息(删)

    查询里涉及按关键字查询(图书检索),上传书籍信息里涉及图片上传,我打算单独写一篇,这里先不多说。

    1.pojo

    我们需要新建两个 pojo,分别是Category 和 Book 。

    Category:

    package com.evan.wj.pojo;
    
    import javax.persistence.Column;
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
    import javax.persistence.Table;
    
    import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
    
    @Entity
    @Table(name = "category")
    @JsonIgnoreProperties({ "handler","hibernateLazyInitializer" })
    
    public class Category {
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        @Column(name = "id")
        int id;
    
        String name;
    
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
    
        public String getName() {
            return name;
        }
        public void setName(String name) {
            this.name = name;
        }
    }
    
    

    Book:

    package com.evan.wj.pojo;
    
    import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
    
    import javax.persistence.*;
    
    @Entity
    @Table(name = "book")
    @JsonIgnoreProperties({"handler","hibernateLazyInitializer"})
    public class Book {
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        @Column(name = "id")
        int id;
    
        @ManyToOne
        @JoinColumn(name="cid")
        private Category category;
    
        String cover;
        String title;
        String author;
        String date;
        String press;
        String abs;
    
        public Category getCategory() {
            return category;
        }
    
        public void setCategory(Category category) {
            this.category = category;
        }
    
        public String getDate() {
            return date;
        }
    
        public void setDate(String date) {
            this.date = date;
        }
    
        public String getPress() {
            return press;
        }
    
        public void setPress(String press) {
            this.press = press;
        }
    
        public String getAbs() {
            return abs;
        }
    
        public void setAbs(String abs) {
            this.abs = abs;
        }
    
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        public String getCover() {
            return cover;
        }
    
        public void setCover(String cover) {
            this.cover = cover;
        }
    
        public String getTitle() {
            return title;
        }
    
        public void setTitle(String title) {
            this.title = title;
        }
    
        public String getAuthor() {
            return author;
        }
    
        public void setAuthor(String author) {
            this.author = author;
        }
    }
    
    
    

    2.dao 层

    我们需要再添加一个 BookDAO ,一个 CategoryDAO 。

    BookDAO :

    package com.evan.wj.dao;
    
    import com.evan.wj.pojo.Book;
    import com.evan.wj.pojo.Category;
    import org.springframework.data.domain.Page;
    import org.springframework.data.jpa.repository.JpaRepository;
    
    import java.util.List;
    
    public interface BookDAO extends JpaRepository<Book,Integer> {
        List<Book> findAllByCategory(Category category);
        List<Book> findAllByTitleLikeOrAuthorLike(String keyword1, String keyword2);
    }
    

    这里延续之前 JPA 的写法,findAllByCategory() 之所以能实现,是因为在 Book 类中有如下注解:

        @ManyToOne
        @JoinColumn(name="cid")
        private Category category;
    

    实际上是把 category 对象的 id 属性作为 cid 进行了查询。

    CategoryDAO :

    package com.evan.wj.dao;
    
    import org.springframework.data.jpa.repository.JpaRepository;
    
    import com.evan.wj.pojo.Category;
    
    public interface CategoryDAO extends JpaRepository<Category, Integer> {
    
    }
    

    这个 DAO 不需要额外构造的方法,JPA 提供的默认方法就够用了。

    3.Service 层

    CategoryService:

    package com.evan.wj.service;
    
    import com.evan.wj.dao.CategoryDAO;
    import com.evan.wj.pojo.Category;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.data.domain.Sort;
    import org.springframework.stereotype.Service;
    
    import java.util.List;
    
    @Service
    public class CategoryService {
        @Autowired
        CategoryDAO categoryDAO;
    
        public List<Category> list() {
            Sort sort = new Sort(Sort.Direction.DESC, "id");
            return categoryDAO.findAll(sort);
        }
    
        public Category get(int id) {
            Category c= categoryDAO.findById(id).orElse(null);
            return c;
        }
    }
    
    

    这里对查询的结果做了个排序以及条件判断。

    BookService:

    package com.evan.wj.service;
    
    import com.evan.wj.dao.BookDAO;
    import com.evan.wj.pojo.Book;
    import com.evan.wj.pojo.Category;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.data.domain.Sort;
    import org.springframework.stereotype.Service;
    
    import java.util.List;
    
    @Service
    public class BookService {
        @Autowired
        BookDAO bookDAO;
        @Autowired
        CategoryService categoryService;
    
        public List<Book> list() {
            Sort sort = new Sort(Sort.Direction.DESC, "id");
            return bookDAO.findAll(sort);
        }
    
        public void addOrUpdate(Book book) {
            bookDAO.save(book);
        }
    
        public void deleteById(int id) {
            bookDAO.deleteById(id);
        }
    
        public List<Book> listByCategory(int cid) {
            Category category = categoryService.get(cid);
            return bookDAO.findAllByCategory(category);
        }
    }
    
    

    这个 Service 提供了四个功能,分别是查出所有书籍、增加或更新书籍、通过 id 删除书籍和通过分类查出书籍。

    这里注意一下 save() 方法的作用是,当主键存在时更新数据,当主键不存在时插入数据。

    这也就是核心的业务逻辑了。

    4.Controller 层

    在 Controller 层里我们继续写需要的 API 。

    package com.evan.wj.controller;
    
    import com.evan.wj.pojo.Book;
    import com.evan.wj.service.BookService;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.*;
    
    import java.util.List;
    
    @RestController
    public class LibraryController {
        @Autowired
        BookService bookService;
    
        @GetMapping("/api/books")
        public List<Book> list() throws Exception {
            return bookService.list();
        }
    
        @PostMapping("/api/books")
        public Book addOrUpdate(@RequestBody Book book) throws Exception {
            bookService.addOrUpdate(book);
            return book;
        }
    
        @PostMapping("/api/delete")
        public void delete(@RequestBody Book book) throws Exception {
            bookService.deleteById(book.getId());
        }
        
    
        @GetMapping("/api/categories/{cid}/books")
        public List<Book> listByCategory(@PathVariable("cid") int cid) throws Exception {
            if (0 != cid) {
                return bookService.listByCategory(cid);
            } else {
                return list();
            }
        }
    }
    
    

    5.测试接口

    运行项目,测试一下功能。

    首先是查询所有书籍,访问 http://localhost:8443/api/books,结果如下:
    在这里插入图片描述
    尼玛好密集,这些可都是我一个个录的。。。

    然后测试分类,访问 http://localhost:8443/api/categories/1/books,查看所有分类 id 为 1,即分类为“文学”的书籍,结果如下:
    在这里插入图片描述
    增加或修改结合前端测试,这里我还没讲,先给大家看下效果:
    在这里插入图片描述
    我的设计是点击封面是修改,点击那个加号图标是增加。在书籍卡片的右下角有一个回收桶图标,是删除。删除我就不测试了,录了半天删了怪可惜的。

    哈哈以前我总把图片右下角自动加的水印给删了,现在有自定义域名了感觉放上去也行,真香真香。欢迎大家通过 https://learner.blog.csdn.net 域名访问我的博客,虽然并没有什么用。

    三、下一步

    下一篇计划讲解实现按关键字和作者查询图书以及图片上传的接口,再把前端页面完善完善,这个教程就差不多可以收尾啦。

    断断续续写了这么久,是我没想到的,自己开发的时候感觉写教程就是复制粘贴写个注释,但真正搞起来特别消耗精力,而且我离一个优秀的开发者还有很大距离,做出的东西会有很多不足,好在这个过程中我还是有很大收获的。有大佬说过,你看过去的自己觉得很傻逼,恰恰说明你进步了。

    之前也说过,最近在做后台管理系统,这东西是通用的,将来 Vue3.0 出了我就把那个的前端重写一下然后加到这个项目里面。不过我打算只写一篇文章介绍一下功能以及实现的核心思路,不敢立 flag 做教程了。。。项目还是会完整地上传到 GitHub 上,有兴趣的同学到时候可以下载下来。

    查看系列文章目录:
    https://learner.blog.csdn.net/article/details/88925013

    上一篇: Vue + Spring Boot 项目实战(七):导航栏与图书页面设计

    下一篇:Vue + Spring Boot 项目实战(九):核心功能的前端实现

    展开全文
  • 增删改查图标

    千次下载 热门讨论 2013-01-16 19:43:20
    增删改查图标 很精美 喜欢的可以下载
  • ASP.NET GridView做增删改查操作 ASP.NET GridView做增删改查操作 ASP.NET GridView做增删改查操作 ASP.NET GridView做增删改查操作
  • 基于ssh实现增删改查

    2018-07-15 15:13:52
    基于ssh实现增删改查基于ssh实现增删改查基于ssh实现增删改查
  • ssm单表增删改查

    2018-05-04 15:06:43
    ssm 单表增删改查 ssm 单表增删改查 ssm 单表增删改查
  • ExtJS增删改查

    2011-09-26 15:11:32
    ExtJS增删改查ExtJS增删改查ExtJS增删改查ExtJS增删改查ExtJS增删改查ExtJS增删改查ExtJS增删改查ExtJS增删改查ExtJS增删改查ExtJS增删改查
  • 在实现简单网页上对数据内容进行增删改查,需要用到三个部分,分别是jsp网页部分+java后台部分+数据库表 我用一个新闻的例子来实现,首先编写java后台程序 java后台程序: 我们用三层的模式进行设计:分别是...

    在实现简单网页上对数据内容进行增删改查,需要用到三个部分,分别是jsp网页部分+java后台部分+数据库表

    我用一个新闻的例子来实现,首先编写java后台程序

     

    java后台程序:

    我们用三层的模式进行设计:分别是servlet,service,dao层,并且建立个实体包用来打包数据库和后台要用到的属

    性截个图

    首先是写功能写的顺序分别是从servlet,service,dao层:

    servlet层代码如下:

     

    public class TypeServlet {
    
    	TypeService ts=new TypeServiceImp();//调用service层
    	/*******添加************************************************************************************/
    	public int addtype(String name){
    		int a=0;
    		a=ts.addtype(name);
    		return a;
    	}
    	/*******查看************************************************************************************/
    	public List<types> selets(){
    		List<types> list=new ArrayList<types>();
    		list=ts.selets(null);
    		return list;	
    	}
    	/*******删除************************************************************************************/
    	public int delete(int id){
    		int a=0;
    		types t=new types();
    		t.setId(id);
    		a=ts.delete(t);
    		return a;
    	}
    	/*******修改************************************************************************************/
    	public int update(types t){
    		int a=0;
    		a=ts.update(t);
    		return a;
    	}
    	/*******查找一个************************************************************************************/
    	public types selectone(int id){
    		types t=new types();
    		t.setId(id);
    		types nt=ts.selectone(t);
    		return  nt;
    	}
    }

     

    Service层分为两层分别为接口层和实现层

     

    接口程序如下:

     

    public interface TypeService {
    
    	public int addtype(String name);
    	
    	public List<types> selets(types t);
    	
    	public int delete(types t);
    	
    	public int update(types t);
    	
    	public types selectone(types t);
    	
    }


    接口实现程序:

     

     

    public class TypeServiceImp implements TypeService{
    
    	TypeDao td= new TypeDaoImp();
    	
    	public int addtype(String name) {    //注意返回数据不要忘记修改
    		int a=0;
    		a=td.addtype(name);
    		return a;
    	}
    
    	public List<types> selets(types t) {
    		List<types> list=new ArrayList<types>();
    		list=td.selets(t);
    		return list;
    	}
    	/*******删除************************************************************************************/
    	public int delete(types t) {
    		int a=0;
    		a=td.delete(t);
    		return a;
    	}
    	/*******修改************************************************************************************/
    	public int update(types t) {
    		int a=0;
    		a=td.update(t);
    		return a;
    	}
    
    	/*******查找单个************************************************************************************/
    	public types selectone(types t){
    		types tp=new types();
    		tp=td.selectone(t);
    		return tp;
    		
    	}
    }

     

     

     

    Dao层程序同样分为接口层和实现层

    接口层程序:

     

    public interface TypeDao {
    
    	public int addtype(String name);
    	
    	public List<types> selets(types t);
    	
    	public int delete(types t);
    	
    	public int update(types t);
    	
    	public types selectone(types t);
    	
    }


    实现类程序:

     

     

    public class TypeDaoImp implements TypeDao{
    	Connection con=null;
    	PreparedStatement ps=null;
    	ResultSet rs=null;
    	
    	public int addtype(String name){
    		int a=0;
    		try {
    			//连接数据库
    			con=Shujuku.conn();
    			String sql="insert into typesname values(?)";   //设置id自增
    			ps=con.prepareStatement(sql);
    			ps.setString(1, name);
    			a=ps.executeUpdate();
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		return a;
    	}
    
    	public List<types> selets(types t) {
    		List<types> list=new ArrayList<types>();
    		try {
    			//连接数据库
    			con=Shujuku.conn();
    			String sql="select*from typesname";  
    			ps=con.prepareStatement(sql);
    			rs=ps.executeQuery();
    			while(rs.next()){
    				types ty=new types();
    				ty.setId(rs.getInt("id"));
    				ty.setTypename(rs.getString("typename"));
    				list.add(ty);
    			}
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		return list;
    	}
    	/*******删除************************************************************************************/
    	public int delete(types t) {
    		int a=0;		
    		try {
    			con=Shujuku.conn();
    			String sql="delete from typesname where id="+t.getId();
    			ps=con.prepareStatement(sql);
    			a=ps.executeUpdate();
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		return a;
    	}
    	/*******修改************************************************************************************/
    	public int update(types t) {
    		int a=0;
    		try {
    			con=Shujuku.conn();
    			String sql="update typesname set typename=? where id=?";
    			ps=con.prepareStatement(sql);
    			ps.setString(1, t.getTypename());
    			ps.setInt(2, t.getId());
    			a=ps.executeUpdate();
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    		return a;
    	}
    	/*******查找一个************************************************************************************/
    	public types selectone(types t) {
    		types tp=new  types();
    		try {
    			con=Shujuku.conn();
    			String sql="select * from typesname where id=?";
    			ps=con.prepareStatement(sql);
    			ps.setInt(1, t.getId());
    			rs=ps.executeQuery();
    			if(rs.next()){
    				tp.setId(rs.getInt("id"));
    				tp.setTypename(rs.getString("typename"));
    			}
    		} catch (SQLException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}	
    		return tp;
    	}
    }

     

     

     

    最后就是数据库包,为了方便使用,将数据库的驱动连接信息建立一个包存放:

    代码如下:

     

    public class Shujuku {
    
    	public static Connection conn(){
    		//定义地址
    		String url="jdbc:sqlserver://localhost:1433;DatabaseName=test;";
    	    //定义连接初始值
    		Connection connection=null;	
    		try {
    			//加载驱动
    			Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    			//建立连接
    		     connection=DriverManager.getConnection(url, "sa", "DCX5201314");
    			} catch (SQLException e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			
    		} catch (ClassNotFoundException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}	
    		return connection;	
    	}
    }


    属性包,代码如下:

     

     

    public class types {
    	private int id;
    	private String typename;
    	public int getId() {
    		return id;
    	}
    	public void setId(int id) {
    		this.id = id;
    	}
    	public String getTypename() {
    		return typename;
    	}
    	public void setTypename(String typename) {
    		this.typename = typename;
    	}
    }

     

     

     

    java后台程序就这么多;

     

    接下来是数据库部分:

    数据库部分主要就是建立一张表,笔者使用的是SQL Server 2008,首先建个数据库test,建立个表typesname,设置两列分别为id typename,id设为主键,int 型,自增为1;typename设置类型为varchar型,不能为空。

     

    好了,数据库和java后台都搭建好了,现在来到前端网页部分,

     

    网页部分

    在myeclipse中新建7个jsp文件

     

    index.jsp是一个总的网页

    设置代码如下:

     

    </head>
    	<frameset rows="20%,80%">
    		<frame src="head.jsp">
    		<frameset cols="20%,80%">
    			<frame src="left.jsp">
    			<frame src="right.jsp" name="rights">
    		</frameset>
    	</frameset>
    	<body>
    	</body>

    head.jsp

     

     

    <body>  
    <h1>这是头部</h1>
    </body>

     

    left.jsp

     

    <body>
        <h1>这是左边</h1>
        <ul>
           <li><a href="addtype.jsp" target="rights">添加新闻类型</a></li>
           <li><a href="showtype.jsp" target="rights">查看新闻类型</a></li>
        </ul>
      </body>

    right.jsp

     

     

    <body>
        <h1>这是右边</h1>
     </body>

    addtype.jsp

     

     

    </head>
      <%
        request.setCharacterEncoding("UTF-8");
        String name= request.getParameter("typename");
        if(name!=null){
        	TypeServlet tp=new TypeServlet();
        	int a=tp.addtype(name);
        	if(a>0){
        		RequestDispatcher rd = request
    			.getRequestDispatcher("showtype.jsp");
        		rd.forward(request, response);
        	}else{
        		RequestDispatcher rd = request
    			.getRequestDispatcher("addtype.jsp");
        		rd.forward(request, response);
        	}
        }
      %>
      <body>
        <h1>添加新闻类型</h1><hr/>
        <form action="addtype.jsp" method="post">
        新闻类型:<input type="text" name="typename"></br>
            <input type="submit" value="提交">
        </form>
      </body>

    showtype.jsp

     

     

    <script type="text/javascript">
    function deletes_(id){
    	 
       var f=confirm("是否确定删除?");
       if(f){
       location.href="showtype.jsp?ids="+id;
       }else{
       alert("您取消删除");
       }
    }
    
    function update(id){
    	location.href="updatetype.jsp?ids="+id;
    }
    </script>
      </head>
      <%
      request.setCharacterEncoding("UTF-8");
      String id=request.getParameter("ids");
      String type=request.getParameter("type");
      if(id!=null){	
    	      TypeServlet ts=new TypeServlet();
    		  int a = ts.delete(Integer.parseInt(id));
    		  response.sendRedirect("showtype.jsp"); 
    	      
      }
       %>
      <body>
        <h1> 展示类型</h1>
        <table border="1">
        <tr><td>编号</td><td>类型名称</td><td>操作</td></tr>
        <%
        //直接调用后台数据
         TypeServlet ts=new TypeServlet();
         List<types> list=ts.selets();
         for(int i=0;i<list.size();i++){
         types n=list.get(i);
         %>
         <tr>
      <td><%=n.getId() %></td>
      <td><%=n.getTypename() %></td>
      <td><input type="button" onclick="update(<%=n.getId() %>)" value="修改"/>
        
         <input type="button" onclick="deletes_(<%=n.getId() %>)" value="删除"/></td>
      </tr>
        <%
         }
         %>
      </body>

    updatetype.jsp

     

    <body>
        <% 
        request.setCharacterEncoding("UTF-8");
         String id=request.getParameter("ids");
        TypeServlet tsl=new TypeServlet();
        types ts=new types();
        String type= request.getParameter("type");
        if(type!=null){
        	String typename=request.getParameter("newtype");//从下面的输入取值
        	String id1=request.getParameter("id");
        	ts.setId(Integer.parseInt(id1));//强转
        	ts.setTypename(typename);
        	int a=tsl.update(ts);
        	response.sendRedirect("showtype.jsp");
        }else{
        	  if(id!=null){
        		     ts=tsl.selectone(Integer.parseInt(id));
        		  }
        		  }
        %>
        
        <h1>修改新闻类型界面</h1>
        <hr/>
        <form action="updatetype.jsp" method="post">
        <input type="hidden" name="type" value="3">
        <input type="hidden" name="id" value="<%=ts.getId() %>">
          新闻类型:<input type="text" value="<%=ts.getTypename() %>" name="newtype"><br/>
          <input type="submit" value="提交">
        </form>
      </body>

     

     

     

    最终项目在tomcat上发布。

    下面的地址积分系统调的太高了,我重新上传了一份内容是一样的地址在这:http://download.csdn.net/download/qq_34178998/10154005

    高积分下载打包文件在这:http://download.csdn.net/download/qq_34178998/9920064

    也可以参考在这篇基础上的两个表关联操作:http://blog.csdn.net/qq_34178998/article/details/77017760

    有问题也希望各位提出,一起进步,

    没积分的留言。留下邮箱,我看到会给你发的,但是太多的,可能会漏发,见谅!!!

    也欢迎转载!!!也欢迎转载!!!也欢迎转载!!!

    需要代码的人多,直接上传百度云了,大家自己下载,喜欢的话给我点个赞 链接:https://pan.baidu.com/s/1YPUWpI4A3Q54V0_d-cunxg 提取码:pzey

    点个赞点个赞点个赞点个赞点个赞

     

     

    展开全文
  • Ztree增删改查

    2018-03-16 09:37:31
    ztree树增删改查 ztree树增删改查 ztree树增删改查
  • web增删改查

    2017-08-08 18:09:28
    web增删改查,下载即用
  • spring boot+layui实现增删改查实战

    千次阅读 多人点赞 2019-12-24 01:43:23
    我知道很多人都有这个需求,为了使大家快速上手,我把自己写的最实用的增删改查案例完整的展示出来。 需要源码的请留下邮箱! Layui官网:https://www.layui.com/doc/ 后台:spring boot2.0,数据的话用的...

    说明:

        最近在做一个后台,希望用一个现成的前端模板,找了一圈发现Layui比较合适。我知道很多人都有这个需求,为了使大家快速上手,我把自己写的最实用的增删改查案例完整的展示出来。

     

    源码地址:

    https://gitee.com/indexman/boot-layui-curd

     

    Layui官网:https://www.layui.com/doc/

     

    后台:spring boot2.0,数据的话用的list没连接数据库。

    前端:layui-v2.5.5

     

    启动后访问: http://localhost:8080/admin.html

     

    页面展示:

     

    操作展示:

     

    开发步骤:

     

    1.搭建spring boot工程,引入layui资源

    这一步很简单, 我就省了。

     

    2.编写前端页面admin.html

    这一步可以拿网上的直接改的。改过之后如下:

    <!DOCTYPE html>
    <html>
    
    <head>
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
        <title>layout 后台大布局 - Layui</title>
        <link rel="stylesheet" href="js/layui/css/layui.css">
    </head>
    
    <body class="layui-layout-body">
    <div class="layui-layout layui-layout-admin">
        <div class="layui-header">
            <div class="layui-logo">layui 后台布局</div>
            <!-- 头部区域(可配合layui已有的水平导航) -->
            <ul class="layui-nav layui-layout-left">
                <li class="layui-nav-item">
                    <a href="">控制台</a>
                </li>
                <li class="layui-nav-item">
                    <a href="">商品管理</a>
                </li>
                <li class="layui-nav-item">
                    <a href="">用户</a>
                </li>
                <li class="layui-nav-item">
                    <a href="javascript:;">其它系统</a>
                    <dl class="layui-nav-child">
                        <dd>
                            <a href="">邮件管理</a>
                        </dd>
                        <dd>
                            <a href="">消息管理</a>
                        </dd>
                        <dd>
                            <a href="">授权管理</a>
                        </dd>
                    </dl>
                </li>
            </ul>
            <ul class="layui-nav layui-layout-right">
                <li class="layui-nav-item">
                    <a href="javascript:;">
                        <img src="http://t.cn/RCzsdCq" class="layui-nav-img"> 贤心
                    </a>
                    <dl class="layui-nav-child">
                        <dd>
                            <a href="">基本资料</a>
                        </dd>
                        <dd>
                            <a href="">安全设置</a>
                        </dd>
                    </dl>
                </li>
                <li class="layui-nav-item">
                    <a href="">退了</a>
                </li>
            </ul>
        </div>
    
        <div class="layui-side layui-bg-black">
            <div class="layui-side-scroll">
                <!-- 左侧导航区域(可配合layui已有的垂直导航) -->
                <ul class="layui-nav layui-nav-tree" lay-filter="test">
                    <li class="layui-nav-item layui-nav-itemed">
                        <a class="" href="javascript:;">所有商品</a>
                        <dl class="layui-nav-child">
                            <dd>
                                <a href="javascript:;">列表一</a>
                            </dd>
                            <dd>
                                <a href="javascript:;">列表二</a>
                            </dd>
                            <dd>
                                <a href="javascript:;">列表三</a>
                            </dd>
                            <dd>
                                <a href="http://www.baidu.com">超链接</a>
                            </dd>
                        </dl>
                    </li>
                    <li class="layui-nav-item">
                        <a href="javascript:;">解决方案</a>
                        <dl class="layui-nav-child">
                            <dd>
                                <a href="javascript:;">列表一</a>
                            </dd>
                            <dd>
                                <a href="javascript:;">列表二</a>
                            </dd>
                            <dd>
                                <a href="">超链接</a>
                            </dd>
                        </dl>
                    </li>
                    <li class="layui-nav-item">
                        <a href="">云市场</a>
                    </li>
                    <li class="layui-nav-item">
                        <a href="">发布商品</a>
                    </li>
                </ul>
            </div>
        </div>
    
        <div class="layui-body">
            <!-- 内容主体区域 -->
            <div style="padding: 15px;">
                <!--<div class="demoTable" style="padding: 15px">
                    搜索:
                    <div class="layui-inline">
                        <input class="layui-input" id="find" autocomplete="off">
                    </div>
                    <button class="layui-btn" data-type="reload" id="queryRole">搜索</button>
                </div>-->
    
                <table id="tb-user" lay-filter="tb-user"></table>
    
            </div>
        </div>
    
        <!--编辑表单-->
        <div class="layui-row" id="editUser" style="display:none;">
            <div class="layui-col-md10">
                <form class="layui-form layui-from-pane" id="saveUser" style="margin-top:20px">
    
                    <div class="layui-form-item">
                        <label class="layui-form-label">用户名</label>
                        <div class="layui-input-block">
                            <input type="text" name="name" id="name" required lay-verify="required" autocomplete="off"
                                   class="layui-input">
                        </div>
                    </div>
    
                    <input type="hidden" name="id" id="id">
    
                    <div class="layui-form-item">
                            <label class="layui-form-label">城市</label>
                            <div class="layui-input-block">
                                <input type="text" name="city" id="city" required lay-verify="required" autocomplete="off"
                                       class="layui-input">
                            </div>
                    </div>
    
                    <div class="layui-form-item">
                            <label class="layui-form-label">出生日期</label>
                            <div class="layui-input-block">
                                <input type="text" name="birthday" id="birthday" required lay-verify="required" autocomplete="off"
                                       class="layui-input">
                            </div>
                    </div>
    
                    <div class="layui-form-item" style="margin-top:40px" id="check">
                        <div class="layui-input-block">
                            <button class="layui-btn  layui-btn-submit " lay-submit="" lay-filter="saveUser">保存</button>
                            <!--<button type="reset" class="layui-btn layui-btn-primary">重置</button>-->
                        </div>
                    </div>
                </form>
            </div>
        </div>
    
        <script type="text/html" id="toolbarDemo">
            <div class="layui-btn-container">
                <button class="layui-btn layui-btn-sm" lay-event="add"><i class="layui-icon">&#xe608;</i>新增</button>
                <button class="layui-btn layui-btn-sm layui-btn-danger" lay-event="remove"><i class="layui-icon">&#xe640;</i>删除</button>
            </div>
            <!--<div class="layui-btn-container">
                <button class="layui-btn layui-btn-sm" lay-event="getCheckData">获取选中行数据</button>
                <button class="layui-btn layui-btn-sm" lay-event="getCheckLength">获取选中数目</button>
                <button class="layui-btn layui-btn-sm" lay-event="isAll">验证是否全选</button>
            </div>-->
        </script>
    
        <script type="text/html" id="barDemo">
            <a class="layui-btn layui-btn-sm" lay-event="edit"><i class="layui-icon">&#xe642;</i> </a>
        </script>
    
        <div class="layui-footer">
            <!-- 底部固定区域 -->
            © layui.com - 底部固定区域
        </div>
    </div>
    <script src="js/jquery-1.11.3.min.js"></script>
    <script src="js/layui/layui.all.js"></script>
    <script>
        var element, layer, laydate, table, form;
    
        $(function () {
            // 使用模块
            layui.use(['element', 'layer', 'laydate', 'table','form'], function () {
                element = layui.element;
                layer = layui.layer;
                laydate = layui.laydate;
                table = layui.table;
                form = layui.form;
            });
    
            laydate.render({
                elem:"#birthday",
                type: "date",
                format:"yyyy-MM-dd",
                value: ''
            });
    
            //第一个实例
            var userTable = table.render({
                elem: '#tb-user'
                , height: 515
                , url: '/api/layui/user/list' //数据接口
                , page: true //开启分页
                , toolbar: '#toolbarDemo'
                /*, response: {
                    statusName: 'code', //规定返回的状态码字段为code
                    statusCode: 200 //规定成功的状态码味200
                }*/
                /* , parseData: function (res) {
                     return {
                         "code": res.code, //解析接口状态
                         "msg": res.msg, //解析提示文本
                         "data": res.data //解析数据列表
                     }
                 }*/
                , cols: [[ //表头
                    {type: 'checkbox', fixed: 'left'}
                    , {field: 'id', title: 'ID', width: 80, sort: true, fixed: 'left'}
                    , {field: 'name', title: '用户名'}
                    , {field: 'city', title: '城市'}
                    , {
                        field: 'birthday', title: '出生日期', templet: function (d) {
                            var date = new Date(d.birthday)
                            var year = date.getFullYear() + '年';
                            var month = date.getMonth() + 1 + '月';
                            var date = date.getDate() + '日';
                            var date1 = [year, month, date].join('')
                            return date1;
                        }
                    }
                    , {fixed: 'right', title: '操作', toolbar: '#barDemo', width: 120}
                ]]
            });
    
            //监听表单提交
            // 修改
            form.on('submit(saveUser)', function(data){
                layer.alert(JSON.stringify(data.field));
                $.ajax({
                    url: '/api/layui/user/save',
                    type: 'POST',
                    contentType: "application/json",
                    dataType: "json",
                    data: JSON.stringify(data.field),
                    success: function (result) {
                        if (result.code == 200) {
                            // layer.msg("修改成功!", {icon: 6});
                            setTimeout(function () {
                                layer.closeAll();//关闭所有的弹出层
                                userTable.reload();
                            }, 300);
                        } else {
                            layer.msg("操作失败!", {icon: 5});
                        }
                    }
                });
    
                return false;
    
            });
    
            //工具栏事件
            table.on('toolbar(tb-user)', function (obj) {
                var checkStatus = table.checkStatus(obj.config.id);
                var checkData = checkStatus.data;
                var ids=[];
                switch (obj.event) {
                    // 新增
                    case 'add':
                        $("#name").val('');
                        $("#city").val('');
                        $("#id").val('');
                        $("#birthday").val('');
    
                        layer.open({
                            type: 1,
                            offset: '10px',
                            title: "新增用户",
                            area: ['500px', '400px'],
                            content: $("#editUser")
                        });
    
    
                        break;
                    // 删除
                    case 'remove':
                        if(checkData.length==0){
                            layer.alert('请选择要操作的行');
                        }else{
                            layer.confirm('确定要删除吗?',function (index) {
                                for(var i=0; i<checkData.length;i++){
                                    ids.push(checkData[i].id);
                                }
                                //layer.alert(JSON.stringify(ids));
                                $.ajax({
                                    url: '/api/layui/user/remove',
                                    type: 'POST',
                                    contentType: "application/json",
                                    dataType: "json",
                                    data: JSON.stringify(ids),
                                    success: function (result) {
                                        if (result.code == 200) {
                                            setTimeout(function () {
                                                layer.closeAll();//关闭所有的弹出层
                                                userTable.reload();
                                            }, 300);
                                        }
                                    }
                                });
                            });
                        }
                        break;
                    case 'getCheckData':
    
                        layer.alert(JSON.stringify(data));
                        break;
                    case 'getCheckLength':
                        var data = checkStatus.data;
                        layer.msg('选中了:' + data.length + ' 个');
                        break;
                    case 'isAll':
                        layer.msg(checkStatus.isAll ? '全选' : '未全选')
                        break;
                }
                ;
            });
    
            // 监听工具条
            table.on('tool(tb-user)', function (obj) {
                var data = obj.data;
                // 修改
                if (obj.event === 'edit') {
                    $("#name").val(data.name);
                    $("#city").val(data.city);
                    $("#id").val(data.id);
                    $("#birthday").val(data.birthday);
    
                    layer.open({
                        type: 1,
                        offset: '10px',
                        title: "修改用户",
                        area: ['500px', '400px'],
                        content: $("#editUser")
                    });
                }
            });
        });
    
    </script>
    </body>
    
    </html>

     

    3.编写后端代码

    3.1 创建用户实体

    package com.laoxu.test.helloweb.entity;
    
    import com.fasterxml.jackson.annotation.JsonFormat;
    import lombok.Data;
    
    import java.util.Date;
    
    /**
     * @Description: 用户实体
     * @Author laoxu
     * @Date 2019/12/21 9:56
     **/
    @Data
    public class LayuiUser {
        private int id;
        private String name;
        private String city;
        @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd")
        private Date birthday;
    
        public LayuiUser(){}
    
        public LayuiUser(int id, String name, String city, Date birthday) {
            this.id = id;
            this.name = name;
            this.city = city;
            this.birthday = birthday;
        }
    }
    

    3.2 创建用户DAO

    package com.laoxu.test.helloweb.dao;
    
    import com.laoxu.test.helloweb.entity.LayuiUser;
    import org.springframework.stereotype.Repository;
    
    import java.util.ArrayList;
    import java.util.Date;
    import java.util.List;
    import java.util.UUID;
    
    /**
     * @Description: 操作用户数据
     * @Author laoxu
     * @Date 2019/12/21 10:07
     **/
    @Repository
    public class LayuiUserDao {
        private static List<LayuiUser> users = new ArrayList<>();
    
        static {
    
            for (int i = 1; i <= 100; i += 3) {
                users.add(new LayuiUser(i, "张三" + i, "上海", new Date()));
                users.add(new LayuiUser(i + 1, "李四" + i, "北京", new Date()));
                users.add(new LayuiUser(i + 2, "王二麻" + i, "广州", new Date()));
            }
        }
    
        //http://www.layui.com/demo/table/user/?page=1&limit=10
    
        /**
         * 获得所有用户
         */
        public List<LayuiUser> getPager(int page, int limit) {
            List<LayuiUser> list = new ArrayList<>();
            int start = (page - 1) * limit;
            for (int i = start; i < start + limit && i < users.size(); i++) {
                list.add(users.get(i));
            }
            return list;
        }
    
        /**
         * 获得所有用户
         */
        public List<LayuiUser> getAllUsers() {
            return users;
        }
    
        /**
         * 添加用户
         */
        public void addUser(LayuiUser user) {
            if (user.getId() <= 0) { // 未设置id
                int index = users.size() - 1; // 获得最后一个用户的索引号
                if (index < 0) { // 如没有一个用户
                    user.setId(1); // 编号为1
                } else {
                    user.setId(users.get(index).getId() + 1); // 获得最后一个用户的编号+1
                }
            }
            users.add(user);
        }
    
        /**
         * 删除用户
         */
        public void delUser(int id) {
            LayuiUser delUser = null;
            for (LayuiUser user : users) {
                if (user.getId() == id) {
                    delUser = user;
                    break;
                }
            }
            users.remove(delUser);
        }
    
        /**
         * 删除用户(多选)
         */
        public void delUsers(int[] ids) {
            LayuiUser delUser = null;
            for (int i = 0; i < ids.length; i++) {
                for (int j = 0; j < users.size(); j++) {
                    if (users.get(j).getId() == ids[i]) {
                        users.remove(j);
                    }
                }
            }
        }
    
        public void updateUser(LayuiUser obj) {
            LayuiUser editUser = null;
            for (LayuiUser user : users) {
                if (user.getId() == obj.getId()) {
                    editUser = user;
                    break;
                }
            }
            editUser.setName(obj.getName());
            editUser.setCity(obj.getCity());
            editUser.setBirthday(obj.getBirthday());
        }
    }
    

    3.3 创建用户Service

    package com.laoxu.test.helloweb.service;
    
    import com.laoxu.test.helloweb.dao.LayuiUserDao;
    import com.laoxu.test.helloweb.entity.LayuiUser;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    import java.util.List;
    
    /**
     * @Description: 用户service
     * @Author laoxu
     * @Date 2019/12/21 10:42
     **/
    @Service
    public class LayuiUserService {
        @Autowired
        LayuiUserDao userDao;
    
        public List<LayuiUser> getPager(int page, int limit){
            return userDao.getPager(page,limit);
        }
    
        public List<LayuiUser> getAllUsers() {
            return userDao.getAllUsers();
        }
    
        public void addUser(LayuiUser user) {
            userDao.addUser(user);
        }
    
        public void delUser(int id) {
            userDao.delUser(id);
        }
    
        public void delUsers(int[] ids) {
            userDao.delUsers(ids);
        }
    
        public void updateUser(LayuiUser user) {
            userDao.updateUser(user);
        }
    
    }
    

    3.4 创建用户Controller

     

    package com.laoxu.test.helloweb.controller;
    
    import com.laoxu.test.helloweb.dao.LayuiUserDao;
    import com.laoxu.test.helloweb.entity.LayuiUser;
    import com.laoxu.test.helloweb.entity.ResultBean;
    import com.laoxu.test.helloweb.service.LayuiUserService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.*;
    
    import java.util.List;
    
    /**
     * @Description:  用户controller
     * @Author laoxu
     * @Date 2019/12/21 10:11
     **/
    @RestController
    @RequestMapping("/api/layui/user")
    public class LayuiUserController {
        @Autowired
        LayuiUserService userService;
    
        @GetMapping("/list")
        public ResultBean list(@RequestParam(defaultValue = "1") Integer page,
                               @RequestParam(defaultValue = "10") Integer limit){
            List<LayuiUser> users = userService.getPager(page,limit);
            int count = userService.getAllUsers().size();
    
            ResultBean result = new ResultBean(0,"查询成功",count,users);
    
            return result;
        }
    
        @PostMapping("/save")
        public ResultBean save(@RequestBody LayuiUser user){
            // 判断是新增还是修改
            if(user.getId()==0){
                userService.addUser(user);
            }else{
                userService.updateUser(user);
            }
    
            return new ResultBean(200,"保存成功",0,"");
        }
    
        @PostMapping("/remove")
        public ResultBean modify(@RequestBody int[] ids){
            userService.delUsers(ids);
            return new ResultBean(200,"删除成功",0,"");
        }
    }
    

     

     

     

    源码地址:https://gitee.com/indexman/boot-layui-curd

     

     

    展开全文
  • Struts2增删改查

    2017-12-18 16:04:54
    Struts2增删改查Struts2增删改查Struts2增删改查Struts2增删改查Struts2增删改查
  • 增删改查语句介绍

    2015-11-17 22:12:53
    JAVA MYSQL 增删改查语句,增删改查语句
  • xml

    2009-12-21 11:46:03
    xml .实现 xml .实现 xml .实现 xml .实现 xml .实现
  • Extjs 增删改查

    2010-05-18 18:18:02
    Extjs 增删改查 Extjs 增删改查Extjs 增删改查Extjs 增删改查Extjs 增删改查Extjs 增删改查
  • 小程序增删改查代码

    2018-03-05 17:00:03
    小程序增删改查代码,小程序增删改查代码,仅用于交流学习
  • mysql学习记录:库的增删改查,表的增删改查

    千次阅读 多人点赞 2017-12-13 17:19:02
    本文主要是对mysql:库的增删改查,表的增删改查,字段的增删改查的语法做一些测试。

    mysql:库的增删改查,表的增删改查,数据的增删改查

    1.库的增删改查


    1)创建库 test

    create database test;

    2)查看库 

    查看所有数据库:show database;

    3)使用库 test

    use test;

    结果:Database changed;

    4)删除库 test

    drop database test;

    ps:mysql数据库大小写不区分


    2.表的增删改查 t_user

    1)创建并使用数据库,然后开始创建表

    CREATE TABLE t_user(

    name VARCHAR(20) NOT NULL COMMENT '名字',
    sex INT NOT NULL COMMENT '性别,1代表男,2代表女'
    )ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT '用户表';

    sex INT NOT NULL COMMENT '性别,1代表男,2代表女'

    )ENGINE=INNODB DEFAULT CHARSET=utf8 COMMENT '用户表';


    解释一下:我的表名字叫t_user 表的结构大概是这么样子的:

    create table tablename(

    字段名 字段数据类型

    字段名 字段数据类型

    ...

    )engine=InnoDB default charset=utf8 comment '描述'


    engine 就是存储引擎,InnoDB支持事务,行级锁定,外键,分布式

    charset 就是表输入字符类型 utf8支持中文西文字符,咱这是中国,为了在使用数据库过程中不出现乱码及不知名错误,设置为charset=utf8可以避免这些问题。


    有人可能会问,我创建表时没有写什么engine、什么default charset也没发现有什么不对啊。这个你可以测试一下,这些在你创建表的时候,它给你默认加上了,我们显示的写出来就是为了方便其他人查看当然最终方便的是自己(如果,你的mysql默认配置不一样就可能在使用数据的时候会出现一些问题,配置文件在你mysql安装目录下my.ini文件可以查看和修改)。comment就是添加描述。


    2)查看表的定义

    如果我们需要查看表定义:describe t_user;[t_user就是表名]

    如果我们需要查看表详细定义:show create table t_user;

    | t_user | CREATE TABLE `t_user` (

      `name` varchar(20) NOT NULL COMMENT '名字',

      `sex` int(11) NOT NULL COMMENT '性别,1代表男,2代表女'

    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户表'


    3)删除表t_name1

    drop table t_name1;

    哈哈,不要说哪来的表t_name1;这个表示刚才我测试创建表只写字段不写其他的,然后查看表详细定义会出现什么内容而创建的。现在正好拿来删了。机智如我

    看看删了没:describe t_name1;

    结果:ERROR 1146 (42S02): Table 'sqltest.t_name1' doesn't exist

    这里表不存在了,说明删除成功。看看错误编号是1146,不同的错误类型出现的编号不一样,一般语法错误是1064(42000)


    4)修改表alter table

    4.1)修改表名rename

    alter table t_user rename t_student;

    describe t_student;

    可以看到表名已经修改成功


    4.2)增加字段add

    ALTER TABLE t_student ADD descri VARCHAR(300) AFTER sex;

    查看表字段是否添加成功:

    describe t_student;


    4.3)删除字段drop

    先添加一个字段:

    ALTER TABLE t_student ADD eeee VARCHAR(300) AFTER sex;

    ALTER TABLE t_student DROP eeee;

    DESCRIBE t_student;


    4.4)修改字段

    修改字段数据类型modify:

    ALTER TABLE t_student MODIFY sex CHAR(5);

    DESCRIBE t_student;

    修改字段的名字change:

    ALTER TABLE t_student CHANGE descri evaluate VARCHAR(300);

    DESCRIBE t_student;

    change关键字也可以同时修改字段名字和数据类型:

    alter table 表名 change 旧字段名 新字段名 新数据类型;


    3.数据的增删改查

    1)添加数据 insert into

    INSERT INTO t_student VALUES('张三','男','很帅');

    INSERT INTO t_student VALUES('王小丫','女','漂亮,知书达理');


    2)查询数据 select

    查询所有*:SELECT * FROM t_student;

    条件查询:SELECT * FROM t_student WHERE NAME='张三';

    也有根据你所需要的字段数据,条件查询:SELECT sex,evaluate FROM t_student WHERE NAME='王小丫';

    结果:+------+-----------------------+

       | sex  | evaluate              |

      +------+-----------------------+

       | 女   | 漂亮,知书达理   |

      +------+-----------------------+

    分页查询limit:

    先弄点数据进去:


    INSERT INTO t_student VALUES('张三1','男','很帅');

    INSERT INTO t_student VALUES('王小丫1','女','漂亮,知书达理');

    INSERT INTO t_student VALUES('张三2','男','很帅');

    INSERT INTO t_student VALUES('王小丫2','女','漂亮,知书达理');

    INSERT INTO t_student VALUES('张三3','男','很帅');

    INSERT INTO t_student VALUES('王小丫3','女','漂亮,知书达理');


    查询:SELECT * FROM t_student LIMIT 2,3;

    结果:

    name        sex     evaluate               

    ----------   ------  -----------------------

    张三1         男       很帅                 

    王小丫1     女       漂亮,知书达理  

    张三2         男       很帅                

    语法:select * from 表名 limit 起始下标,显示的数据条数

    ps:起始下标与数组一样,都是以0开始。


    3)修改数据update

    UPDATE t_student SET evaluate='很帅,搞基' WHERE NAME='张三';


    4)删除某条数据delete

    DELETE FROM t_student WHERE NAME='王小丫3';


    总结:库的增删改查,表的增删改查,数据的增删改查,都是记住那几个关键字,然后可以自己做测试,在将sql语句写进语法之前如果不能确定,可以自己先弄个表测试一下,不然代码写好了,一运行出现错误就不好了。如果有错漏之处,以及建议欢迎来信,留言

    补:刚看阿里的开发公约发现,说明: MySQL在 Windows下不区分大小写,但在 Linux下默认是区分大小写。因此,数据库下默认是区分大小写。



    展开全文
  • Servlet实现增删改查功能 Servlet实现增删改查功能 Servlet实现增删改查功能
  • myeclipse搭建ssh并实现增删改查,myeclipse搭建ssh并实现增删改查,myeclipse搭建ssh并实现增删改查
  • delphi增删改查小模块

    2019-02-28 12:03:25
    delphi增删改查小模块1
  • 简单的增删改查

    2012-08-06 10:23:37
    最简单的增删改查 java 最简单的增删改查 java 最简单的增删改查 java 最简单的增删改查 java 最简单的增删改查 java
  • WPF入门增删改查

    2018-10-19 13:30:36
    WPF入门增删改查绝对可用,初学者使用的,绝对可用!
  • Thinkphp5怎么通过模型增删改查,非常简单。 首先在application\index\controller目录下建立控制器,命名为:Index.php Index.php 代码如下,我这里是在application\index\controller 模块下建立的控制器,如果不是...
  • java web 增删改查

    2018-04-19 10:53:35
    java web 连接My SQL数据实现增删改查,使用面向对象封装
  • Mybatis通用增删改查

    2017-05-26 18:10:39
    Mybatis通用增删改查 有基础的DaoImpl
  • 增删改查 图标

    热门讨论 2012-10-29 10:51:43
    增删改查 图标

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 438,961
精华内容 175,584
关键字:

增删改查