工具:eclipse

数据库工具: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注入漏洞,可先通过用户名从数据库中查找到密码,再与用户输入密码相比较,这样就可以有效的避免该问题了,当然也会有其他办法。

serlvet操作数据库的更多相关文章

  1. Java-jdbc操作数据库

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

  2. python高级之操作数据库

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

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

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

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

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

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

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

  6. pymysql 操作数据库

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

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

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

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

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

  9. python操作数据库

    一,安装mysql 如果是windows 用户,mysql 的安装非常简单,直接下载安装文件,双击安装文件一步一步进行操作即可. Linux 下的安装可能会更加简单,除了下载安装包进行安装外,一般的l ...

随机推荐

  1. 实例学习——爬取Pexels高清图片

    近来学习爬取Pexels图片时,发现书上代码会抛出ConnectionError,经查阅资料知,可能是向网页申请过于频繁被禁,可使用time.sleep(),减缓爬取速度,但考虑到爬取数据较多,运行时 ...

  2. Jinja2 中文手册

    欢迎来到 Jinja2 Jinja2 是一个现代的,设计者友好的,仿照 Django 模板的 Python 模板语言. 它速度快,被广泛使用,并且提供了可选的沙箱模板执行环境保证安全: <tit ...

  3. C# 并行编程之早起三件事

    故事背景 透着纱的窗外的阳光, 又是一个星期一. 慢慢来 一看时间, 还早, 那么蹦跶起来 穿衣 刷牙 洗脸 用代码来说的话, 应该是这样: // Program.cs using System; u ...

  4. 出大问题!webpack 多入口&&html模板在后端

    新公司前后端不分离,后端用的是php的twig 我用webpack做多入口文件的打包,虽然成功了.但是引入js和css是在twig上写死的根据文件名. 一开始没问题,因为就定死了那么几个global. ...

  5. RocketMQ 源码分析 —— Message 发送与接收

    1.概述 Producer 发送消息.主要是同步发送消息源码,涉及到 异步/Oneway发送消息,事务消息会跳过. Broker 接收消息.(存储消息在<RocketMQ 源码分析 —— Mes ...

  6. batch文件改修中遇到的sql问题

    代码: <?php ////////////////////////////////////////////////////////// // //ダイハツ車種 car_cd毎 平均価格 JSO ...

  7. cobbler装机系统部署

    1.cobbler安装 [root@linux-node1 ~]# cp /etc/cobbler/settings{,.ori} # 备份 # server,Cobbler服务器的IP. sed - ...

  8. Centos下载安装grafana

    grafana的官网下载:https://grafana.com/grafana/download 一.安装服务端图像呈现组件 # yum install -y fontconfig freetype ...

  9. AIX用户和组管理

    1.用户登录和初始化

  10. 23_1spring基础

    1.spring是什么 2.spring的优势 3.spring体系结构 4.耦合 程序间的依赖关系:类之间的依赖和方法之间的依赖. 解构:降低程序间的依赖关系. 实际开发中应该做到:编译期不依赖,实 ...