- 浏览: 206494 次
- 性别:
- 来自: 南京
文章分类
最新评论
-
white1114579650:
[flash=200,200][url][img][list] ...
Tomcat部署web项目 -
xue_x_d:
...
MySQL创建索引,查看以及删除 -
Vincent-Yang:
doUpdate不会用,接受的是List<T>那就 ...
java操作数据库的通用的类 -
royzs:
浅显明了,辛苦
MySQL与Oracle的区别 -
张伟818:
...
c3p0和dbcp的区别
声明:本人完全copy来的
一、MySQL BLOB 类型介绍
MySQL中,BLOB是一个二进制大型对象,是一个可以存储大量数据的容器,它能容纳不同大小的数据。BLOB类型实际是个类型系列(TinyBlob、Blob、MediumBlob、LongBlob),除了在存储的最大信息量上不同外,他们是等同的。
MySQL的四种BLOB类型
类型 大小(单位:字节)
TinyBlob 最大 255B
Blob 最大 65K
MediumBlob 最大 16M
LongBlob 最大 4G
实际使用中根据需要存入的数据大小定义不同的BLOB类型。
需要注意的是:如果你存储的文件过大,数据库的性能会下降很多。
二、mysql中的blob存取
create table Dish {
int id;
blob photo;
};
下面是从数据库里写的方法:
String filepath = (String)session.getAttribute("file");//这里获得的是用jspsmartupload上传的文件的路径
File file = new File(filepath);
FileInputStream fin = new FileInputStream(file);
dataBS = new blobConn();
con = dataBS.getConn();
String erpsql = "insert into Dish values(?,?)";
PreparedStatement stmt = con.prepareStatement(erpsql);
stmt.setString(2,String.valueOf(id));
stmt.setBinaryStream(3,fin,(int)file.length());//想数据库里插入是很简单的,就一行,但这种方法只有mysql可以用
stmt.executeUpdate();
fin.close();
stmt.close();
con.close();
下面是从数据库里读的方法:
1.BufferedInputStream inputimg = null;
try {
Connection con = sqlDS.getConnection();//简写,获得数据库连接
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select from Dish where id = 11");
if(rs.next()){
java.sql.Blob blob = (java.sql.Blob)rs.getBlob("photo");
input = new BufferedInputStream(blob.getBinaryStream);
}
BufferedImage image = null;
image = javax.imageio.ImageIo.read(input);
ServlerOutputStream sos = response.getOutputStream();
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(sos);
encoder.encode(image);
input.close();
}catch(Exception e) {
e.printStackTrace();
}
2.
if(rs.next()){
res.setContentType ("image/jpeg;charset=GB2312");//HttpServletResponse res
ServletOutputStream out = res.getOutputStream ();
BufferedInputStream jpgData = new BufferedInputStream (rs.getBinaryStream ("photo"));
byte [] buf = new byte [4*1024];
int len;
if(jpgData.available () <= 0x0)//判断数据库里存放图片的字段是否有值,可以进行其他处理
res.sendRedirect ("/images/nophoto.gif");
while((len = jpgData.read (buf, 0, buf.length)) != -1)
out.write (buf, 0, len);
}
3.
if(rs.next()){
res.setContentType("image/jpeg");
ServletOutputStream out=res.getOutputStream();
InputStream in=rs.getBinaryStream("photo");
byte buff[]=new byte[1024];
int i;
while((i=in.read(buff))!=-1){
out.write(buff);
}
in.close();
out.close();
}
三、charset设置对blog操作的影响
存储txt文件的时候没有问题;存储图片也没问题,但是再把图片图片从数据库中取出来,不能正常显示了;存储word格式的文件报错,如下:
Caused by: java.sql.BatchUpdateException: Syntax error or access violation message from server: "You have an error in your SQL syntax near ''D0CF11E0A1B11AE1000000000000000000000000000000003E000300FEFF0900060000000000000' at line 1"
at com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:1540)
查了一下可能是charset编码的问题,于是将原来的连接字符串设置为:
Java代码
1.url=url++"?useUnicode=true&characterEncoding=utf-8";
问题解决了,不仅能支持各种格式的文件,图片也显示正常了。如果设置为其他的字符集就会出现前面的错误。
四、max_allowed_packet参数设置
往数据库中存储较大的文件是出现如下错误:
Java代码
1.java.lang.IllegalArgumentException: Packet is larger than max_allowed_packet from server configuration of 1048576 bytes
这是因为存入的文件大于mysql默认的 max_allowed_packet值。
解决办法:在mysql安装目录下的my.ini文件中的最后一行添加
Java代码
1.max_allowed_packet = 10M(也可以设置自己需要的大小)。
五、效率问题
利用数据库存储大量文件时,查询效率就会变得很低。
在表的设计上,我们可以选择吧文件的相关信息存在一个表中fileInfo,而吧文件内容存在另一个表中 fileContent,fileContent中有一个指向fileInfo的外键。这样,查询的时候只需要访问fileInfo,只有当要访问某个文 件具体内容的时候才访问fileContent表。分表存储,能够显著提高查询速度。
-----------------------------
向MySQL数据库插入Blob数据的问题
[摘要]:在使用Hibernate向数据库插入Blob二进制数据时,发生如下错误:SQL Error: 1064, SQLState: 42000 。You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '??^5b??08""199G?"0Px8=?ü??Y??ó??l%P?[
¨???ó`-??F????:???S?a?@??Zu??' at line 1
[关键字]:MySQL、Blob、图片、image、java、Hibernate、Clob、&
[环境]:5.1.34-community MySQL Community Server (GPL),Hibernate 3.2.5
[作者]:Winty (wintys@gmail.com) http://www.blogjava.net/wintys
[错误]:
使用Hibernate向数据库插入Blob二进制数据,程序如下:
public void insert() {
User user = new User();
Transaction tc = null;
try{
Session session = HibernateUtil.getSession();
tc = session.beginTransaction();
user.setName("The Name");
FileInputStream fin = new FileInputStream("rc/redheart.gif");
Blob image = Hibernate.createBlob(fin);
user.setImage(image);
File file = new File("rc/news.txt");
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
Clob info = Hibernate.createClob(br , (int)file.length());
user.setInfo(info);
session.save(user);
tc.commit();
}catch(Exception e){
if(tc != null){
tc.rollback();
}
System.err.println(e.getMessage());
}finally{
HibernateUtil.closeSession();
}
}
发生如下错误:
Hibernate: insert into db.myblobclob (name, image, info, id) values (?, ?, ?, ?)
00:33:45,671 WARN JDBCExceptionReporter:77 - SQL Error: 1064, SQLState: 42000
00:33:45,671 ERROR JDBCExceptionReporter:78 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '??^5b??08""199G?"0Px8=?ü??Y??ó??l%P?[
¨???ó`-??F????:???S?a?@??Zu??' at line 1
00:33:45,687 ERROR AbstractFlushingEventListener:301 - Could not synchronize database state with session
org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:253)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:237)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:141)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at wintys.hibernate.blobclob.UserDAOBean.insert(UserDAOBean.java:41)
at wintys.hibernate.blobclob.UserTest.main(UserTest.java:18)
Caused by: java.sql.BatchUpdateException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '??^5b??08""199G?"0Px8=?ü??Y??ó??l%P?[
¨???ó`-??F????:???S?a?@??Zu??' at line 1
at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:1693)
at com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:1108)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:48)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:246)
... 9 more
Could not execute JDBC batch update
Hibernate: select user0_.id as id0_, user0_.name as name0_, user0_.image as image0_, user0_.info as info0_ from db.myblobclob user0_
[原因]:
搜索了一下,错误原因可能为:"在定义字段时,不要和MYSQL的保留字段有相同的"。
检查了一下表中的字段名,没有发现问题:
CREATE TABLE myblobclob(
id VARCHAR(100) NOT NULL,
name VARCHAR(100),
image BLOB,
info TEXT,
PRIMARY KEY(id)
);
如果把Blob相关的程序注释了,Clob数据能够正常写入。原因当然出在Blob数据的写入程序中。后来发现,把Blob写入的图片数据换成文本,却可以正常写入。可见,是二进制数据的编码问题。
[解决]:
将原来的数据连接:
<property name="connection.url">
jdbc:mysql://localhost:3306/db
</property>
修改成:
<property name="connection.url">
<![CDATA[jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=utf-8]]>
</property>
注意,在将连接字符串放到CDATA中,因为&是XML中的转义字符。不然会提示错误:
Error parsing XML: /hibernate.cfg.xml(12) The reference to entity "characterEncoding" must end with the ';' delimiter.
也可以直接把&修改为&
即:
jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=utf-8
一、MySQL BLOB 类型介绍
MySQL中,BLOB是一个二进制大型对象,是一个可以存储大量数据的容器,它能容纳不同大小的数据。BLOB类型实际是个类型系列(TinyBlob、Blob、MediumBlob、LongBlob),除了在存储的最大信息量上不同外,他们是等同的。
MySQL的四种BLOB类型
类型 大小(单位:字节)
TinyBlob 最大 255B
Blob 最大 65K
MediumBlob 最大 16M
LongBlob 最大 4G
实际使用中根据需要存入的数据大小定义不同的BLOB类型。
需要注意的是:如果你存储的文件过大,数据库的性能会下降很多。
二、mysql中的blob存取
create table Dish {
int id;
blob photo;
};
下面是从数据库里写的方法:
String filepath = (String)session.getAttribute("file");//这里获得的是用jspsmartupload上传的文件的路径
File file = new File(filepath);
FileInputStream fin = new FileInputStream(file);
dataBS = new blobConn();
con = dataBS.getConn();
String erpsql = "insert into Dish values(?,?)";
PreparedStatement stmt = con.prepareStatement(erpsql);
stmt.setString(2,String.valueOf(id));
stmt.setBinaryStream(3,fin,(int)file.length());//想数据库里插入是很简单的,就一行,但这种方法只有mysql可以用
stmt.executeUpdate();
fin.close();
stmt.close();
con.close();
下面是从数据库里读的方法:
1.BufferedInputStream inputimg = null;
try {
Connection con = sqlDS.getConnection();//简写,获得数据库连接
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select from Dish where id = 11");
if(rs.next()){
java.sql.Blob blob = (java.sql.Blob)rs.getBlob("photo");
input = new BufferedInputStream(blob.getBinaryStream);
}
BufferedImage image = null;
image = javax.imageio.ImageIo.read(input);
ServlerOutputStream sos = response.getOutputStream();
JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(sos);
encoder.encode(image);
input.close();
}catch(Exception e) {
e.printStackTrace();
}
2.
if(rs.next()){
res.setContentType ("image/jpeg;charset=GB2312");//HttpServletResponse res
ServletOutputStream out = res.getOutputStream ();
BufferedInputStream jpgData = new BufferedInputStream (rs.getBinaryStream ("photo"));
byte [] buf = new byte [4*1024];
int len;
if(jpgData.available () <= 0x0)//判断数据库里存放图片的字段是否有值,可以进行其他处理
res.sendRedirect ("/images/nophoto.gif");
while((len = jpgData.read (buf, 0, buf.length)) != -1)
out.write (buf, 0, len);
}
3.
if(rs.next()){
res.setContentType("image/jpeg");
ServletOutputStream out=res.getOutputStream();
InputStream in=rs.getBinaryStream("photo");
byte buff[]=new byte[1024];
int i;
while((i=in.read(buff))!=-1){
out.write(buff);
}
in.close();
out.close();
}
三、charset设置对blog操作的影响
存储txt文件的时候没有问题;存储图片也没问题,但是再把图片图片从数据库中取出来,不能正常显示了;存储word格式的文件报错,如下:
Caused by: java.sql.BatchUpdateException: Syntax error or access violation message from server: "You have an error in your SQL syntax near ''D0CF11E0A1B11AE1000000000000000000000000000000003E000300FEFF0900060000000000000' at line 1"
at com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:1540)
查了一下可能是charset编码的问题,于是将原来的连接字符串设置为:
Java代码
1.url=url++"?useUnicode=true&characterEncoding=utf-8";
问题解决了,不仅能支持各种格式的文件,图片也显示正常了。如果设置为其他的字符集就会出现前面的错误。
四、max_allowed_packet参数设置
往数据库中存储较大的文件是出现如下错误:
Java代码
1.java.lang.IllegalArgumentException: Packet is larger than max_allowed_packet from server configuration of 1048576 bytes
这是因为存入的文件大于mysql默认的 max_allowed_packet值。
解决办法:在mysql安装目录下的my.ini文件中的最后一行添加
Java代码
1.max_allowed_packet = 10M(也可以设置自己需要的大小)。
五、效率问题
利用数据库存储大量文件时,查询效率就会变得很低。
在表的设计上,我们可以选择吧文件的相关信息存在一个表中fileInfo,而吧文件内容存在另一个表中 fileContent,fileContent中有一个指向fileInfo的外键。这样,查询的时候只需要访问fileInfo,只有当要访问某个文 件具体内容的时候才访问fileContent表。分表存储,能够显著提高查询速度。
-----------------------------
向MySQL数据库插入Blob数据的问题
[摘要]:在使用Hibernate向数据库插入Blob二进制数据时,发生如下错误:SQL Error: 1064, SQLState: 42000 。You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '??^5b??08""199G?"0Px8=?ü??Y??ó??l%P?[
¨???ó`-??F????:???S?a?@??Zu??' at line 1
[关键字]:MySQL、Blob、图片、image、java、Hibernate、Clob、&
[环境]:5.1.34-community MySQL Community Server (GPL),Hibernate 3.2.5
[作者]:Winty (wintys@gmail.com) http://www.blogjava.net/wintys
[错误]:
使用Hibernate向数据库插入Blob二进制数据,程序如下:
public void insert() {
User user = new User();
Transaction tc = null;
try{
Session session = HibernateUtil.getSession();
tc = session.beginTransaction();
user.setName("The Name");
FileInputStream fin = new FileInputStream("rc/redheart.gif");
Blob image = Hibernate.createBlob(fin);
user.setImage(image);
File file = new File("rc/news.txt");
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
Clob info = Hibernate.createClob(br , (int)file.length());
user.setInfo(info);
session.save(user);
tc.commit();
}catch(Exception e){
if(tc != null){
tc.rollback();
}
System.err.println(e.getMessage());
}finally{
HibernateUtil.closeSession();
}
}
发生如下错误:
Hibernate: insert into db.myblobclob (name, image, info, id) values (?, ?, ?, ?)
00:33:45,671 WARN JDBCExceptionReporter:77 - SQL Error: 1064, SQLState: 42000
00:33:45,671 ERROR JDBCExceptionReporter:78 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '??^5b??08""199G?"0Px8=?ü??Y??ó??l%P?[
¨???ó`-??F????:???S?a?@??Zu??' at line 1
00:33:45,687 ERROR AbstractFlushingEventListener:301 - Could not synchronize database state with session
org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:253)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:237)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:141)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at wintys.hibernate.blobclob.UserDAOBean.insert(UserDAOBean.java:41)
at wintys.hibernate.blobclob.UserTest.main(UserTest.java:18)
Caused by: java.sql.BatchUpdateException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '??^5b??08""199G?"0Px8=?ü??Y??ó??l%P?[
¨???ó`-??F????:???S?a?@??Zu??' at line 1
at com.mysql.jdbc.PreparedStatement.executeBatchSerially(PreparedStatement.java:1693)
at com.mysql.jdbc.PreparedStatement.executeBatch(PreparedStatement.java:1108)
at org.hibernate.jdbc.BatchingBatcher.doExecuteBatch(BatchingBatcher.java:48)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:246)
... 9 more
Could not execute JDBC batch update
Hibernate: select user0_.id as id0_, user0_.name as name0_, user0_.image as image0_, user0_.info as info0_ from db.myblobclob user0_
[原因]:
搜索了一下,错误原因可能为:"在定义字段时,不要和MYSQL的保留字段有相同的"。
检查了一下表中的字段名,没有发现问题:
CREATE TABLE myblobclob(
id VARCHAR(100) NOT NULL,
name VARCHAR(100),
image BLOB,
info TEXT,
PRIMARY KEY(id)
);
如果把Blob相关的程序注释了,Clob数据能够正常写入。原因当然出在Blob数据的写入程序中。后来发现,把Blob写入的图片数据换成文本,却可以正常写入。可见,是二进制数据的编码问题。
[解决]:
将原来的数据连接:
<property name="connection.url">
jdbc:mysql://localhost:3306/db
</property>
修改成:
<property name="connection.url">
<![CDATA[jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=utf-8]]>
</property>
注意,在将连接字符串放到CDATA中,因为&是XML中的转义字符。不然会提示错误:
Error parsing XML: /hibernate.cfg.xml(12) The reference to entity "characterEncoding" must end with the ';' delimiter.
也可以直接把&修改为&
即:
jdbc:mysql://localhost:3306/db?useUnicode=true&characterEncoding=utf-8
发表评论
-
数据库连接的相关问题
2012-08-30 09:23 01。url if (null == ip || null = ... -
数据库的连接池
2012-08-14 15:09 0数据库的连接池的相关的知识! -
JDBC连接各种数据库
2012-03-11 18:38 850引用1、Oracle8/8i/9i数据库(thin模式) ... -
内存数据库的定义
2012-03-10 15:57 1143内存数据库,顾名思 ... -
Oracle的学习视频
2012-03-10 13:53 958http://school.itzcn.com/special ... -
sql的索引优化
2012-03-10 08:53 968引用问题描述: 我们要 ... -
char,varchar以及varchar2的区别
2012-03-10 08:54 1098详细请见附件 -
MySQL创建索引,查看以及删除
2012-03-09 09:15 91511.索引作用 在索引列上,除了上面提到的有序查找之外, ... -
子查询转化为连接查询的例子
2012-03-09 09:15 7218引用 我们进行数据查询的时候极少有可能就在一张表里就能得到 ... -
Oracle完整的试题
2012-03-07 09:14 2096create table student( sno varc ... -
MySQL与Oracle的区别
2012-03-08 09:26 1650引用1. Oracle是大型数据库而Mysql是中小型数据库 ... -
JDBC ResultSet数据集参数详解
2012-03-06 09:30 2377引用.(转载) 调用ResultSet中的last()方法时 ... -
Oracle的常用的命令
2012-03-06 09:31 602--导出数据库 exp test2/ ... -
数据库的索引浅谈
2012-03-06 09:31 819引用 数据库表的信息是存在在文件中的,每个文件中有很多记录,你 ... -
Tomcat设置JNDI
2012-03-06 09:31 8991、拷贝数据库驱动到tomcat的lib目录 2、打开con ... -
左连接,右连接以及全连接
2012-03-08 09:25 813详细参考:http://lichunhui.iteye.com ... -
死锁产生的原因以及解决的方法
2012-03-05 14:37 1365原因分析: 首先死锁是怎么发生的: 简单说, ... -
几条记下来的sql
2012-03-05 14:08 815本人认为很实用的几条语句 1)select ... from ... -
c3p0和dbcp的区别
2012-03-05 13:34 6773c3p0简介: C3P0是一个开源的JDBC连接池,它 ... -
sql的优化30条
2012-03-03 18:18 10361. 对查询进行优化,应尽量避免全表扫描,首先应考虑在 wh ...
相关推荐
那些年,与你同分同位次的同学都去了哪里?全国各大学在辽宁2020-2024年各专业最低录取分数及录取位次数据,高考志愿必备参考数据
下单系统的Spnigboot和微信小程序实现(全栈微信小程式下单)
该项目是一款基于Java的智能文件管家设计源码,涵盖102个文件,包括29个Java源文件、27个类文件、19个XML配置文件、10个YAML文件、8个列表文件、4个属性文件、4个JAR包文件以及1个Git忽略文件。该系统旨在提供高效便捷的文件管理解决方案。
基于YoloV8的简单目标检测和跟踪,使用KMNET进行鼠标移动(处理多目标移动抖动,处理鼠标平滑移动)
本项目是一款基于Vue和JavaScript开发的心旅途个性化推荐旅游平台设计源码,整合了513个Java文件、76个PNG图片、70个XML配置文件、62个JavaScript文件、42个Vue组件文件、28个CSS样式文件、22个HTML文件、18个YAML配置文件、16个属性文件、11个Vue模板文件,总计919个文件。平台采用现代化前端技术堆栈,旨在为用户提供个性化的旅游推荐服务。
AutoLine是一个基于Python的通用自动化测试开源平台,包含了657个文件,涵盖228个PNG图片、209个CSS样式、95个JavaScript脚本、39个Python源代码、21个HTML文件、19个XML文件、14个GIF图片、6个DS_Store文件、5个文本文件、4个Markdown文件。该平台的设计源码由多种编程语言编写,旨在提供灵活高效的自动化测试解决方案。
微信小程序图像裁剪工具_ e-cropper
【作品名称】:基于MATLAB的答题卡识别系统。带一个GUI可视化界面,通过输入答题卡旋转校正,边缘检测,霍夫曼变换检测答题卡填涂区域 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】: 传统的阅卷方式为流水线的手工作业方式。这样的方式存在很多的问题,因为很容易受到阅卷者的主观因素的影响,从而产生一定的偏差。所以很多人就讨论如何将人为的因素降低到最低,来确保考生的考试成绩的公平公正和准确。 基于MATLAB的答题卡识别系统。带一个GUI可视化界面,通过输入答题卡旋转校正,边缘检测,霍夫曼变换检测答题卡填涂区域,分割,识别属于ABCD等,通过和实现设置好的标准答案excel对比,从而得出最终分数 【资源声明】:本资源作为“参考资料”而不是“定制需求”,代码只能作为参考,不能完全复制照搬。需要有一定的基础能够看懂代码,能够自行调试代码并解决报错,能够自行添加功能修改代码。
那些年,与你同分同位次的同学都去了哪里?全国各大学在辽宁2020-2024年各专业最低录取分数及录取位次数据,高考志愿必备参考数据
本项目深入解析并实现了基于Java核心技术的Nacos配置中心,包含2707个文件,涵盖2180个Java源文件、177个JavaScript文件、52个XML文件、35个SCSS文件、22个PEM文件、20个属性文件、18个Markdown文件、16个Protocol Buffers文件、12个JSON文件、11个字体文件。项目涉及多种语言和技术,旨在提供一个全面的配置中心解决方案。
枝晶生长Comsol仿真模型。 锂枝晶生长过程的 枝晶生长Comsol仿真模型。 锂枝晶生长过程的枝晶形貌,温度场耦合,应力场,浓度场,电势场。 C++程序,基于元胞自动机法模拟枝晶生长,能实现任意角度(偏心正方算法),同时采用LBM考虑了对流作用对枝晶生长的影响
本项目为apple_pro客户关系管理系统的组件化开发源码,采用Python、CSS、HTML和JavaScript等多种语言编写,总计包含1078个文件。其中,Python源文件254个,Python编译后文件244个,CSS样式文件65个,HTML模板61个,JavaScript脚本40个,以及其他类型文件如LESS、SCSS、XML、PNG等。该系统通过组件化设计,旨在提升客户关系管理的效率与用户体验。
微信小程序日历插件_Calendar
那些年,与你同分同位次的同学都去了哪里?全国各大学在辽宁2020-2024年各专业最低录取分数及录取位次数据,高考志愿必备参考数据
另一个小型购物中心。Litemall=Spring Boot后端+Vue管理员前端+微信小程序用户前端+Vue用户移动端_stemall
该项目为基于GitHub的ESPnet语音处理工具包设计源码,包含10633个文件,涵盖Shell脚本、Python、MATLAB、C++等多种编程语言。文件类型包括2872个shell脚本、2303个YAML配置文件、1662个Python脚本、1567个配置文件、306个Markdown文件、223个Perl脚本、39个文本文件、35个Bash脚本、27个PNG图片、21个补丁文件。该项目定期更新,适用于语音处理领域的研究与开发。
该项目是一款基于Python开发的pyecharts可视化图表库源码,包含166个文件,涵盖了121个Python源文件、12个HTML文件、9个JSON文件、6个PNG图片文件、4个Markdown文件、3个文本文件、2个YAML文件以及少量配置和管理文件。该库旨在提供强大的数据可视化解决方案,适用于各种数据分析与展示需求。
STM32软件学习资料GPS与GPRSSTM32软件学习资料GPS与GPRS
那些年,与你同分同位次的同学都去了哪里?全国各大学在辽宁2020-2024年各专业最低录取分数及录取位次数据,高考志愿必备参考数据
那些年,与你同分同位次的同学都去了哪里?全国各大学在辽宁2020-2024年各专业最低录取分数及录取位次数据,高考志愿必备参考数据