jdbc执行过程 jar包下载
工具和准备:
MYSQL 8.0jar包:
链接:https://pan.baidu.com/s/1O3xuB0o1DxmprLPLEQpZxQ
提取码:grni
使用eclipse开发首先把jar包导入内库中
首先将jar包复制到项目src下,右击src点击build path然后会在Refrenced中看到jar包

本篇博客主要讲述jdbc的操作过程,每一步需要干什么,最后用代码实现一个有数据库的简易注册登录功能。
下面的代码能够对jdbc的执行过程有初步的了解。
大体分为以下几步:
首先进行注册驱动
可以使用 Driver driver=new com.mysql.cj.jdbc.Driver(); DriverManager.registerDriver(driver); 来进行注册驱动
也可以使用java反射技术采用别人的接口来进行注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");
接下来进行获取数据库连接
需要url,数据库用户名以及密码
通过DriverManager.getConnection(url, user, password)赋给Connection对象
注意:
mysql8.0的url以及mysql接口名称与mysql5.0发生了变化
mysql5.0:
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost:3306/suzy";(suzy为我的数据库名称)
mysql8.0:
Class.forName("com.mysql.cj.jdbc.Driver");
String url="jdbc:mysql://localhost:3306/suzy?useSSL=false&serverTimezone=Asia/Shanghai";
接下来获取数据库操作对象
通过createstatement方法赋给Statement对象
接下来执行sql语句
自己构建sql语句通过executeQuery方法进行执行
接下来处理查询结果集
当rs.next为true的时候不断打印
最后将资源关闭
rs.close(); st.close(); conn.close();
了解jdbc执行过程代码如下:
package jdbcdemo;
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class JdbcTest01 { public static void main(String[] args) {
// TODO Auto-generated method stub
Statement st=null;
Connection conn=null;
ResultSet rs=null;
try
{
//1.注册驱动
/* Driver driver=new com.mysql.cj.jdbc.Driver();
DriverManager.registerDriver(driver);*/
Class.forName("com.mysql.cj.jdbc.Driver");
//2.获取数据库连接
String url="jdbc:mysql://localhost:3306/suzy?useSSL=false&serverTimezone=Asia/Shanghai";
String user="root";
String password="10086";
conn=DriverManager.getConnection(url, user, password);
//3.获取数据库操作对象
st=conn.createStatement();
//4.执行sql语句
String sql="select e.ename,e.sal from emp e";
rs=st.executeQuery(sql);
//5.处理查询结果集
while(rs.next())
{
String ename=rs.getString("ename");
double sal=rs.getDouble("sal");
System.out.println(ename+"||"+sal);
}
}
catch (Exception e)
{
e.printStackTrace();
}finally
{
if(rs!=null)
{
try
{
rs.close();
}catch(Exception e)
{
e.printStackTrace();
}
}
if(st!=null)
{
try
{
st.close();
}catch(Exception e)
{
e.printStackTrace();
}
}
if(conn!=null)
{
try
{
conn.close();
}catch(Exception e)
{
e.printStackTrace();
}
}
} } }
使用jdbc实现一个简易的注册代码如下:
public class JdbcTest02 {
public static void main(String[] args) throws SQLException {
// TODO Auto-generated method stub
Scanner in =new Scanner(System.in);
System.out.println("欢迎来控制台进行注册");
System.out.println("请输入您要注册的用户名");
String name=in.nextLine();
System.out.println("请输入您的密码");
String pwd=in.nextLine();
Connection conn=null;
Statement st=null;
int count=0;
try {
Class.forName("com.mysql.cj.jdbc.Driver");
String url="jdbc:mysql://localhost:3306/suzy?useSSL=false&serverTimezone=Asia/Shanghai";
String user="root";
String password="10086";
conn=DriverManager.getConnection(url, user, password);
st=conn.createStatement();
String sql="insert into t_user(username,password) values('"+name+"','"+pwd+"')";
count=st.executeUpdate(sql);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally
{
if(st!=null)
{
st.close();
}
if(conn!=null)
{
conn.close();
}
}
if(count==1)
{
System.out.println("注册成功!!!");
}
else
{
System.out.println("注册失败!!!");
}
}
}
注册界面效果图:

数据库相应的添加了刚才注册的信息

使用jdbc实现一个简易的登录代码如下:
public class JdbcTest03 {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
// TODO Auto-generated method stub
Scanner in =new Scanner(System.in);
System.out.println("欢迎来控制台进行登录");
System.out.println("请输入您的用户名");
String name=in.nextLine();
System.out.println("请输入您的密码");
String pwd=in.nextLine();
Statement st=null;
Connection conn=null;
ResultSet rs=null;
PreparedStatement ps=null;
boolean flag=false;
try {
Class.forName("com.mysql.cj.jdbc.Driver");
//2.获取数据库连接
String url="jdbc:mysql://localhost:3306/suzy?useSSL=false&serverTimezone=Asia/Shanghai";
String user="root";
String password="10086";
conn=DriverManager.getConnection(url, user, password);
//3.获取数据库操作对象
//st=conn.createStatement();
//4.执行sql语句
//String sql="select username from t_user where username='"+name+"' and password='"+pwd+"'";
//定义sql语句框架
String sql="select username from t_user where username= ? and password = ?";
//sql语句进行预编译
ps=conn.prepareStatement(sql);
//对sql语句进行赋值
ps.setString(1, name);
ps.setString(2, pwd);
rs=ps.executeQuery();
//rs=st.executeQuery(sql);
if(rs.next())
{
flag=true;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally
{
if(rs!=null)
{
rs.close();
}
if(ps!=null)//st!=null
{
//st.close();
ps.close();
}
if(conn!=null)
{
conn.close();
}
}
if(flag)
{
System.out.println("登陆成功!!!");
}
else
{
System.out.println("您输入的用户名或密码错误");
}
}
}
登录界面效果如下:


可是发现用户名ss数据库并没有却能登陆成功,debug后发现这样的密码导致sql语句变为select username from t_user where (username='ss' and password ='asdf') or 'kk'='kk',后面的'kk'='kk'是恒成立的,前面是or语句所以百分百执行
怎样解决这个bug呢:
采用预编译对象prepareStatement,定义sql框架使用?占位符,预编译之后进行Sql赋值
上述代码是解决bug之后的(有注释的是有bug时候的代码)
接下来运行发现得到正确的运行结果

jdbc执行过程 jar包下载的更多相关文章
- 构建Springboot项目、实现简单的输出功能、将项目打包成可以执行的JAR包(详细图解过程)
1.构建SpringBoot项目 大致流程 1.新建工程 2.选择环境配置.jdk版本 3.选择 依赖(可省略.后续要手动在pom文件写) 4.项目名 1.1 图解建立过程 1.2 项目结构 友情提示 ...
- 2022最新版超详细的Maven下载配置教程、IDEA中集成maven(包含图解过程)、以及导入项目时jar包下载不成功的问题解决
文章目录 1.maven下载 2.maven环境变量的配置 3.查看maven是否配置成功 4.配置文件的修改 5.IDEA集成maven 6.导入项目时jar包下载不成功的问题解决 maven教程: ...
- Spring框架针对dao层的jdbcTemplate操作crud之delete删除数据库操作 Spring相关Jar包下载
首先,找齐Spring框架中IoC功能.aop功能.JdbcTemplate功能所需的jar包,当前13个Jar包 1.Spring压缩包中的四个核心JAR包,实现IoC控制反转的根据xml配置文件或 ...
- (转)Maven依赖的jar包下载不了、jar更新不了的解决办法
场景一: 使用Maven的同学可能偶尔会遇到这种情况:pom.xml中依赖了项目需要的某个jar文件,但是使用Maven –> update project 还是没办法下载该jar到项目中,你可 ...
- [Maven]Maven构建可执行的jar包(包含依赖jar包)
----------------------------------------------------------------- 原创博文,如需转载请注明出处! 博主:疲惫的豆豆 链接:http:/ ...
- Maven Jar包下载失败及解决方案
我是阿福,公众号「阿福聊编程」作者,一个在后端技术路上摸盘滚打的程序员,在进阶的路上,共勉! 文章已收录在 JavaSharing 中,包含Java技术文章,面试指南,资源分享. 明显的下载失败 具体 ...
- 用命令行编译java并生成可执行的jar包
用命令行编译java并生成可执行的jar包 1.编写源代码. 编写源文件:CardLayoutDemo.java并保存,例如:I:\myApp\CardLayoutDemo.java.程序结构如下: ...
- json学习系列(1)-使用json所要用到的jar包下载
内容来源于互联网. json是个非常重要的数据结构,在web开发中应用十分广泛.每个开发者都应该好好的去研究一下json的底层实现.在使用json之前首先要明白需要哪些jar文件,初次使用的时候很容易 ...
- 创建可执行的JAR包
创建可执行的JAR文件包,需要使用带cvfm参数的jar命令,命令如下:JAR cvfm test.jar manifest.mf testtest.jar和manifest.mf为两个文件,分别对应 ...
随机推荐
- Trim a Binary Search Tree
Given a binary search tree and the lowest and highest boundaries as L and R, trim the tree so that a ...
- HDU 5007 字符串匹配
http://acm.hust.edu.cn/vjudge/contest/122814#problem/A 匹配到字符串就输出,水题,主要是substr的运用 #include <iostre ...
- 堆(Heap)的实现
这次实现了堆,这个堆不是指系统堆栈的堆,是一种数据结构,见下图 堆的本质就是一个数组(上图中,红色的是值,黑色的是下标)简单的来说就是把一个数组看成是二叉树,就像上图 大堆和小堆分别是指根节点比孩子节 ...
- 微服务学习笔记二:Eureka服务注册发现
Eureka服务注册发现 服务发现:云端负载均衡,一个基于 REST 的服务,用于定位服务,以实现云端的负载均衡和中间层服务器的故障转移. 1. Service Discovery: Eureka S ...
- .NET开源工作流RoadFlow-表单设计-组织机构选择
组织机构选择即在表单中添加组织机构选择框. 选择范围: 1.发起者部门:只能在发起者同一个部门中选择. 2.处理者部门:只能在当前处理者同一个部门中选择. 3.自定义:自己指定一个选择范围. 选择类型 ...
- Android上使用RecyclerView实现顶部悬浮标题效果的Sticky Title View
目前很多的项目都在使用顶部悬浮标题的效果,很明显,这的确是一个比较人性化,用户体验效果比较好的UI交互效果,对于这个效果,有很多种实现方式,如果说要用RecyclerView来实现一个分类信息展示,并 ...
- SqlServer数据库全角和半角互转的方法
---摘要: SqlServer数据库全角和半角互转的方法 CREATE FUNCTION f_Convert( @str NVARCHAR(4000), --要转换的字符串 @flag bit -- ...
- (转)防止ViewPager中的Fragment被销毁的方法
在使用ViewPager与Fragment的时候,ViewPager会自动缓存1页内的数据,如下图: 当我们当前处在页面2的时候,页面1和页面3的View实际上已经创建好了,所以在我们拖动的时候是可以 ...
- python进程与线程介绍
很多同学都听说过,现代操作系统比如Mac OS X,UNIX,Linux,Windows等,都是支持“多任务”的操作系统. 什么叫“多任务”呢?简单地说,就是操作系统可以同时运行多个任务.打个比方,你 ...
- 关于程序中使用servlet-api.jar和jsp-api.jar与服务器lib包jar包冲突的问题
问题描述: 程序中使用到javax.servlet.http.HttpServletRequest等类内容,然而这些类是依赖于tomcat容器lib包下的jar包,工程中导入这两个ja ...