简单的增删改查实现代码
springboot整合mybatis实现增删改查小案例
springboot整合mybatis实现增删改查⼩案例⼀、springboot简单hello world1.1 使⽤springboot项⽬前提是必须学会使⽤maven,maven這⾥就不多说了⽹上招⼀⼤堆教程1.2 创建⼀个war包的maven项⽬,创建后在pox.xml添加如下jar1.3 创建⼀个springboot的程序⼊⼝启动类:如下package com.ibigsea.bootdao;import org.mybatis.spring.annotation.MapperScan;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication; importorg.springframework.transaction.annotation.EnableTransactionManagement;@SpringBootApplicationpublic class UserApplication {public static void main(String[] args) {SpringApplication.run(UserApplication.class, args);}}package com.ibigsea.bootdao.controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestController@RequestMapping("users")public class UserController {@RequestMapping("hello")public String hello(){return "Hello World";}}浏览器访问结果如下:⾄此⼀个简单的springboot的应⽤已完成,下⾯整合mybatis实现简单的增删改查案例⼆、springboot整合mybatis案例2.1 ⾸先需要在pox.xml导⼊jar 在hello world案例之上添加如下⼏个jar包</dependency>2.2 在src/main/resources⽬录下创建⼀个application.properties⽂件,内容如下2.3 entity类package com.ibigsea.bootdao.entity;import java.io.Serializable;public class User implements Serializable {private static final long serialVersionUID = 8809101560720973267L; private Integer id;private String userName;private Integer age;public User() {// TODO Auto-generated constructor stub}public User(String userName, Integer age) {super();erName = userName;this.age = age;}public Integer getId() {return id;}public void setId(Integer id) {this.id = id;}public String getUserName() {public void setUserName(String userName) {erName = userName;}public Integer getAge() {return age;}public void setAge(Integer age) {this.age = age;}@Overridepublic String toString() {return "User [id=" + id + ", userName=" + userName + ", age=" + age + "]";}}2.4 mapper接⼝类可以在类加上@Mapper注解也可以在springboot应⽤的程序⼊⼝类@MapperScan(“com.ibigsea.bootdao.mapper”) package com.ibigsea.bootdao.mapper;import java.util.List;import org.apache.ibatis.annotations.Mapper;import er;public interface UserMapper {/*** 新增* @param userint save(User user);/*** 根据Id查询* @param user* @return*/User selectById(Integer id);/*** 根据Id修改* @param user* @return*/int updateById(User user);/*** 删除* @param user* @return*/int deleteById(Integer id);/*** 查询所有* @param user* @return*/List<User> queryAll();/*** 根据username查询*/User findByName(String username); }<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapper PUBLIC "-////DTD Mapper 3.0//EN""/dtd/mybatis-3-mapper.dtd" ><mapper namespace="erMapper" ><insert id="save" parameterType="er">insert into user(username,age) values(#{userName,jdbcType=VARCHAR},#{age,jdbcType=NUMERIC})</insert><select id="selectById" resultType="er">select * from user where id = #{id,jdbcType=NUMERIC}</select><update id="updateById" parameterType="er"> update user setusername = #{userName,jdbcType=VARCHAR} ,age = #{age,jdbcType=NUMERIC}where id = #{id,jdbcType=NUMERIC}</update><delete id="deleteById">delete from user where id = #{id,jdbcType=NUMERIC}</delete><select id="queryAll" resultType="er">select * from user</select><select id="findByName" resultType="er">select * from user where username=#{userName}</select></mapper>2.6 业务接⼝类与2.4的mapper接⼝类内容⼀致2.7 业务接⼝类的实现package com.ibigsea.bootdao.service.impl;import java.util.List;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service;import org.springframework.transaction.annotation.Transactional;import er;import erMapper;import erService;@Transactional@Servicepublic class UserServiceImpl implements UserService{@Autowiredprivate UserMapper userMapper;@Overridepublic int save(User user) {int myuser= userMapper.save(user);//测试事务管理//int i =1/0;return myuser;}@Overridepublic User selectById(Integer id) {return userMapper.selectById(id);}@Overridepublic int updateById(User user) {return userMapper.updateById(user);}@Overridepublic int deleteById(Integer id) {return userMapper.deleteById(id);}@Overridepublic List<User> queryAll() {return userMapper.queryAll();}@Overridepublic User findByName(String username) {return userMapper.findByName(username);}}此处配置了事物管理需要在springboot⼊⼝类添加@EnableTransactionManagement 开启事物管理2.8 控制层package com.ibigsea.bootdao.controller;import java.util.List;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import er;import erService;@RestController@RequestMapping("users")public class UserController {@RequestMapping("hello")public String hello(){return "Hello World";}@RequestMapping("/add/{name}/{age}")public User insert(@PathVariable("name")String name,@PathVariable Integer age){userService.save(new User(name,age));return userService.findByName(name);}@RequestMapping("/findById/{id}")public User findById(@PathVariable("id") Integer id){return userService.selectById(id);}@RequestMapping("/deleteById/{id}")public void deleteById(@PathVariable("id") Integer id){userService.deleteById(id);}@RequestMapping("/updateById/{id}")public void updateById(@PathVariable("id") Integer id){User user = new User();user.setId(id);user.setAge(100);user.setUserName("xiaoguo");userService.updateById(user);}@RequestMapping("getUserList")public List<User> getUserList(){return userService.queryAll();}}2.9 spring boot 程序⼊⼝启动类package com.ibigsea.bootdao;import org.mybatis.spring.annotation.MapperScan;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication; importorg.springframework.transaction.annotation.EnableTransactionManagement;@SpringBootApplication@EnableTransactionManagement@MapperScan("com.ibigsea.bootdao.mapper")public class UserApplication {public static void main(String[] args) {SpringApplication.run(UserApplication.class, args);}}⾄此springboot整合mybatis整合完成,项⽬的⽬录结构如下:运⾏结果如下:。
MybatisPlus实现简单增删改查功能
MybatisPlus实现简单增删改查功能实现步骤:⼯具:IDEA数据库版本:mysql5.7⼀、环境搭建1.创建springboot项⽬pom.xml2.pom.xml : spring web、lombok mysql<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><scope>runtime</scope><optional>true</optional></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><optional>true</optional></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies>3.添加mybatisplus依赖<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.3.1.tmp</version></dependency>application.properties4.application.properties配置⽂件:⽤户名、密码、连接驱动、配置⽇志注意:mysql8 需要增加时区的配置 serverTimezone=GMT%2B8 东⼋区#mysql5 驱动不同ername=rootspring.datasource.password=123456spring.datasource.url=jdbc:mysql://localhost:3306/mybatisplus?useSSL=false&useUnicode=true&characterEncoding=utf-8 spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver#配置⽇志mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl数据库数据#建表DROP TABLE IF EXISTS user;CREATE TABLE user(id BIGINT(20) NOT NULL COMMENT '主键ID',name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',age INT(11) NULL DEFAULT NULL COMMENT '年龄',email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',PRIMARY KEY (id));#插⼊数据DELETE FROM user;INSERT INTO user (id, name, age, email) VALUES(1, 'Jone', 18, 'test1@'),(2, 'Jack', 20, 'test2@'),(3, 'Tom', 28, 'test3@'),(4, 'Sandy', 21, 'test4@'),(5, 'Billie', 24, 'test5@');代码详解1.新建实体类Userlombok注解详解:@Data:⾃动⽣成get\set⽅法@AllArgsConstructor :有参⽅法@NoArgsConstructor:⽆参⽅法@TableId(value = “id”,type = IdType.AUTO) :给实体设置⾃增package com.sh.entity;import com.baomidou.mybatisplus.annotation.IdType;import com.baomidou.mybatisplus.annotation.TableId;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import org.springframework.context.annotation.Primary;import java.util.Date;@Data@AllArgsConstructor@NoArgsConstructorpublic class User {@TableId(value = "id",type = IdType.AUTO)private Integer id;private String name;private Integer age;private String email;private Date createTime;private Date updateTime;}2. 新建mapper包在mapper包⾥建UserMappe接⼝r 继承BaseMapper<实体类> package com.sh.mapper;import com.baomidou.mybatisplus.core.mapper.BaseMapper;import er;import org.springframework.stereotype.Repository;@Repositorypublic interface UserMapper extends BaseMapper<User> {}3.创建控制层controller:新建UserController类package com.sh.controller;import er;import erMapper;import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*;import java.util.ArrayList;import java.util.Arrays;import java.util.List;@RestControllerpublic class UserController {@Autowiredprivate UserMapper userMapper;//查询查询所以 null 就是没有条件@GetMapping("/selectUser")public List<User> getAll(){List<User> user = userMapper.selectList(null);return user;}//根据id查询@GetMapping("/selectById")public User selectUserById(){User user = userMapper.selectById(1);return user;}//根据多个id查询 Arrays.asList集合@GetMapping("/selectByIds")public List<User> selectUserByIds(){List<User> user = userMapper.selectBatchIds(Arrays.asList(1,2,3)); return user;}//添加@PostMapping("/insertUser")public Integer insertUsers(User user){Integer result = userMapper.insert(user);return result;}//修改根据id@PutMapping("/updateUser")public Integer updateUsers(User user){Integer result = userMapper.updateById(user);return result;}//删除根据id@DeleteMapping("/deleteUser")public Integer deleteUsers(Integer id){Integer result = userMapper.deleteById(id);return result;}}项⽬结构注意:添加,修改操作需要数据库和实体设置⾃增到此这篇关于MybatisPlus实现简单增删改查的⽂章就介绍到这了,更多相关MybatisPlus增删改查内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。
android之sqlite实现增删改查
Sqlite 实现简单的增删改查主界面:功能实现:1)增加数据:2)全部显示3)清除显示4)全部删除5):ID删除6)ID查询:7)ID更新:主要代码段:DBOpenHelper.javapackage com.chen.dao;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.database.sqlite.SQLiteOpenHelper;import android.util.Log;public class DBOpenHelper extends SQLiteOpenHelper { private static final int VERSION=2;//版本private static final String DBNAME="user.db";//数据库名字//创建数据库public DBOpenHelper(Context context) {super(context, DBNAME, null, VERSION);}@Override/** 创建表*/public void onCreate(SQLiteDatabase db) {db.execSQL("create table if not exists u_user(_id integer primary key,name varchar(20),age integer,tall varchar(5))");}//版本被更新时执行@Overridepublic void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {}}UserDAO.javapackage com.chen.dao;import java.util.ArrayList;import java.util.List;import er;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;public class UserDAO {private DBOpenHelper helper;//写入,不然会是出错,是空指针public UserDAO(Context context){helper=new DBOpenHelper(context);}/*** 添加用户信息*/public void add(User user){SQLiteDatabase db=helper.getWritableDatabase();String sql="Insert into u_user(_id,name,age,tall) values(?,?,?,?)";db.execSQL(sql, new Object[]{user.getId(),user.getName(),user.getAge(),user.getTall()});db.close();}/*** 删除用户信息*/public void delete(Integer...id){if(id.length>0){StringBuffer sb=new StringBuffer();for(int i=0;i<id.length;i++){sb.append("?").append(",");}sb.deleteCharAt(sb.length()-1);SQLiteDatabase database=helper.getWritableDatabase();String sql="delete from u_user where _id in ("+sb+")";database.execSQL(sql, (Object[])id);}}/*** 删除表里的全部数据*/public void delelteall(){SQLiteDatabase database=helper.getWritableDatabase();String sql = "delete from u_user";database.execSQL(sql);}/*** 用户修改*/public void update(User user){SQLiteDatabase db=helper.getWritableDatabase();//写入数据库中注意!!!!不能放在外面String sql="update u_user set name=?,age=?,tall=? where _id=?";db.execSQL(sql, new Object[]{user.getName(),user.getAge(),user.getTall(),user.getId()});}/*** 查找用户信息*/public User find(int userid){SQLiteDatabase db=helper.getWritableDatabase();//写入数据库中注意!!!!不能放在外面String sql="select _id,name,age,tall from u_user where _id=?";Cursor cursor=db.rawQuery(sql, new String[]{String.valueOf(userid)});if(cursor.moveToNext()){return new User(cursor.getInt(cursor.getColumnIndex("_id")),cursor.getString(cursor.getColumnIndex("name")),cursor.getInt(cursor.getColumnIndex("age")),cursor.getString(cursor.getColumnIndex("tall")));}return null;}/*** 显示用户*/public Cursor select() {SQLiteDatabase db = helper.getReadableDatabase();Cursor cursor = db.query("u_user",null, null, null, null,null, "_id desc");return cursor;}}MainActivity.javapackage com.chen.database;/*** writer:ManMan*Email:*******************/import erDAO;import er;import android.app.Activity;import android.database.Cursor;import android.os.Bundle;import android.util.Log;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.EditText;import android.widget.ListView;import android.widget.SimpleCursorAdapter;import android.widget.TextView;import android.widget.Toast;public class MainActivity extends Activity implements OnClickListener{ private static final String TAG = "Add";private EditText edname,edage,edtall,id;private Button add,deleteshow,show,iddelete,idupdate,idshow,deleteall;private TextView tedatashow;private ListView datashow;/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.main);edname = (EditText)findViewById(R.id.edname);edage = (EditText)findViewById(R.id.edage);edtall = (EditText)findViewById(R.id.edtall);id = (EditText)findViewById(R.id.id);tedatashow = (TextView)findViewById(R.id.tedatashow);datashow = (ListView)findViewById(R.id.datashow);add = (Button)findViewById(R.id.add);deleteshow = (Button)findViewById(R.id.deleteshow);show = (Button)findViewById(R.id.show);iddelete = (Button)findViewById(R.id.iddelete);idupdate = (Button)findViewById(R.id.idupdate);idshow = (Button)findViewById(R.id.idshow);deleteall = (Button)findViewById(R.id.deleteall);add.setOnClickListener(this);deleteshow.setOnClickListener(this);show.setOnClickListener(this);iddelete.setOnClickListener(this);idupdate.setOnClickListener(this);idshow.setOnClickListener(this);deleteall.setOnClickListener(this);}public void onClick(View v) {/** 添加数据*/if(v==add){if(!id.getText().toString().equals(null)&&!edname.getText().toString().equals(null)&&!edage .getText().toString().equals(null)&&!edtall.getText().toString().equals(null)){try{UserDAO userdao = new UserDAO(MainActivity.this);User user = new User(Integer.valueOf(id.getText().toString()), edname.getText().toString(),Integer.valueOf(edage.getText().toString()), edtall.getText().toString());userdao.add(user);Toast.makeText(MainActivity.this, "成功添加!", Toast.LENGTH_LONG).show();tedatashow.setText("新添数据为:"+"\n"+"ID:"+Integer.valueOf(id.getText().toString())+","+"姓名:"+edname.getText().toString()+","+"年龄:"+Integer.valueOf(edage.getText().toString())+","+"身高:"+edtall.getText().toString()+",");//设置为空edage.setText("");edname.setText("");edtall.setText("");id.setText("");}catch (Exception e) {Log.i(TAG, "出错了");Log.i(TAG, e.getMessage());}}else if(id.getText().toString().equals(null)){Toast.makeText(MainActivity.this, "ID不能为空!", Toast.LENGTH_LONG) .show();}}/** 清除显示*/if(v==deleteshow){tedatashow.setText("");}/** 全部显示*/if(v==show){try{UserDAO userdao = new UserDAO(MainActivity.this);Cursor cursor = userdao.select();/** 构建Listview适配器*/SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, yout.showuser, cursor, new String[]{"_id","name","age","tall" },newint[]{R.id.textView1,R.id.textView2,R.id.textView3,R.id.textView4});datashow.setAdapter(adapter);}catch (Exception f) {Log.e("err",f.getMessage());Log.e("err",null, f.getCause());Toast.makeText(MainActivity.this, "显示不了", Toast.LENGTH_LONG).show();}}/** ID删除*/if(v==iddelete){UserDAO userDAO=new UserDAO(MainActivity.this);//注意不能放在外面userDAO.delete(Integer.valueOf(id.getText().toString()));Toast.makeText(MainActivity.this, "您成功删除了"+Integer.valueOf(id.getText().toString()), Toast.LENGTH_LONG).show();id.setText("");}/** 全部删除*/if(v==deleteall){UserDAO userDAO=new UserDAO(MainActivity.this);//注意不能放在外面userDAO.delelteall();Toast.makeText(MainActivity.this, "您已经把数据全部删除了", Toast.LENGTH_LONG).show();}/** ID更新*/if(v==idupdate){UserDAO userDAO=new UserDAO(MainActivity.this);//注意不能放在外面User user=userDAO.find(Integer.valueOf(id.getText().toString()));user.setName(edname.getText().toString());user.setAge(Integer.valueOf(edage.getText().toString()));user.setTall(edtall.getText().toString());userDAO.update(user);Toast.makeText(MainActivity.this, "修改成功", Toast.LENGTH_LONG).show();}/** ID查询*/if(v==idshow){UserDAO userDAO=new UserDAO(MainActivity.this);//注意不能放在外面User user=userDAO.find(Integer.valueOf(id.getText().toString()));tedatashow.setText("ID:"+user.getId()+" "+"姓名:"+user.getName()+" "+"年龄:"+user.getAge()+" "+"身高"+user.getTall());}/***/}}User.javapackage com.chen.modl;public class User {private int id;private String name;private int age;private String tall;/** 构造方法*/public User(){super();}public User(int id,String name,int age,String tall){ this.id=id;=name;this.age=age;this.tall=tall;}public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) { = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getTall() {return tall;}public void setTall(String tall) {this.tall = tall;}//复写toString()方法进行查找public String toString(){return"id:"+id+"name:"+name+"age"+age+"tall"+tall;}}Main.xml<?xml version="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><LinearLayoutandroid:orientation="horizontal"android:layout_width="wrap_content"android:layout_height="wrap_content"><!--姓名 --><TextViewandroid:text="姓名:"android:layout_width="wrap_content"android:layout_height="wrap_content"/><EditTextandroid:id="@+id/edname"android:layout_height="wrap_content"android:layout_width="278dp"/></LinearLayout><LinearLayoutandroid:orientation="horizontal"android:layout_width="wrap_content"android:layout_height="wrap_content"><!--年龄 --><TextViewandroid:text="年龄:"android:layout_width="wrap_content"android:layout_height="wrap_content"/><EditTextandroid:id="@+id/edage"android:layout_width="278dp"/></LinearLayout><!--身高 --><LinearLayoutandroid:orientation="horizontal"android:layout_width="wrap_content"android:layout_height="wrap_content" ><TextViewandroid:text="身高:"android:layout_width="wrap_content"android:layout_height="wrap_content" /><EditTextandroid:id="@+id/edtall"android:layout_height="wrap_content"android:layout_width="278dp"/></LinearLayout><!--按钮 --><LinearLayoutandroid:orientation="horizontal"android:layout_width="wrap_content"android:layout_height="wrap_content" ><Buttonandroid:id="@+id/add"android:text="添加数据"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="3dip"/><Buttonandroid:id="@+id/show"android:text="全部显示"android:layout_width="wrap_content"android:layout_height="wrap_content" /><Buttonandroid:id="@+id/deleteshow"android:text="清除显示"android:layout_width="wrap_content"/><Buttonandroid:id="@+id/deleteall"android:text="全部删除"android:layout_width="wrap_content"android:layout_height="wrap_content" /></LinearLayout><!--按钮 --><LinearLayoutandroid:orientation="horizontal"android:layout_width="wrap_content"android:layout_height="wrap_content"><TextViewandroid:text="ID:"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="3dip"android:layout_weight="1"/><EditTextandroid:id="@+id/id"android:layout_width="75dip"android:layout_height="wrap_content"android:layout_marginLeft="3dip"android:layout_weight="2"/><Buttonandroid:id="@+id/iddelete"android:text="ID删除"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="5dip"android:layout_weight="1"/><Buttonandroid:id="@+id/idshow"android:text="ID查询"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"/><Buttonandroid:id="@+id/idupdate"android:text="ID更新"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_weight="1"/></LinearLayout><TextViewandroid:text="数据库数据显示:"android:layout_width="wrap_content"android:layout_height="wrap_content" /><TextViewandroid:id="@+id/tedatashow"android:layout_width="fill_parent"android:layout_height="wrap_content"android:textSize="15dip"/><ListViewandroid:id="@+id/datashow"android:layout_width="fill_parent"android:layout_height="wrap_content"android:textSize="15dip"/></LinearLayout>。
使用JSP对数据库进行增删改查
使用JSP对数据库进行增删改查JSP(Java Server Pages)是一种用于开发Web应用程序的Java技术。
它可以直接在HTML页面中嵌入Java代码,实现动态生成页面内容。
在使用JSP进行数据库的增删改查操作时,通常需要借助JDBC(Java Database Connectivity)来进行数据库的连接和操作。
接下来,需要进行数据库的连接。
可以使用JDBC提供的DriverManager类和Connection接口来实现。
首先,需要定义数据库的相关信息,如驱动程序名称、数据库URL、用户名和密码。
然后,使用DriverManager的静态方法getConnection(来获取数据库连接,传入相应的参数。
例如,对于MySQL数据库,可以使用如下代码进行连接:String url = "jdbc:mysql://localhost:3306/database_name"; // 数据库URLString userName = "root"; // 数据库用户名String password = "password"; // 数据库密码try//加载驱动程序Class.forName(driverName);//获取数据库连接Connection connection = DriverManager.getConnection(url, userName, password);//...} catch (ClassNotFoundException e)e.printStackTrace(;} catch (SQLException e)e.printStackTrace(;连接成功后,接下来可以进行数据库的增删改查操作。
通常,可以使用JDBC的Statement或PreparedStatement对象来执行SQL语句。
Statement对象用于静态SQL语句,而PreparedStatement对象用于动态SQL语句。
PyQt5实现数据的增删改查功能详解
PyQt5实现数据的增删改查功能详解通过这个布局思路来做⼀个简单的后台管理系统也是OK的,⼤家可以参考⼀下啦!话不多说,还是先来梳理⼀下需要的第三⽅模块。
PyQ5 的UI界⾯布局部分,同样是还是使⽤这三个模块就够了。
from PyQt5.QtGui import *from PyQt5.QtWidgets import *from PyQt5.QtCore import *将sys模块导⼊到代码块中,⽤于main函数⾥⾯的主体循环时使⽤。
import sysadd_dialog是⼀个⾃⼰写的添加数据的弹框。
from add_dialog import AddDialog创建好DataManage类,主要⽤来实现主窗⼝页⾯的UI布局。
class DataManage(QWidget):def __init__(self):super(DataManage, self).__init__()self.data_list = []self.init_ui()def init_ui(self):'''全局设置'''self.setWindowIcon(QIcon('数据.ico'))self.setWindowTitle('数据管理器')self.resize(550, 400)grid = QGridLayout()'''菜单设置'''self.add_btn = QPushButton()self.add_btn.setText('添加数据')self.add_btn.clicked.connect(self.add_btn_click)self.del_btn = QPushButton()self.del_btn.setText('删除数据')self.del_btn.clicked.connect(self.del_data_row)self.query_btn = QPushButton()self.query_btn.setText('查询')self.query_btn.clicked.connect(self.query_data_list)'''数据列表设置'''self.data_table = QTableWidget()COLUMN = 5ROW = 0self.data_table.setColumnCount(COLUMN)self.data_table.setRowCount(ROW)h_table_header = ['序号', '姓名', '年龄', '班级', '表现']self.data_table.setHorizontalHeaderLabels(h_table_header)self.data_table.verticalHeader().setVisible(False)self.data_table.setShowGrid(True)self.data_table.setEditTriggers(QTableWidget.NoEditTriggers)self.data_table.setSelectionBehavior(QTableWidget.SelectRows)self.data_table.setSelectionMode(QTableWidget.SingleSelection)for index in range(self.data_table.columnCount()):headItem = self.data_table.horizontalHeaderItem(index)headItem.setTextAlignment(Qt.AlignVCenter)'''加⼊布局'''grid.addWidget(self.add_btn, 0, 0, 1, 1)grid.addWidget(self.del_btn, 0, 1, 1, 1)grid.addWidget(self.query_btn, 0, 2, 1, 1)grid.addWidget(self.data_table, 1, 0, 1, 3)self.setLayout(grid)定义需要的槽函数,通过不同按钮的信号绑定相应的槽函数从⽽来实现该按钮需要绑定的事件来实现业务逻辑。
c语言实现顺序表的增删查改逆置简单代码
c语言实现顺序表的增删查改逆置简单代码1. 顺序表的定义顺序表是一种线性表,其元素在内存中按顺序存储,每个元素占用连续的存储单元。
顺序表的特点是存取速度快,但插入和删除元素时需要移动大量的元素。
顺序表可以用结构体来表示,其定义如下:typedef struct_SeqList {int*data; // 指向数据元素的指针int size; // 顺序表的长度int capacity; // 顺序表的容量} SeqList;2. 顺序表的初始化顺序表的初始化需要分配内存空间来存放数据元素。
可以使用以下代码来初始化顺序表:SeqList*init_seq_list(int capacity) {SeqList*list= (SeqList*)malloc(sizeof(SeqList));if (list==NULL) {return NULL;}list->data= (int*)malloc(sizeof(int) *capacity);if (list->data==NULL) {free(list);return NULL;}list->size=0;list->capacity=capacity;return list;}3. 顺序表的插入在顺序表中插入元素需要移动后面的元素,以保证元素的顺序性。
可以使用以下代码在顺序表中插入元素:int insert_seq_list(SeqList*list, int index, int value) {if (index<0||index>list->size) {return-1;}if (list->size==list->capacity) {// 扩容顺序表int*new_data= (int*)realloc(list->data, sizeof(int) *list->capacity*2);if (new_data==NULL) {return-1;}list->data=new_data;list->capacity*=2;}// 移动后面的元素for (int i=list->size; i>index; i--) {list->data[i] =list->data[i-1];}// 插入元素list->data[index] =value;list->size++;return0;}4. 顺序表的删除从顺序表中删除元素需要移动后面的元素,以保证元素的顺序性。
python增删查改方法
python增删查改方法在Python中,增删查改通常与数据结构(如列表、字典或数据库)相关。
以下是针对这些操作的基本方法:1. 增加(增)对于列表,你可以使用 `append()` 方法添加元素。
```python`my_list = []my_(1) 添加元素1````对于字典,你可以使用大括号 `{}` 来添加键值对。
```python`my_dict = {}my_dict[1] = "one" 添加键值对````2. 删除(删)对于列表,你可以使用 `remove()` 方法删除特定元素。
要删除所有出现的特定元素,可以使用 `list comprehension`。
```python`my_list = [1, 2, 3, 2]my_(2) 删除第一个出现的2或使用 list comprehension 删除所有2my_list = [i for i in my_list if i != 2]````对于字典,你可以使用 `del` 语句或 `pop()` 方法删除键值对。
```python`my_dict = {1: "one", 2: "two"}del my_dict[2] 删除键为2的键值对或使用 pop() 方法删除并返回键值对value = my_(2)````3. 查找(查)对于列表,可以使用索引来查找特定元素。
索引是从0开始的。
```python`my_list = [1, 2, 3, 4]print(my_list[1]) 输出: 2````对于字典,可以使用键来查找对应的值。
如果键不存在,会抛出`KeyError`。
可以使用 `get()` 方法来避免错误,该方法允许指定一个默认值。
```python`my_dict = {1: "one", 2: "two"}print(my_dict[1]) 输出: "one"print(my_(3, "default")) 输出: "default"````4. 修改(改)对于列表,可以直接使用索引来修改元素。
SpringBoot实现简单的增删改查
SpringBoot实现简单的增删改查在pom.xml添加相应的依赖<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><scope>runtime</scope></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope><exclusions><exclusion><groupId>org.junit.vintage</groupId><artifactId>junit-vintage-engine</artifactId></exclusion></exclusions></dependency><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>2.1.3</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- 前端使⽤thymeleaf来代替jsp --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-thymeleaf</artifactId></dependency></dependencies>配置⽂件配置数据库等#serverserver.port=80#项⽬名:server.servlet.context-path#spring dataSourcespring.datasource.url=jdbc:mysql:///dbgoods?serverTimezone=GMT%2B8&characterEncoding=utf8ername=rootspring.datasource.password=rootmybatis.mapper-locations=classpath:/mapper/*/*.xml#spring log.cy=debug#spring thymeleaf(假如没有配置也会默认配置,在默认配置中prefix默认值为classpath:/templates/,后缀默认为.html)#不⽤重启服务器,⽹页就能刷新spring.thymeleaf.cache=falsespring.thymeleaf.prefix=classpath:/templates/pages/spring.thymeleaf.suffix=.html数据层添加相应注解实现sql语句(或者通过xml配置来实现)数据层封装了商品信息,并提供get和set⽅法,为Goods类1.查询所有数据@Select("select * from tb_goods")List<Goods> findAll();2.按照id删除数据@Delete("delete from tb_goods where id=#{id}")int deleteById(Integer id);3.修改数据(1)修改数据⾸先要新建⼀个界⾯,按照id查找内容,并将查找到的内容显⽰到⽂本框内@Select("select * from tb_goods where id=#{id}")Goods findById(Integer id);(2)再添加查找的⽅法@Update("update tb_goods set name=#{name},remark=# {remark},createdTime=now() where id=#{id}")int update(Goods goods);4.新增数据@Insert("insert into tb_goods(name,remark,createdTime) values (#{name},#{remark},now())")int add(Goods goods);业务层提供对应接⼝⽅法和实现类1.业务层接⼝public interface GoodsService {List<Goods> findObject();int add(Goods goods);int update(Goods goods);Goods findById(Integer id);}2.业务层实现类@Servicepublic class GoodsServiceImpl implements GoodsService {@Autowiredprivate GoodsDao goodsDao;@Overridepublic List<Goods> findObject() {long start=System.currentTimeMillis();List<Goods> list = goodsDao.findObjects();long end=System.currentTimeMillis();System.out.println("query time:"+(end-start));return list;}@Overridepublic int add(Goods goods) {return goodsDao.add(goods);}@Overridepublic int update(Goods goods) {return goodsDao.update(goods);}@Overridepublic Goods findById(Integer id) {return goodsDao.findById(id);}控制层写具体实现1.跳转到⾸页并且查找所有商品@RequestMapping("doGoodsUI")public String doGoodsUI(Model model) {List<Goods> list = goodsService.findObject();model.addAttribute("goods",list);return "goods";}2.业务层实现类@Servicepublic class GoodsServiceImpl implements GoodsService {@Autowiredprivate GoodsDao goodsDao;@Overridepublic List<Goods> findObject() {long start=System.currentTimeMillis();List<Goods> list = goodsDao.findObjects();long end=System.currentTimeMillis();System.out.println("query time:"+(end-start));return list;}@Overridepublic int add(Goods goods) {return goodsDao.add(goods);}@Overridepublic int update(Goods goods) {return goodsDao.update(goods);}@Overridepublic Goods findById(Integer id) {return goodsDao.findById(id);}控制层写具体实现1.跳转到⾸页并且查找所有商品@RequestMapping("doGoodsUI")public String doGoodsUI(Model model) {List<Goods> list = goodsService.findObject();model.addAttribute("goods",list);return "goods";}2.删除商品@RequestMapping("doDeleteById/{id}")// (@PathVariable Integer id)告诉服务器,id拿到的是从⽹页上同样叫id的数据 public String dodeletebyId(@PathVariable Integer id){int delete = goodsDao.deleteById(id);//doGoodsUI前⾯没有加/的话,跳转的⽹址是替代了最后⼀个/后⾯的内容 return "redirect:/goods/doGoodsUI";}3.修改商品(1)先将查找出来的商品显⽰在⽂本框中@RequestMapping("doFindById/{id}")public String doFindByID(@PathVariable Integer id,Model model){Goods goods = goodsService.findById(id);model.addAttribute("goods",goods);return "goods-update";}(2)实现修改@RequestMapping("doUpdateGoods")public String doUpdateGoods(Goods goods){goodsService.update(goods);return "redirect:/goods/doGoodsUI";}4.新增商品@RequestMapping("doSaveGoods")public String doSaveGoods(Goods goods){goodsService.add(goods);return "redirect:/goods/doGoodsUI";}前端采⽤html+thymeleaf模板代替jsp2.each表⽰遍历拿到的数组,goods是从控制层拿到的model的名字3.id,name和remark与数据库对应,date要格式化拿到数据,该语法是thymeleaf固定写法<tr th:each="g:${goods}"><td th:text="${g.id}">1</td><td th:text="${}">AAAAAAA</td><td th:text="${g.remark}">aa</td><td th:text="${#dates.format(g.createdTime,'yyyy-MM-dd HH:mm')}">aa</td><!-- <td><a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" th:href="@{/goods/doDeleteById(id=${g.id})}" rel="external nofollow" ><button>删除</button></a></td>--><td><a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" th:href="@{/goods/doDeleteById/{doDeleteById}(doDeleteById=${g.id})}" rel="external nofollow" ><button>删除</button></a></td> <td><a href="#" rel="external nofollow" rel="external nofollow" rel="external nofollow" th:href="@{/goods/doFindById/{id}(id=${g.id})}" rel="external nofollow" ><button>修改</button></a></td></tr>4.新增商品界⾯(1)标签⾥的name属性要和sql语句⼀致(2)这⾥由于数据库中的id列设置了⾃增长,所以不需要id属性,createdTime列使⽤了now()获取当前时间,所以也不需要传值,所以在控制层的doUpdateGoods⽅法⾥可以使⽤封装好的Goods来接收从html拿到的参数<form th:action="@{/goods/doSaveGoods}" method="post"><ul><li>name:<input type="text" name="name"></li><li>remark:<textarea rows="3" cols="20" name="remark"></textarea></li><li><input type="submit" value="Save Goods"></li></ul></form>5.修改商品界⾯(1)因为id列⾃增长,所以修改商品信息不需要id这⼀列,但传参数有需要⼀起传送过去,所以添加了⼀个输⼊框,默认设置为隐藏,将其value设置为id的值<form th:action="@{/goods/doUpdateGoods}" method="post"><input type="hidden" name="id" th:value="${goods.id}"><ul><li>name:<input type="text" name="name" th:value="${}"></li><li>remark:<textarea rows="3" cols="20" name="remark" th:text="${goods.remark}"></textarea></li><li><input type="submit" value="Update Goods"></li></ul></form>以上就是Spring Boot实现简单的增删改查的详细内容,更多关于Spring Boot增删改查的资料请关注其它相关⽂章!。
jpa实现增删改查
jpa实现增删改查为了简化操作我们⾃⼰去编写⼀个⼯具类JpaUtilspublic class JpaUtils {private static EntityManagerFactory factory;static {factory = Persistence.createEntityManagerFactory("myJpa");}public static EntityManager getEntityManager(){return factory.createEntityManager();}}解释⼀下:在第⼀次调⽤getEntityManager⽅法的时候会加载静态代码块⾥⾯的内容创建实体管理⼯⼚然后再调⽤⽅法通过⼯⼚获取EntityManager这个实体管理类在以后的调⽤种直接通过⼯⼚进⾏获取案例⼀:查询直接书写测试类进⾏测试:测试结果:注意这⾥有⼀点需要注意:就是前⾯的配置⽂件中有⼀处要进⾏修改:create要修改成update 不然的话数据库中存在表就会被删除就会报错还有另外⼀种查询⽅式:测试结果:那两种⽅式有什么区别??我们打上断点进⾏测试:第⼀种⽅法testFind点击下⼀步:快捷键f8出现了sql语句(⽴即加载模式)对象就是实体类本⾝测试第⼆种⽅法testReference() 打上断点:这种⽅法获取的是代理对象find()⽅法查询查询的是当前对象本⾝在调⽤find()⽅法的时候就会发送sql语句查询数据库getReference()⽅法获取的对象是⼀个动态代理对象调⽤getReference⽅法不会⽴即发送sql语句查询数据库当调⽤查询结果对象的时候才会发送sql语句什么时候⽤什么时候发送sql语句进⾏查询数据库测试更新操作:测试结果:控制台输出数据库中的数据结果:测试删除操作:控制台的输出数据库删除后的结果:。
js如何实现对数据库的增删改查
js如何实现对数据库的增删改查JavaScript操作数据库JS操作Access数据库,跟其他语⾔操作差不多,总结了⼀下习惯代码,仅供参考学习。
现在在F盘有⽂件abc.mdf,表名为Student,⼀共2个字段,Id数字类型主键,stuName⽂本类型,现对该表进⾏增删改查的操作:1.查询复制代码代码如下:<HTML><HEAD><TITLE>数据查询</TITLE><Script >var conn = new ActiveXObject("ADODB.Connection");conn.Open("DBQ=f://abc.mdb;DRIVER={Microsoft Access Driver (*.mdb)};");var rs = new ActiveXObject("ADODB.Recordset");var sql="select * from Student";rs.open(sql, conn);var html="";while(!rs.EOF){html=html+rs.Fields("Id")+" "+rs.Fields("stuName");rs.moveNext();}document.write(html);rs.close();rs = null;conn.close();conn = null;</script></HEAD><BODY></BODY></HTML>2.增加操作复制代码代码如下:<HTML><HEAD><TITLE>增加操作</TITLE><script language="javascript">function addUser(id,stuName){//⽤ JavaScript 写服务器端连接数据库的代码⽰例var conn = new ActiveXObject("ADODB.Connection");conn.Open("DBQ=F://abc.mdb;DRIVER={Microsoft Access Driver (*.mdb)};");var sql="insert into Student(ID,stuName) values("+id+",'"+stuName+"')";try{conn.execute(sql);alert("添加成功");}catch(e){document.write(e.description);alert("添加失败~~~");}conn.close();}</script></HEAD><BODY><table width=100 border=1><tr bgcolor='#f4f4f4'><td>编号</td><td>姓名</td></tr><tr><td><input id="stuId" /></td><td><input id="stuName"/></td></tr></table><input name="1" type="button" value="添加" onclick="addUser(stuId.value,stuName.value)"/> </BODY></HTML>3.删除操作复制代码代码如下:<HTML><HEAD><TITLE>删除操作</TITLE><script language="javascript">function delStu(id){var conn = new ActiveXObject("ADODB.Connection");conn.Open("DBQ=F://abc.mdb;DRIVER={Microsoft Access Driver (*.mdb)};");var sql="delete from Student where Id=2";conn.execute(sql);conn.close();conn = null;alert("修改成功");}</script></HEAD><BODY><input name="1" type="button" value="删除" onclick="delStu(1)"/></BODY></HTML>4.修改操作复制代码代码如下:<HTML><HEAD><TITLE>修改操作 </TITLE></HEAD><script>function updateUser(userId,userName){var conn = new ActiveXObject("ADODB.Connection");conn.Open("DBQ=F://abc.mdb;DRIVER={Microsoft Access Driver (*.mdb)};");var rs = new ActiveXObject("ADODB.Recordset");var sql="update Student set stuName='" + userName + "' where Id=" + userId + "";conn.execute(sql);conn.close();conn = null;alert("修改成功");}</script><BODY><table width=100 border=1><tr bgcolor='#f4f4f4'><td>编号</td><td>姓名</td></tr><tr><td><input id="stuId" /></td><td><input id="stuName"/></td></tr></table><input name="1" type="button" value="修改" onclick="updateUser(stuId.value,stuName.value)"/></BODY></HTML>另外,JS也可以操作SQL Server数据库数据库名为:MySchool,表名为Student,StudentId为int类型,⾃增列,studentName为学⽣姓名,为varchar类型。
vue+element实现增删改查-详细
Vue+Element UI 增删改查页面实现页面效果要完成该页面,我们需要先对这个页面进行分析,看页面由哪儿几部分组成,然后到官网进行拷贝并修改。
页面总共有如下组成部分还有一个是当我们点击新增按钮,会在页面正中间弹出一个对话框,如下0 准备工作0.1准备好数据库0.1.1建立数据库study及创建表CREATE TABLE `student` (`ID` int(11)NOT NULL,`name` varchar(20)NOT NULL,`birthday` date DEFAULT NULL,`score` float DEFAULT NULL,`major` varchar(50)DEFAULT NULL,`telphone` varchar(50)DEFAULT NULL,PRIMARY KEY(`ID`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;0.1.2准备数据库链接信息private String DBDRIVER = "com.mysql.jdbc.Driver";private String DBURL = " jdbc:mysql://localhost:3306/study"; //localhostprivate String DBUSER = "jsp";private String DBPASSWORD = "jsp123";0.2新建JavaWeb项目在netBeans中创建Java Web项目0.3导入必要的jar包gson-2.8.3.jarmysql-connector-java-5.1.7-bin.jar0.4导入axios、vue、elementaxios-0.18.0.js vue.js element-ui.rar将axios,vue的js文件复制到Java Web项目的web/js目录;将element-ui.rar解压后复制到web目录0.5copy之前的DAO模块Student.java DatabaseConnection.java StudentDao.java StudentDaoImpl.java0.6准备好基本页面<body><div id="app"></div><script src="../js/axios-0.18.0.js"></script><script src="../js/vue.js"></script><script src="../element-ui/lib/index.js"></script><link rel="stylesheet"href="../element-ui/lib/theme-chalk/index.css"/> <script>new Vue({el: "#app"});</script></body>1查询1.1 完成表格展示使用Element 整体的思路就是拷贝+ 修改。
增删改查操作或方法
增删改查操作或方法增加(Create)数据:1.使用INSERT语句插入新的记录到数据库表中。
2.调用API或库函数来创建一个新的对象,并将其保存到内存或数据库中。
3.使用图形界面或命令行工具,提供一个表单或交互式界面,以便用户输入新的数据。
删除(Delete)数据:1.使用DELETE语句从数据库表中删除特定的记录。
2.调用API或库函数来删除指定的对象。
3.提供一个删除功能的图形界面或命令行工具,以便用户选择并删除数据。
修改(Update)数据:1.使用UPDATE语句更新数据库表中的记录。
2.调用API或库函数更新指定的对象。
查询(Retrieve)数据:1.使用SELECT语句从数据库表中检索特定的记录。
2.调用API或库函数以检索指定的对象。
3.提供一个功能的图形界面或命令行工具,允许用户输入条件并返回相关的数据。
以下是一些常见的增删改查操作的代码示例(以关系型数据库为例):增加数据:```sqlINSERT INTO table_name (column1, column2, ...) VALUES(value1, value2, ...);```删除数据:```sqlDELETE FROM table_name WHERE condition;```修改数据:```sqlUPDATE table_name SET column1 = value1, column2 = value2, ... WHERE condition;```查询数据:```sqlSELECT column1, column2, ... FROM table_name WHERE condition;```以下是一些常见的增删改查操作的代码示例(以编程语言为例):增加数据:```pythondef create_data(data):#调用数据库或API创建新数据pass```删除数据:```pythondef delete_data(id):#调用数据库或API删除指定数据pass```修改数据:```pythondef update_data(id, data):#调用数据库或API更新指定数据pass```查询数据:```pythondef retrieve_data(condition):#调用数据库或API查询满足条件的数据pass```根据实际需求,增删改查操作可以有许多变种。
vue+php+mysql增删改查表格
vue+php+mysql增删改查表格以下是实现vue+php+mysql增删改查表格的一个简单示例:1. 创建一个MySQL数据库,其中包含一个名为“users”的表格,其中包含“id”(主键自增长),“name”,“age”和“email”字段。
2. 在PHP中编写一个API接口,用于执行以下操作:- 从数据库中获取所有用户列表- 添加新的用户到数据库- 更新现有用户信息- 从数据库中删除用户3. 创建一个Vue组件来处理用户列表的显示和编辑。
组件中包括以下功能:- 接收API返回的用户列表并将其显示在表格中- 允许用户添加新的用户- 允许用户编辑现有用户信息- 允许用户删除现有用户4. 在Vue组件中利用axios库来调用PHP API,进行增删改查操作。
示例代码:PHP API接口:```<?phpheader("Access-Control-Allow-Origin: *");header("Access-Control-Allow-Headers: *");header('Content-Type: application/json'); $servername = "localhost:3307";$username = "root";$password = "";$dbname = "test";// 创建连接$conn = new mysqli($servername, $username, $password, $dbname);// 检查连接是否成功if ($conn->connect_error) {die("Connection failed: " . $conn->connect_error);}$request_method = $_SERVER["REQUEST_METHOD"]; switch ($request_method) {case 'GET':getUsers();break;case 'POST':addUser();break;case 'PUT':updateUser();break;case 'DELETE':deleteUser();break;default:echo json_encode(array('status' => false, 'message' => 'Invalid Request Method'));break;}function getUsers() {global $conn;$query = "SELECT * FROM users";$result = $conn->query($query);if ($result->num_rows > 0) {$rows = array();while ($row = $result->fetch_assoc()) {array_push($rows, $row);}echo json_encode(array('status' => true, 'data' => $rows));} else {echo json_encode(array('status' => false, 'message' => 'Data not found'));}}function addUser() {global $conn;$data = json_decode(file_get_contents('php://input'), true); $name = $data["name"];$age = $data["age"];$email = $data["email"];$query = "INSERT INTO users (name, age, email) VALUES ('$name', '$age', '$email')";if ($conn->query($query) === TRUE) {echo json_encode(array('status' => true, 'message' => 'User added successfully'));} else {echo json_encode(array('status' => false, 'message' => 'User addition failed'));}}function updateUser() {global $conn;$data = json_decode(file_get_contents('php://input'), true); $id = $data["id"];$name = $data["name"];$age = $data["age"];$email = $data["email"];$query = "UPDATE users SET name='$name', age='$age', email='$email' WHERE id=$id";if ($conn->query($query) === TRUE) {echo json_encode(array('status' => true, 'message' => 'User updated successfully'));} else {echo json_encode(array('status' => false, 'message' => 'User update failed'));}}function deleteUser() {global $conn;$data = json_decode(file_get_contents('php://input'), true); $id = $data["id"];$query = "DELETE FROM users WHERE id=$id";if ($conn->query($query) === TRUE) {echo json_encode(array('status' => true, 'message' => 'User deleted successfully'));} else {echo json_encode(array('status' => false, 'message' => 'User deletion failed'));}}$conn->close();>```Vue组件:```<template><div><form v-if="editMode" @submit.prevent="updateUser"> <input type="text" placeholder="Name" v-model="" required><input type="number" placeholder="Age" v-model="userToUpdate.age" required><input type="email" placeholder="Email" v-model="userToUpdate.email" required><button type="submit">Update</button><button type="button"@click="cancelUpdate">Cancel</button></form><*************************="addUser"><input type="text" placeholder="Name" v-model="" required><input type="number" placeholder="Age" v-model="newUser.age" required><input type="email" placeholder="Email" v-model="newUser.email" required><button type="submit">Add</button></form><table><thead><tr><th>Name</th><th>Age</th><th>Email</th><th>Action</th></tr></thead><tbody><tr v-for="user in users" :key="user.id"> <td>{{ }}</td><td>{{ user.age }}</td><td>{{ user.email }}</td><td><button type="button"@click="editUser(user)">Edit</button><button type="button"@click="deleteUser(user.id)">Delete</button> </td></tr></tbody></table></div></template><script>import axios from 'axios';export default {data() {return {users: [],newUser: { name: '', age: '', email: '' },userToUpdate: {},editMode: false}},mounted() {this.getUsers();},methods: {getUsers() {axios.get('http://localhost/vuephpmysql/api.php').then(response => {if (response.data.status) {ers = response.data.data;}}).catch(error => {console.log(error);})},addUser() {axios.post('http://localhost/vuephpmysql/api.php', this.newUser) .then(response => {if (response.data.status) { = '';this.newUser.age = '';this.newUser.email = '';}}).catch(error => {console.log(error);})},editUser(user) {erToUpdate = { er };this.editMode = true;},cancelUpdate() {erToUpdate = {};this.editMode = false;},updateUser() {axios.put(`http://localhost/vuephpmysql/api.php?id=${erTo Update.id}`, erToUpdate).then(response => {if (response.data.status) {this.getUsers();erToUpdate = {};this.editMode = false;}}).catch(error => {})},deleteUser(id) {axios.delete(`http://localhost/vuephpmysql/api.php?id=${id}`) .then(response => {if (response.data.status) {this.getUsers();}}).catch(error => {console.log(error);})}}}</script>```。
VUE+Element实现增删改查的示例源码
VUE+Element实现增删改查的⽰例源码前⾔&最近因为⼀些原因,没有更博客,昨天⽼师布置了⼀个作业,⽤vue实现增删改查功能,想想这也不难,就做⼀下试试吧。
因为⾃⼰写的样式没有别⼈做的好,因此我想⽤现成的UI框架,⼀直也没⽤过Element,就⼲脆趁机学⼀下吧。
实验步骤⾸先引⼊⼀下element的css以及js<!-- 引⼊样式 --><link rel="stylesheet" href="https:///element-ui/lib/theme-chalk/index.css" rel="external nofollow" rel="external nofollow" ><!-- 引⼊组件库 --><script src="https:///element-ui/lib/index.js"></script>然后引⼊需要⽤到的vue相关的js⽂件<script src="https:///npm/vue/dist/vue.js"></script>下⾯说⼀下HTML结构<div id="app"><h1>职位的增删改查</h1><div class="head"><el-row :gutter="20"><el-col :span="6"><el-input v-model="" placeholder="请输⼊你的公司名"></el-input></el-col><el-col :span="6"><el-input v-model="userInfo.position" placeholder="请输⼊你的职位"></el-input></el-col><el-col :span="6"><el-input v-model="userInfo.major" placeholder="请输⼊你的专业"></el-input></el-col><el-col :span="6"><el-input v-model="userInfo.number" placeholder="请输⼊数量"></el-input></el-col></el-row><el-button type="primary" @click="addUser" class="add-btn" plain>添加信息</el-button></div><!-- 主体内容 --><div class="body"><template><el-table :data="tableData" style="width: 100%"><el-table-column label="序号" width="180"><template slot-scope="scope"> {{scope.$index + 1 }} </template></el-table-column><el-table-column prop="name" label="公司名" width="180"></el-table-column><el-table-column prop="position" label="职位"></el-table-column><el-table-column prop="major" label="专业"></el-table-column><el-table-column prop="number" label="数量"></el-table-column><el-table-column prop="birthday" label="操作"><template slot-scope="scope"><el-button type="primary" icon="el-icon-edit" @click="editUser(scope.row,scope.$index)" circle></el-button><el-button type="danger" icon="el-icon-delete" @click="delUser(scope.$index)" circle></el-button></template></el-table-column></el-table></template></div><!-- 编辑框 --><el-dialog title="编辑⽤户信息" :visible.sync="dialogVisible" width="30%" :before-close="handleClose"><div><el-form ref="form" :model="editObj" label-width="80px"><el-form-item label="公司名"><el-input v-model=""></el-input></el-form-item><el-form-item label="职位"><el-input v-model="editObj.position"></el-input></el-form-item><el-form-item label="专业"><el-input v-model="editObj.major"></el-input></el-form-item><el-form-item label="数量"><el-input v-model="editObj.number"></el-input></el-form-item></el-form></div><span slot="footer" class="dialog-footer"><el-button @click="dialogVisible = false">取消</el-button><el-button type="primary" @click="confirm">确定</el-button></span></el-dialog></div>这⼀段是element的表单以及编辑等样式,其中添加了⼀些click操作后⾯需要⽤到加上基础的样式<style>#app{width:1024px;margin: 0 auto;}.add-btn{margin-top: 20px;width: 100%;}.body{margin-top:20px;}</style>现在页⾯的基本样式就做好了,如下图所⽰:下⾯开始写vue代码,对各个功能进⾏处理操作了解过vuejs的应该知道这样的结构 data⾥⾯填写我们获取的数据⼀些规则,定义⼀些变量,在methods进⾏我们的操作。
php的增删改查方法与代码
下面简单的介绍php应用中的简单增删改。
1.对于数据的查询:我们使用的是一个股东编码查询为例子的介绍首先定义数据的类型例如:$er=$_POST['search'];echo $er;$host='localhost';$user_name='hxjyky';$password='a123456';$connn=mysql_connect($host,$user_name,$password);以上是数据库的名字和密码,下面进行判断if(!$connn){die('数据库连接失败:'.mysql_error());}echo '数据库连接成功';mysql_select_db('hxjyky');mysql_query("set names uft8");$sql="select * from gudong where name like '%$searchs%' ";//判断模糊查询的结果$result=mysql_query($sql) or die(mysql_error());echo "<table border=1>";echo "<tr><td>股东姓名</td><td>股东身份证编码</td><td>股东编码</td>"; while($row = mysql_fetch_array($result)) //循环输出{$id = $row[0];$name = $row[1];$password = $row[2];echo "<tr>";echo "<td>$id</td>";echo "<td>$name</td>"; //输出echo "<td>$password</td>";echo "</tr>";}echo "</table>";//判断$arr如果$arr 无数据就证明没查到数据?>2.数据的增加<?php$linkID=@mysql_connect("localhost","hxjyky","a123456");if(!$linkID){echo "没连接上";}$ss=@mysql_select_db("hxjyky");if(!$ss){echo "没找到数据库";}mysql_query("set names 'utf8'");$id = $_POST['id'];$name = $_POST['name'];$password = $_POST['password'];//定义数据库$query = "INSERT INTO gudong (id,name,password) values('$id','$name','$password')";//$query = "insert into member3 set// id='$id',name='$name',password='$password',email='$email'";把输入的值判断好增加进数据库$result = mysql_query($query);把结果赋值if($result) echo "<p>股东增加成功!</p>";//进行判断数据是否正确else echo "<p>股东重复请检查!</p>";mysql_close();include "insert.php" //返回并继续插入?>3.显示数输出的值<?$conn = mysql_connect("localhost","hxjyky","a123456"); //链接SQL SERVER$dbname = mysql_select_db("hxjyky") or die("数据库不存在或不可用".mysql_error()); //选择数据库$sql = "select * from gudong"; //如果存在就执行SQL查询语句mysql_query("set names 'utf8'");//以utf8编码形式显示$result = mysql_query($sql);echo "<table border=1>"; //把输出的数值放进表格echo "<tr><td>股东姓名</td><td>股东身份证编码</td><td>股东编码</td>";while($row = mysql_fetch_array($result)) //循环输出{$id = $row[0];$name = $row[1];$password = $row[2];echo "<tr>";echo "<td>$id</td>";echo "<td>$name</td>";echo "<td>$password</td>";echo "</tr>"; //一个个输出}echo "</table>";?> 本文转载于:。
四种简单的sql语句(增删改查语句)
delete from [table] where column = ?
三、修改语句
update [table] set column = ? where column = ?
四、查询语句
1) 查 询 单 条 记 录 的 所 有 字 段
select * from [table] where [column] = ?
2) 查 询 所 有 记 录 的 所 有 字 段
select * from [table] order by [column] asc
注意:
1.order by column asc代表:以column字段,升序排列。desc为降序
3) 查 询 给 定 偏 移 量 的 记 录 的 所 有 字 段
select * from [table] limit [offset], [limit]
注意:
1.offset指 定 从 哪 个 索 引 开 始 , 默 认 从 0开 始
2.limit指定查询几条记录
4) 查 询 指 定 记 录 的 指 定 字 段
select [column], [column] form [table] where [column] = ?
博客园 用户登录 代码改变世界 密码登录 短信登录 忘记登录用户名 忘记密码 记住我 登录 第三方登录/注册 没有账户, 立即注册
四种简单的 sql语句(增删改查语句)
四种简单的 sql语句(增删改查语able] ([column],[column],[column]) values(?,?,?)
react中tsx案例todolist增删改查
react中tsx案例todolist增删改查一、前言React是一种流行的JavaScript前端框架,TSX则是TypeScript 和JSX的结合,它提供了类型安全和更好的代码可读性。
本案例将介绍如何在React中使用TSX实现一个简单的TodoList,包括增删改查功能。
二、案例描述在这个案例中,我们将创建一个TodoList组件,它包含一个列表区域用于显示待办事项,一个添加待办事项的按钮,以及一个清空列表的按钮。
用户可以通过点击按钮来添加、删除、修改和查看待办事项。
三、实现步骤1.创建TodoList组件并引入相关依赖项首先,我们需要创建一个TodoList组件,并在组件中引入React、ReactDOM、TypeScript及相关样式。
2.定义待办事项数据在TodoList组件中,我们需要定义一个待办事项列表,用于存储待办事项数据。
可以使用JavaScript数组或对象来存储数据。
3.渲染待办事项列表在TodoList组件中,我们需要使用JSX语法渲染待办事项列表。
可以使用列表渲染函数或使用数组推导式来创建列表元素。
4.添加待办事项按钮在TodoList组件中,我们需要添加一个按钮用于添加待办事项。
可以使用onClick事件处理器来监听按钮点击事件,并使用待办事项数据更新待办事项列表。
5.删除待办事项按钮在TodoList组件中,我们需要添加一个按钮用于删除选中的待办事项。
可以使用onMouseDown事件处理器来监听按钮点击事件,并使用待办事项数据更新待办事项列表。
同时,我们需要根据条件判断是否需要删除选中的待办事项。
6.修改待办事项按钮在TodoList组件中,我们需要添加一个按钮用于修改选中的待办事项。
可以使用onMouseDown事件处理器来监听按钮点击事件,并使用待办事项数据更新待办事项列表。
同时,我们需要根据条件判断是否需要修改选中的待办事项的文本内容。
7.查看待办事项列表在TodoList组件中,我们需要添加一个链接或按钮用于查看待办事项列表。
vue中字符串做增删改查的方法
vue中字符串做增删改查的方法Vue是一款流行的JavaScript框架,它提供了一种简单而强大的方式来构建交互式Web应用程序。
在Vue中,我们可以使用字符串来进行增删改查操作。
本文将介绍如何使用Vue中的字符串来实现增删改查操作。
一、增加字符串在Vue中,我们可以使用v-model指令来绑定输入框中的值。
当用户输入新的字符串时,我们可以将其添加到一个数组中。
例如:```<template><div><input v-model="newString"><button @click="addString">Add</button><ul><li v-for="(string, index) in strings" :key="index">{{ string }}</li> </ul></div></template><script>export default {data() {return {strings: ['Hello', 'World'],newString: ''}},methods: {addString() {this.strings.push(this.newString)this.newString = ''}}}</script>```在上面的代码中,我们使用v-model指令将输入框中的值绑定到newString变量上。
当用户点击“Add”按钮时,我们将newString添加到strings数组中,并将newString重置为空字符串。
二、删除字符串在Vue中,我们可以使用v-for指令来遍历数组,并使用v-bind指令将数组中的每个元素绑定到一个li元素上。
SpringBoot+Vue-admin-template实现增删改查
SpringBoot+Vue-admin-template实现增删改查前⾔本⽂的案例是基于Vue-admin-template项⽬改造的简化版Vue后台管理模板案例主要是想帮助那些和我⼀样从后端⼊门并且想要快速上⼿Vue后台管理系统的开发本⽂在SpringBoot、Element UI、Vue框架之上实现的⼩案例,并⾮从零开始各位如果遇到难题,可以向百度和⾕歌虚⼼求教,我也是⼀路折腾过来才写下此⽂技术栈1. SpringBoot2.32. Vue-admin-template4.33. axios4. mysql5.75. mybatis案例演⽰案例实践1.下载项⽬,按照操作把项⽬跑起来# 去github克隆项⽬(我的版本是4.0版本vue-admin-template)git clone https:///PanJiaChen/vue-admin-template# 进⼊⽬录cd vue-admin-template# 安装依赖(前提需要⾃⾏安装配置好node.js)npm install --registry=https://# 运⾏npm run dev2.在侧边栏新增导航路由页⾯1. 新建⽂件。
在src/views/ 新建⼀个⽂件夹 student,在此⽬录下新建⽂件 index.vue2. 添加路由。
打开 src/router/index.js,此⽂件为该项⽬的后台路由配置⽂件。
在constantRoutes这个数组中,添加路由的格式如下:{path: '/student', // 页⾯访问的url⼀级路径component: Layout,// 这是全局统⼀的⼀个布局⽂件,暂时不需要修改children: [{path: 'index',// 页⾯访问的url⼆级路径name: 'Student',component: () => import('@/views/student/index'), // 导⼊刚才新建vue⽂件的路径meta: { title: '学⽣', icon: 'form' } // title 是侧边栏的名字,icon是图标}]},这⼀步我们完成路由配置,之后框架会⾃动地根据路由配置⽂件,⽣成边侧导航条⽬,剩下的⼯作就是写好那个index.vue组件的内容,这⾥包含两部分内容:简单编写组件和发送⽹络请求3.简单编写组件,后⾯再美化组件编程就是由简单慢慢到复杂,我们先在页⾯上完成⼀个简单的页⾯,只制作页⾯上输出123的页⾯组件<template><!-- div是作为根元素,必须要有这个元素 --><div>123</div></template><script>export default {data() {return {// 这⾥定义数据格式}mounted() {// 这⾥是vue钩⼦函数,不理解的话就是js的⼊⼝},methods: {// 这是定义⽅法的区域}}</script><style scoped>// 这是写CSS内容的区域</style>如果上述步骤都没错的话,你可以得到下⾯的页⾯效果4.⽹络请求基础配置4.1 跨域访问资源本⽂中开发的页⾯是运⾏部署在前端服务器上,端⼝是http://localhost:9528,后台的数据是在后端服务器上,端⼝是http://localhost:8080, 两者之间端⼝不⼀致,需要跨域名访问资源,⽤到的是代理模式,这⾥就涉及到跨域访问资源和同源策略这两个概念,本⽂不做深⼊讲解,暂且只需要知道在项⽬上线后,对于CORS跨域资源访问的问题,可以⽤类似的⽅案(Nginx反向代理)在前端解决。