foodmap开发:JDBC的使用说明

写在最前面:
jdbc的开发真的很不友好,主要是难找资料。特别是想要使用druid时,网上的资料查了半天,结果全部都是要用maven的,然而笔者此时远远没学到,别提有多难搞了。网络环境是真的恶劣……

1.最基本的实现方法

在这里插入图片描述
注意:
0.导入驱动jar包的方法是:
(1)在web目录的web-inf目录下创建一个lib目录,用于存放.jar包
(2)将从mysql官网下载的mysql-connector-java-x.x.xx.jar(x.x.xx好像是要和自己安装的mysql版本差不多?或者没影响?)复制到步骤(1)的lib目录下
(3)在IDEA中右键点击该jar包,选择add as library,然后不停点ok就行了。
1.获取数据库连接对象时,要把第一个参数db3换成想要操作的数据库,第二第三个参数换成自己数据库的名称和密码
2.如果使用的是create语句,同样也是executeUpdate语句来执行

详解各个对象功能

DriveManager

在这里插入图片描述
在这里插入图片描述

Connection

在这里插入图片描述

Statement

在这里插入图片描述

附录

以一个例子总结一下各部分写法

基本写法

jdbc.properties

JDBCUtil

JDBCDemo

例A:用户登录

目标

当用户从键盘输入用户名user和密码password时,查询数据库。如果数据库中有该用户名,并且两者都输入正确,就显示登陆成功。

实现步骤

0.创建数据库中的表

1.键盘录入

2.调用自定义的login方法,查询数据库

如果是使用静态的sql语句,即简单的语句和变量拼接,则
2.1.判断键盘输入是否为空
2.2.获取数据库连接
2.3.定义条件查询sql语句
2.4.获取执行sql语句的对象
2.5.执行查询,得到结果集合

如果是使用动态的sql语句,则稍作修改
在这里插入图片描述
注:1、2、3、9和静态语句的方法一样,PreparedStatement的释放方法和Statement一样
7.的执行sql语句直接这么写:
PreparedStatement pstmt = connection.prepareStatement(String sql);
rs = pstmt.executeQuery();

动态语句比起静态语句,优点是可以解决【sql注入】的问题,即【如果变量中含有sql的关键词,则可能会导致搜索条件的含义改变】

如果需要同时执行多条sql语句,并且只要程序出现异常,所有sql语句都不会执行,则需要sql事务的帮忙,即:
1.在获取Connection对象后添加一句:
conn.setAutoCommit(false);
2.记得每一句sql都要做足自己的步骤,即【定义,获取PreparedStatement对象,设置参数,执行sql语句,释放pstmt对象】
3.在执行sql语句后添加一句
conn.commit();
4.将catch的逻辑修改为

3.判断结果,输出不同语境

如果返回true,说明结果集合不为空,即数据库中有一样的用户名和密码

猜你喜欢

转载自blog.csdn.net/jieyannn/article/details/106056269