Java网页应用之实现对数据库的增、删、改、查。

article/2025/11/10 21:37:55

模拟信息管理系统
通过eclipse实现网页、数据库的连接,实现对数据库的增、删、改、查。

登陆页面:
这里写图片描述
登陆成功界面:
这里写图片描述
添加信息界面:
这里写代码片
修改信息界面:
这里写图片描述
删除信息界面:
这里写图片描述

package com.lq.pro_user.dao;import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;import com.lq.pro_user.domain.user;
import com.lq.pro_user.util.DBUlit;
//对数据库进行操作
public class userDAO {private ResultSet rs;private PreparedStatement pst;private Connection conn;public  List<user> querrAll(){ //在数据库中取值,并返回。List<user> ulist=new ArrayList<>(); //建立一个集合存放取出的值try {conn=DBUlit.opean();        //调用工具类中的opean()方法连接数据库。pst=conn.prepareStatement("select * from tuser");//声明需要对数据库进行的rs=pst.executeQuery();         //从数据库中取值。while(rs.next()) {            user u=new user();   //调用user里面的set方法给u赋值u.setAddress(rs.getString("address"));   u.setAge(rs.getInt("age"));u.setID(rs.getInt("iD"));u.setName(rs.getString("name"));ulist.add(u);          //将从数据库取到的值放入ulist中。}} catch (SQLException e) {e.printStackTrace();}finally {DBUlit.close(rs, pst, conn);      //调用工具类中的close()方法关闭资源。}return ulist;           //将从数据库中取到的值输出。}public boolean add(user u) {try {conn=DBUlit.opean();pst=conn.prepareStatement("insert into tuser values(?,?,?,?)");pst.setInt(1, u.getID());pst.setString(2, u.getName());pst.setInt(3,u.getAge());pst.setString(4, u.getAddress());pst.executeUpdate();return true;} catch (SQLException e) {e.printStackTrace();}finally {DBUlit.close(pst, conn);}return false;}public boolean del(int id) {try {conn=DBUlit.opean();pst=conn.prepareStatement("delete tuser where id="+id);pst.executeUpdate();return true;} catch (SQLException e) {e.printStackTrace();}finally {DBUlit.close(pst, conn);}return false;}  public user querryById(int id) {try {conn=DBUlit.opean();pst=conn.prepareStatement("select * from tuser where id="+id);rs=pst.executeQuery();while(rs.next()) {user u=new user();u.setAddress(rs.getString("address"));u.setAge(rs.getInt("age"));u.setID(rs.getInt("id"));u.setName(rs.getString("name"));return u;}} catch (SQLException e) {e.printStackTrace();}finally {DBUlit.close(rs, pst, conn);}return null; 	}public boolean update(user u) {try {conn=DBUlit.opean();pst=conn.prepareStatement("update tuser set name=?,age=?,address=? where id="+u.getID());pst.setString(1, u.getName());pst.setInt(2, u.getAge());pst.setString(3,u.getAddress());pst.executeUpdate();return true;} catch (SQLException e) {e.printStackTrace();}finally {DBUlit.close(pst, conn);}return false;  	}   
}
//user的get、set方法package com.lq.pro_user.domain;public class user {private String name;private String address;private int ID;private int age;
public String getName() {return name;
}
public void setName(String name) {this.name = name;
}
public String getAddress() {return address;
}
public void setAddress(String address) {this.address = address;
}
public int getID() {return ID;
}
public void setID(int iD) {ID = iD;
}
public int getAge() {return age;
}
public void setAge(int age) {this.age = age;
}}
package com.lq.pro_user.servlet;import java.io.IOException;
import java.io.PrintWriter;import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;public class UserLoginServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {this.doPost(req, resp);}@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding("utf-8");String name=req.getParameter("name");String pass=req.getParameter("pass");ServletConfig config=getServletConfig();String uname=config.getInitParameter("username");String upass=config.getInitParameter("userpass");resp.setContentType("text/html;charset=utf-8");PrintWriter out=resp.getWriter();if(uname.equals(name)&&upass.equals(pass)) {resp.sendRedirect(req.getContextPath()+"/list");}else {resp.sendRedirect(req.getContextPath()+"/login_err.html");}       
}
}
package com.lq.pro_user.servlet;import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.lq.pro_user.dao.userDAO;
import com.lq.pro_user.domain.user;public class UserAddServlet extends HttpServlet {private userDAO udao=new userDAO();@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {this.doPost(req, resp);
}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding("utf-8");user u=new user();String id=req.getParameter("id");String name=req.getParameter("name"); String age=req.getParameter("age"); String address=req.getParameter("address"); u.setAddress(address);u.setAge(Integer.parseInt(age));u.setID(Integer.parseInt(id));u.setName(name);boolean b=udao.add(u);resp.setContentType("text/html;charset=utf-8");PrintWriter out=resp.getWriter();if (b) {out.print("添加成功");}else {out.print("添加失败");}}}
package com.lq.pro_user.servlet;import java.io.IOException;
import java.io.PrintWriter;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.lq.pro_user.dao.userDAO;
import com.lq.pro_user.domain.user;public class UserEditServlet extends HttpServlet {private userDAO udao=new userDAO();@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {this.doPost(req, resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {resp.setContentType("text/html;charset=utf-8");PrintWriter out=resp.getWriter();user u=udao.querryById(Integer.parseInt(req.getParameter("id")));if (u==null) {out.print("查无此人");}out.print("<html>");out.print("<head>");out.print("</head>");out.print("<body>");out.print("<form action='update' method='post'>");out.print("ID:<input type='text' value='"+u.getID()+"'readonly name='id'/><br>");out.print("name:<input type='text' value='"+u.getName()+"'name='name'/><br>");out.print("age:<input type='text' value='"+u.getAge()+"'name='age'/><br>");out.print("address:<input type='text' value='"+u.getAddress()+"' name='address'/><br>");out.print("<input type='submit' value='修改'/><br>");out.print("</form>");out.print("</body>");out.print("</html>");}}
package com.lq.pro_user.servlet;import java.io.IOException;
import java.io.PrintWriter;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.lq.pro_user.dao.userDAO;
import com.lq.pro_user.domain.user;public class UserUpdateServlet extends HttpServlet {private userDAO udao=new userDAO();@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {this.doPost(req, resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {req.setCharacterEncoding("utf-8");String name= req.getParameter("name");String id= req.getParameter("id");String age= req.getParameter("age");String address= req.getParameter("address");user u=new user();u.setID(Integer.parseInt(id));u.setAddress(address);u.setName(name);u.setAge(Integer.parseInt(age));boolean b=udao.update(u);resp.setContentType("text/html;charset=utf-8");PrintWriter out=resp.getWriter();if (b) {req.getRequestDispatcher("/list").forward(req, resp);}out.print("修改失败");}
}
package com.lq.pro_user.servlet;import java.io.IOException;
import java.io.PrintWriter;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.lq.pro_user.dao.userDAO;
import com.lq.pro_user.domain.user;public class UserDelServlet extends HttpServlet {private userDAO udao=new userDAO();@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {this.doPost(req, resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {int id=Integer.parseInt(req.getParameter("id"));user u =udao.querryById(id);resp.setContentType("text/html;charset=utf-8");PrintWriter out=resp.getWriter();if (u==null) {out.println("查无此人,删除失败");}else {boolean b=udao.del(id);if(!b) {out.print("删除失败");}else {req.getRequestDispatcher("/list").forward(req, resp);;}}}}
package com.lq.pro_user.servlet;import java.io.IOException;
import java.io.PrintWriter;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import com.lq.pro_user.dao.userDAO;
import com.lq.pro_user.domain.user;public class UserDeleteServlet extends HttpServlet {private userDAO udao=new userDAO();@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {this.doPost(req, resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {int id=Integer.parseInt(req.getParameter("id"));user u=udao.querryById(id);resp.setContentType("text/html;charset=utf-8");PrintWriter out=resp.getWriter();if (u==null) {out.print("所删除的人信息不存在!!");return ;}out.print("<html>");out.print("<head>");out.print("</head>");out.print("<body>");out.print("<form action='del' method='post'>");out.print("ID:<input type='text' value='"+u.getID()+"'readonly name='id'/><br>");out.print("name:<input type='text' value='"+u.getName()+"'name='name'/><br>");out.print("age:<input type='text' value='"+u.getAge()+"'name='age'/><br>");out.print("address:<input type='text' value='"+u.getAddress()+"' name='address'/><br>");out.print("<input type='submit' value='删除'/><br>");out.print("</form>");out.print("</body>");out.print("</html>");}             
}
package com.lq.pro_user.servlet;import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;import javax.jws.soap.SOAPBinding.Use;
import javax.servlet.Servlet;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;import com.lq.pro_user.dao.userDAO;
import com.lq.pro_user.domain.user;public class UserListServlet implements Servlet {private userDAO dao=new userDAO();//创建userDAO的对象,用来调用userDAO中的方法,实现对user表的操作。@Overridepublic void service(ServletRequest req, ServletResponse resp) throws ServletException, IOException {List<user> ulist=dao.querrAll();//将调用userDAO的方法返回的值放入ulist中,方便面后面遍历在网页中显示。req.setAttribute("ulist",ulist);req.getRequestDispatcher("/listView").forward(req, resp);}@Overridepublic void destroy() {}@Overridepublic ServletConfig getServletConfig() {return null;}@Overridepublic String getServletInfo() {return null;}@Overridepublic void init(ServletConfig arg0) throws ServletException {}
}
package com.lq.pro_user.servlet;import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.tomcat.jni.User;import com.lq.pro_user.domain.user;public class UserListViewServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {this.doPost(req, resp);}@Overrideprotected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {resp.setContentType("text/html;charset=utf-8");//设定网页的编码格式。List<user> ulist=(List<user>) req.getAttribute("ulist");PrintWriter out=resp.getWriter();        //获得输出流out.print("<html>");                   //开始往网页上输出。out.print("<head>");out.print("</head>");out.print("<body>");out.print("<a href='add.html'>添加</a>");out.print("<table with='80%' border='1'>");out.print("<tr><td>ID</td><td>名字</td><td>年龄</td><td>地址</td><td>操作</td><td>操作</td></tr>");for(user u:ulist) {out.print("<tr><td>"+u.getID()+"</td><td>"+u.getName()+"</td><td>"+u.getAge()+"</td><td>"+u.getAddress()+"</td><td><a href=edit?id="+u.getID()+">修改</a></td><td><a href=delete?id="+u.getID()+">删除</a></td></tr>");}out.print("</table>");out.print("</body>");out.print("</html>");}
}
package com.lq.pro_user.util;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;import org.apache.tomcat.jni.User;public class DBUlit {static {try {Class.forName("oracle.jdbc.driver.OracleDriver");//加载驱动} catch (ClassNotFoundException e) {e.printStackTrace();}}public static Connection opean() throws SQLException {    //建立返回连接的打开函数。return DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","scott","9867");}public static void close(ResultSet rs,PreparedStatement pst,Connection conn) {//关闭资源if(rs!=null) {try {rs.close();} catch (SQLException e) {e.printStackTrace();}}if(pst!=null) {try {pst.close();} catch (SQLException e) {e.printStackTrace();}}if(conn!=null) {try {conn.close();} catch (SQLException e) {e.printStackTrace();}}}public static void close(PreparedStatement pst,Connection conn) {close(null, pst, conn);}
}

配置xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" id="WebApp_ID" version="3.1"><display-name></display-name><welcome-file-list><welcome-file>login.html</welcome-file></welcome-file-list><servlet><servlet-name>list</servlet-name><servlet-class>com.lq.pro_user.servlet.UserListServlet</servlet-class></servlet><servlet-mapping><servlet-name>list</servlet-name><url-pattern>/list</url-pattern></servlet-mapping><servlet><servlet-name>listview</servlet-name><servlet-class>com.lq.pro_user.servlet.UserListViewServlet</servlet-class></servlet><servlet-mapping><servlet-name>listview</servlet-name><url-pattern>/listView</url-pattern></servlet-mapping><servlet><servlet-name>login</servlet-name><servlet-class>com.lq.pro_user.servlet.UserLoginServlet</servlet-class><init-param><param-name>username</param-name><param-value>admin</param-value></init-param><init-param><param-name>userpass</param-name><param-value>123456</param-value></init-param></servlet><servlet-mapping><servlet-name>login</servlet-name><url-pattern>/login</url-pattern></servlet-mapping><servlet><servlet-name>add</servlet-name><servlet-class>com.lq.pro_user.servlet.UserAddServlet</servlet-class></servlet><servlet-mapping><servlet-name>add</servlet-name><url-pattern>/add</url-pattern></servlet-mapping><servlet><servlet-name>edit</servlet-name><servlet-class>com.lq.pro_user.servlet.UserEditServlet</servlet-class></servlet><servlet-mapping><servlet-name>edit</servlet-name><url-pattern>/edit</url-pattern></servlet-mapping><servlet><servlet-name>update</servlet-name><servlet-class>com.lq.pro_user.servlet.UserUpdateServlet</servlet-class></servlet><servlet-mapping><servlet-name>update</servlet-name><url-pattern>/update</url-pattern></servlet-mapping><servlet><servlet-name>del</servlet-name><servlet-class>com.lq.pro_user.servlet.UserDelServlet</servlet-class></servlet><servlet-mapping><servlet-name>del</servlet-name><url-pattern>/del</url-pattern></servlet-mapping><servlet><servlet-name>delete</servlet-name><servlet-class>com.lq.pro_user.servlet.UserDeleteServlet</servlet-class></servlet><servlet-mapping><servlet-name>delete</servlet-name><url-pattern>/delete</url-pattern></servlet-mapping>
</web-app>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body><form action="login" method="post">账号:<input type="text" name="name"><br>密码:<input type="password"  name="pass"><br><input type="submit" value="登陆"/></form>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body><h1>账号或密码错误请重新<a herf="login.html">登陆</a></h1>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
</head>
<body><form action="add" method="post">ID<input type="text" name="id"/><br>Name<input type="text" name="name"/><br>Age<input type="text" name="age"/><br>Address<input type="text" name="address"/><br><input type="submit" value="添加"/><input type="button" value="返回" onclick="history.back();"/></form>
</body>
</html>

http://chatgpt.dhexx.cn/article/qpg22VxJ.shtml

相关文章

(网页设计+数据库增删查改)——课设展示

注&#xff1a;关于网页所有的代码&#xff0c;我已经打包好了&#xff0c;获取方式如下 关注微信公众号大数据智库&#xff08;直接扫二维码&#xff0c;在我的主页的左下角&#xff09;&#xff0c;回复网页代码即可获取 课设展示 一、网页部分成果展示1、动态显示日期2、动态…

网页实现数据库的增删改查

最近在做项目web后台数据增删查改的时候&#xff0c;看到一篇较为详细的经典文章&#xff0c; 所以转载了下来&#xff0c; 文章出处在&#xff1a;https://blog.csdn.net/qq_32539825/article/details/70657340 如果作者认为侵权的告诉我&#xff0c;我立马删。 首先jsp 和…

通过JSP网页连接Mysql数据库

本文介绍通过JSP网页连接到MySQL,从MySQL数据库中读出一张表&#xff0c;并显示在JSP网页中。 1. 在MySQL数据库中建立数据表 用图形化管理工具Navicat Premium 连接MySQL数据库&#xff0c;在数据库“ming”下建立一张名为“teacher”的数据表。 2. 设置Tomcat 1)将JDBC…

网页连接mysql教程_网页怎么连接到数据库?

网页连接到数据库的方法&#xff1a;首先创建一个网页连接数据库的PHP代码文件&#xff1b;然后解决浏览器编码问题并指定数据库字符集&#xff1b;最后通过“mysql_select_db”函数选择并连接数据库即可。 HTML是无法读取数据库的&#xff0c;HTML是页面前端脚本语言&#xff…

网页JS自动化脚本(八)使用网页专属数据库indexedDB进行数据收集

我们在网页上进行的活动,往往都需要进行收集一些简单的数据,但是因为浏览器的安全原因,浏览器基本上是无法与本地的操作系统直接产生数据交互的,这本来就是一个由于安全问题生产的无解问题,在浏览器里面是内置了几种数据库的,其中一种就是indexedDB,可以用来储存一些非常小的数…

网页连接数据库,一个简单的登入界面以及实现登入功能

基于V#的ASP.NET.MVC 4 web 网站程序开发 接着上篇继续&#xff0c;上篇地址为https://blog.csdn.net/weixin_42534390/article/details/86576537 我们首先要有一个认知&#xff0c;就是ASP.NET.MVC 4 web 网站程序开发的三层架构概念&#xff0c;分别为BLL,DAL,MOD 这三层的概…

JavaWeb 网页链接数据库增删改查

今天是web的第五节课&#xff0c;上一节课只涉及到了查询和增加&#xff0c;这一节课我们学习网页链接数据库进行增删改查&#xff0c;今天的内容更多的也是代码&#xff0c;理论内容较少&#xff0c;现在小编带大家进入新的一课。 目录 一.查 二.增 三.删 四.修 五.数据库…

jsp登录注册代码(增删改查+网页+数据库)

目录 一登录注册代码以及效果 doregister.jsp:注册信息弹框 login.jsp:登录 dologin.jsp&#xff1a;与数据库相连、存放登陆的用户 index.jsp:主界面 update.jsp:修改 doup.jsp:修改页面&#xff08;帮助&#xff09; info.jsp&#xff1a;详情 dodel.jsp:删除界面 …

采集网页数据保存到MYSQL数据库

一、直接采集一个本地网页文件 1.创建一个网页文件date413.html(注&#xff1a;文件的路径后面还会用到) 2.网页文件date413.html中的内容为&#xff1a; <html> <head><title>搜索指数</title> </head> <body><table><tr>&…

用简单,易懂的方法将数据库和网页连接起来(例:登陆注册页面)

PHP技术&#xff0c;远比用java写代码连接数据库简单得多&#xff0c;下面看我的详细介绍&#xff1a; 1.首先要下载&#xff1a;phpstudy_pro&#xff08;关注我可以免费下载哦&#xff01;&#xff09; 2.然后打开phpstudy_pro&#xff0c;启动Apache服务器&#xff08;每次…

网页展示数据库内容

目的&#xff1a;写一个JSP访问Access数据库的user表&#xff0c;将所有的记录显示出来&#xff1b;ODBC数据源名为test&#xff0c;驱动类名为&#xff1a;“driverClassNamecom.mysql.jdbc.Driverr”&#xff0c;连接数据库的url为&#xff1a;”urljdbc:mysql://localhost:3…

[VS]网页连接数据库

工具&#xff1a; 1、Visual Studio(我使用的是vs2019) 2、SQL server(我使用的是sql2008) 3、网页运行框架&#xff1a;.Net2.0 目录 一、网站以windows身份验证连接数据库 二、网站以sql server身份验证连接数据库 三、使用工具Visual Studio中自带的连接数据库功能 一…

网页开发(十四)—数据库管理

书接上回&#xff1a; 7、MySQL指令 MySQL普通认知数据库文件夹数据表文件&#xff08;Excel文件&#xff09; 7.1 数据库管理&#xff08;文件夹&#xff09; &#xff08;1&#xff09;查看已有的数据库&#xff08;文件夹&#xff09;&#xff1a;show databases; &…

每周一品 · 音圈电机(VCM)中的磁性材料

音圈电机 (Voice coil motor, VCM) 是一种特殊形式的直驱电机&#xff0c;能将电能直接转化为直线运动机械能&#xff0c;其原理是在均匀气隙磁场中放入一个圆筒绕组&#xff0c;绕组通电产生磁场&#xff0c;带动负载设备做直线往复运动&#xff0c;改变电流的强弱和流向&…

VCM音圈马达的一些特点

VCM(Voice Coil Motor)&#xff1a;中文名称为音圈马达&#xff0c;亦称音圈电机&#xff0c;原理是在一个固定的磁场内&#xff0c;通过改变VCM线圈电流的大小&#xff0c;来控制VCM马达移动的位置&#xff0c;从而改变镜片之间的距离来达到对焦的功能。基本上在所有手机上均有…

vcm驱动芯片原理_每周一品 · 音圈电机(VCM)中的磁性材料

音圈电机 (Voice coil motor, VCM) 是一种特殊形式的直驱电机&#xff0c;能将电能直接转化为直线运动机械能&#xff0c;其原理是在均匀气隙磁场中放入一个圆筒绕组&#xff0c;绕组通电产生磁场&#xff0c;带动负载设备做直线往复运动&#xff0c;改变电流的强弱和流向&…

Camera基础知识

物理结构 一、手机Camerade的物理结构 FPC&#xff08;flexible printed circuit&#xff09;可挠性印刷电路板Sensor图像传感器IR红外i滤波片holder基座lens镜头 通常&#xff0c;一个摄像头硬件上包括5个部分&#xff1a;外壳&#xff08;马达&#xff09;、镜头&#xff…

MPEG VCM

传统是视频编码是针对人眼视觉进行优化的&#xff0c;目的是在保持人的主观失真不增加的情况下降低码率。而现在越来越多的视频需要进行机器分析&#xff0c;而人只需要看机器分析的结果。因此MPEG成立VCM&#xff08;Video Coding for Machines&#xff09;工作组探索新的标准…

VCM基本原理和主要性能指标

VCM(Voice Coil Motor)音圈马达是一种将电能转化为机械能的装置,实现直线型及有限摆角的运动,实现运动的力来源于通电线圈在磁场中受到的作用力。VCM 的精确控制需要通过外部的驱动IC 来实现。按功能分为开环VCM,中置VCM,闭环VCM,光学防抖VCM。 VCM(Voice Coil Motor)音…

camera基础知识(1)

目录 camera module 镜头lens 光圈快门 音圈马达VCM 滤光片 image sensor: 摄像头工作原理大致如下 camera作为android系统中庞大的一个模块之一&#xff0c;camera框架包含的知识十分多&#xff0c;作为一名camera工程师&#xff0c;我们不仅要熟悉代码&#xff0c;也要…