简单的增删改查实现代码
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类型。