servlet操作数据库
工具:myeclipse
数据库工具:mysql
java ee操作数据库,首先要导入数据库驱动文件,我用的是mysql
刚开始,很多人代码正确但是就是连接不上,原因就是忘了驱动文件的导入。
我的驱动文件:
网上很容易找到
操作如下:
1.在要加入驱动文件的项目右击选中Build Path->>Add External Archives..
2.选择该驱动文件路径,添加
这下就可以进行数据库操作了
代码首部必须import java.sql.*;
//连接数据库,加载数据库驱动文件
Class.forName("com.mysql.jdbc.Driver");
//得到连接,括号内格式为数据库url+用户名+用户密码,这里的数据库名称为spdb,用户名称为root,密码为xxx
Connection ct=DriverManager.getConnection("jdbc:mysql://localhost:3306/spdb","root", "XXX");
//创建statement
Statement sm=ct.createStatement();
String sql="select * from users";//sql执行语句
//有返回值的例如查找用executeQuery函数,没有返回值的例如删除用executeUpdate函数
ResultSet rs=sm.executeQuery(sql);
System.out.println(sql);
if(rs.next()){//为真说明查找有结果,假说明未查找成功
//这里可以执行查找成功后代码
}
一系列操作做完之后,必须关闭sql连接。。
finally{
try{//关闭可能会出现异常异常
//一定注意关闭顺序
if(rs!=null){//为了使程序健壮点,可能rs为空时要判断
rs.close();
}
if(sm!=null){
sm.close();
}
if(ct!=null){
ct.close();
}
}catch(Exception e){
e.printStackTrace();
}
}
一定要注意关闭顺序!!
sql注入漏洞!!!
假如我要验证用户名和密码,注意下面这句话:
select * from users where username='22' and passwd='22' or 1='1';
这句话不论什么,只要有后面的or 1='1',都会查找成功。
其实本意是
select * from users where username='xxx' and passwd='xxx';
这样的话,如果用户名随便输入 ,密码输入 22' or 1='1 (红色字体部分) ,那也可以验证成功,这段内容是两个单引号之间的
这个就为sql注入漏洞,可先通过用户名从数据库中查找到密码,再与用户输入密码相比较,这样就可以有效的避免该问题了,当然也会有其他办法。
servlet操作数据库的更多相关文章
- Spring MVC基础知识整理➣Spring+SpringMVC+Hibernate整合操作数据库
概述 Hibernate是一款优秀的ORM框架,能够连接并操作数据库,包括保存和修改数据.Spring MVC是Java的web框架,能够将Hibernate集成进去,完成数据的CRUD.Hibern ...
- Java-jdbc操作数据库
如果需要访问数据库,首先要加载数据库驱动,数据库驱动只需在第一次访问数据库时加载一次.然后在每次访问数据库时创建一个Connection实例,获取数据连接,这样就可以执行操作数据库的SQL语句.最后在 ...
- python高级之操作数据库
python高级之操作数据库 本节内容 pymysql介绍及安装 使用pymysql执行sql 获取新建数据自增ID fetch数据类型设置 1.pymysql介绍及安装 在python2中连接数据库 ...
- greenDao:操作数据库的开源框架
greenDAO: Android ORM for your SQLite database 1. greenDao库获取 英文标题借鉴的是greendrobot官网介绍greenDao时给出的Tit ...
- 总结一些关于操作数据库是sql语句还是存储过程问题
总结一些关于操作数据库是sql语句还是存储过程问题 程序中,你跟数据的交互,需要向数据库拿数据.更改数据库的数据等,这些操作,本身不是程序完成的,而是程序发命令给数据库去做的,不管是通过sql语句方式 ...
- greendao操作数据库的使用方法
第一步:把greendao-1.3.0-beta-1,greendao-generator-1.3.1两个jar包加载到工程的lib的文件夹中,一定要右键点击Add As Library后才能使用. ...
- pymysql 操作数据库
一.简介 pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同,但目前pymysql支持python3.x而后者不支持3.x版本 其执行语句与sql源码相似 二.使用 ...
- Asp.Net MVC 自定义的MVC框架(非EF操作数据库)
一些废话:在北京辞职回家不知不觉中已经半年多了,这半年中有过很多的彷徨,困惑,还有些小小难受.半年时间算是我人生以来遇到过的最困苦的时候.理想的工作跟我擦肩而过,驾照也没有考过,年后这一改革...,毕 ...
- 一次莽撞的行为:在phpmyadmin中修改MySQL root密码后无法操作数据库
一.手贱行为(✿◡‿◡) 在一次开发中通过xampp方式安装了PHP环境,需要操作数据库时通过phpmyadmin访问MySQL,在一次数据库操作时想起没有设置密码,于是直接在mysql数据库中的us ...
随机推荐
- String类的实现,内部采用字符数组实现
#include <iostream> using namespace std; class String{ public: String(const char *str = NULL); ...
- [虚拟化/云][全栈demo] 为qemu增加一个PCI的watchdog外设(四)
通过前面的操作,我们已经可以创建一个带有我们自己的PCI的watchdog外设qemu 虚拟机了. 目的: 1. 了解我们的外设情况. 2. 为在guest中开发我们自己的linux PCI驱动程序做 ...
- mysql错误-更改mysql.sock位置
于Mysql在有时会出现mysql.sock定位误差,会造成不连接数据库. mac由当时的误差: 第一个变化my.cnf 位置/etc/my.cnf下一个,如果没有,那么.跟/usr/locate/m ...
- Jave中System.getProperty()获取的值
java.version Java 执行时环境版本号 java.vendor Java 执行时环境供应商 java.vendor.url Java 供应商的 URL java.home Java 安装 ...
- JavaScript对css样式表操作
CSS样式表3种方式: 内嵌:写在html标签中的样式 :如:<p style="width:100px"> 内嵌</p> 内联:写在html 中<h ...
- Java并发编程:Thread类的使用介绍
在学习Thread类之前,先介绍与线程相关知识:线程的几种状态.上下文切换,然后接着介绍Thread类中的方法的具体使用. 以下是本文的目录大纲: 一.线程的状态 二.上下文切换 三.Thread类中 ...
- jvm栈和堆详解
Java把内存分成两种,一种叫做栈内存,一种叫做堆内存 在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配.当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间 ...
- 计算Date间的分钟数
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm"); Date date_begin = simpl ...
- hadoop搭建杂记:Linux下hadoop的安装配置
VirtualBox搭建伪分布式模式:hadoop的下载与配置 VirtualBox搭建伪分布式模式:hadoop的下载与配置 由于个人机子略渣,无法部署XWindow环境,直接用的Shell来操作, ...
- 多名Uber司机被指刷单遭封号 一周薪水为0
昨天,一司机在Uber“司机之家”办公地墙上写了泄愤的话 摄/法制晚报记者 苏妮 司机展示的账单显示,上周的薪水几乎为零,上面用英文标注了“欺诈行为”的字样 摄/法制晚报记者 苏妮 法制晚报讯(记者 ...