工具: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操作数据库的更多相关文章

  1. Spring MVC基础知识整理➣Spring+SpringMVC+Hibernate整合操作数据库

    概述 Hibernate是一款优秀的ORM框架,能够连接并操作数据库,包括保存和修改数据.Spring MVC是Java的web框架,能够将Hibernate集成进去,完成数据的CRUD.Hibern ...

  2. Java-jdbc操作数据库

    如果需要访问数据库,首先要加载数据库驱动,数据库驱动只需在第一次访问数据库时加载一次.然后在每次访问数据库时创建一个Connection实例,获取数据连接,这样就可以执行操作数据库的SQL语句.最后在 ...

  3. python高级之操作数据库

    python高级之操作数据库 本节内容 pymysql介绍及安装 使用pymysql执行sql 获取新建数据自增ID fetch数据类型设置 1.pymysql介绍及安装 在python2中连接数据库 ...

  4. greenDao:操作数据库的开源框架

    greenDAO: Android ORM for your SQLite database 1. greenDao库获取 英文标题借鉴的是greendrobot官网介绍greenDao时给出的Tit ...

  5. 总结一些关于操作数据库是sql语句还是存储过程问题

    总结一些关于操作数据库是sql语句还是存储过程问题 程序中,你跟数据的交互,需要向数据库拿数据.更改数据库的数据等,这些操作,本身不是程序完成的,而是程序发命令给数据库去做的,不管是通过sql语句方式 ...

  6. greendao操作数据库的使用方法

    第一步:把greendao-1.3.0-beta-1,greendao-generator-1.3.1两个jar包加载到工程的lib的文件夹中,一定要右键点击Add As Library后才能使用. ...

  7. pymysql 操作数据库

    一.简介 pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同,但目前pymysql支持python3.x而后者不支持3.x版本 其执行语句与sql源码相似 二.使用 ...

  8. Asp.Net MVC 自定义的MVC框架(非EF操作数据库)

    一些废话:在北京辞职回家不知不觉中已经半年多了,这半年中有过很多的彷徨,困惑,还有些小小难受.半年时间算是我人生以来遇到过的最困苦的时候.理想的工作跟我擦肩而过,驾照也没有考过,年后这一改革...,毕 ...

  9. 一次莽撞的行为:在phpmyadmin中修改MySQL root密码后无法操作数据库

    一.手贱行为(✿◡‿◡) 在一次开发中通过xampp方式安装了PHP环境,需要操作数据库时通过phpmyadmin访问MySQL,在一次数据库操作时想起没有设置密码,于是直接在mysql数据库中的us ...

随机推荐

  1. Redis的持久化选项

    Redis提供了两种不同的持久化方法来将数据存储到硬盘里面.一种方法叫快照(snapshotting),它可以将存在于某一时刻的所有数据都写入硬盘里面.另一种方法叫只追加文件(append-only ...

  2. Count the Colors(线段树,找颜色段条数)

    Count the Colors Time Limit: 2 Seconds      Memory Limit: 65536 KB Painting some colored segments on ...

  3. IOS系列——NStimer

    Timer经常使用的一些东西 1. 初始化 timer = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@select ...

  4. 初探swift语言的学习笔记(闭包-匿名函数或block块代码)

    使用Block的地方很多,其中传值只是其中的一小部分,下面介绍Block在两个界面之间的传值: 先说一下思想: 首先,创建两个视图控制器,在第一个视图控制器中创建一个UILabel和一个UIButto ...

  5. Android文件存储使用参考

    可能遇到的问题 android系统自身自带有存储,另外也可以通过sd卡来扩充存储空间.前者好比pc中的硬盘,后者好移动硬盘. 前者空间较小,后者空间大,但后者不一定可用. 开发应用,处理本地数据存取时 ...

  6. dataset 用法(3)

    ReadXml 提供了只将数据或同时将数据和架构从 XML 文档读入 DataSet 的方式(若要同时读数据和架构,请使用包括 mode 参数的 ReadXML 重载之一,并将其值设置为 ReadSc ...

  7. AngularJs (二) 搭建Deployd 服务爬坑

    Deployd 爬坑 按照书上的教程,介绍Deployd 这个东东,首先进入其deployd.com/网页,发现这个东东着实厉害. THE SIMPLEST WAY TO BUILD AN API 按 ...

  8. spm3 基本

    spm3 命令 spm init //初始化一个spm模块,会生成基本配置以及测试文件等(下图). //注 初始化以后一般需要 鲜执行一下 spm install 安装默认依赖模块 index.js就 ...

  9. javascript 获取调用属性的对象

    最近碰到一个javascript 的小问题,是和闭包有关的,来自cnode 论坛,很有意思. var o = (function() { var person = { name: 'Vincent', ...

  10. ASPxComboBox-通过回车过滤结果集

    Dev ASP.NET组件中的ASPxComboBox可以方便的根据输入内容进行过滤,不过对于数据量较大或者用户数较多的情况下,这个功能会给服务器带来严重的负担,因此我们应该输入自己想要查询的字符串时 ...