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

最新文章

  1. 【jQuery 区别】attr()和prop()的区别
  2. [AaronYang]C#人爱学不学[2]
  3. shell运算
  4. Javascript 笔记与总结(2-15)结构、样式、行为分离
  5. have you declared this activity in your AndroidManifest.xml
  6. Android程序架构基本内容概述
  7. CI框架篇之辅助函数篇--基本(1)
  8. 【转】spin_lock & mutex_lock的区别? .
  9. Web 开发中 9 个有用的提示和技巧
  10. PHP程序猿必须学习的第二课——站点安全问题预防
  11. MyBatis的关联关系补充 多对多 继承
  12. zTree实现单独选中根节点中第一个节点
  13. Archaius 原理
  14. css居中flex
  15. 纯手工编写的PE可执行程序
  16. single-cell RNA-seq 工具大全
  17. rabbitmq使用报错总结
  18. Codeforces 442C Artem and Array (看题解)
  19. 使用Automation将Azure SQL DB容灾到本地
  20. 创建 maven maven-archetype-quickstart 项目抱错问题解决方法

热门文章

  1. javaio学习笔记-字符流类(2)
  2. 面向对象程序设计-C++_课时14对象组合_课时15继承
  3. sql server 2005 表master..spt_values
  4. oracle 使用 decode函数 或 case when 实现行转列
  5. VS2013 快捷键 与 RESHARPER 冲突
  6. nodejs取得mac地址
  7. 5.7.2.1 Math对象
  8. 使用jquery控制display属性
  9. javaTemplates-学习笔记二
  10. Word2Vec在Tensorflow上的版本以及与Gensim之间的运行对比