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 ...
随机推荐
- javascript编辑器预览模式解密
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- JSP简单练习-获取表单数据
在JSP中,server端程序与client交互最经常使用的方法就是採用表单提交数据.表单提交的方法主要有两种,一种是get方法.还有一种是post方法.两者最大的差别:使用get方法提交的数据会显示 ...
- 存储过程中调用EXECUTE IMMEDIATE的“权限不足”问题
使用plsql 动态创建表时,用户需要具有create any table 权限 例如: create or replace procedure create_table_test is tmpstr ...
- oracle 11g导入导出
数据的导入 1 将D:\daochu.dmp 中的数据导入 TEST数据库中. imp system/manager@TEST file=d:\daochu.dmp 上面可能有点问题,因为 ...
- SQL学习之使用视图
1.简介:视图是虚拟的表.与包含的数据不一样,视图只包含使用时动态检索数据的查询.重点:视图是一个查询,不是一个表!
- MyEclipse 2013 导入MyEclipse 9.0的EJB项目时,需要注意
点击“next”按钮,出现下面的对话框: 再点击“next”按钮,出现下面的对话框:
- oracle 导入txt
没有Oraclehoume的情况下,执行下环境变量文件 sqlldr userid= DM/DM control = /home/oracle/libc/load.ctl load data infi ...
- prime算法求最小生成树(畅通工程再续)
连着做了四道畅通工程的题,其实都是一个套路,转化为可以求最小生成树的形式求最小生成树即可 这道题需要注意: 1:因为满足路的长度在10到1000之间才能建路,所以不满足条件的路径长度可以初始化为无穷 ...
- php-fpm 开启错误日志
#php-fpm.conf #open catch_workers_output = yes #php.ini log_errors = On error_log=/data/logs/php-fpm ...
- liunx使用技巧
1.挂载与卸载U盘 新建一个目录:mkdir /mnt/usb; Fdisk –l |less 查看添加之后的设备名,设备文件系统格式 加载U盘设备: mount –t vfat /mnt/usb ...