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为两个文件,分别对应 ...
随机推荐
- python占位符%s,%d,%r,%f
input接收的所有输入默认都是字符串格式 1.%s代表字符串占位符 conn, client_addr = phone.accept() print(conn) print(client_addr) ...
- linux环境下 mysql数据库忘记密码 处理办法
整个修改过程大概3-10分钟(看个人操作),这个时间内mysql出于不需要密码就能登陆的状态,请设法保证系统安全 不罗嗦直接上步骤 1.vi /etc/my.cnf 在[mysqld]下,添加一句:s ...
- Javascript:各种宽高
Javascript: IE中:document.body.clientWidth ==> BODY对象宽度document.body.clientHeight ==> BODY对象高度d ...
- ASP.NET全局异常处理
Web项目部署后,异常直接暴露给用户会产生很不好的体验.只是暴露在服务器端又无法实时记录异常原因以便加以重现并修复.所以配合Log4Net记录日志信息,同时全局异常处理来营造良好用户体验就比较重要了. ...
- 15_volatile
[volatile概念] volatile关键字的主要作用是是变量在多个线程间可见. [注意] 在java中,每一个线程都会有一块工作内存区,其中存放着所有线程共享的主内存中的变量的拷贝.当线程执行时 ...
- SharePoint 2010配置PDF文件全文检索
一.安装Adobe PDF 64 bit IFilter version 9合Adobe Reader 9下载地址: http://www.adobe.com/support/downloads/de ...
- mongodb 3.4 学习 (六)监控
mongostat mongotop db.currentOp db.serverStatus() db.stats() db.collection.stats() # 复制集监控 rs.status ...
- db2的count()函数和sum()函数的用法
一.count()函数可以使用参数,例如count(*)和count(列名) count(*)用来计算在指定条件下,满足条件的行数,例如: select count(*) from tablename ...
- sqlserver 带输出参数的存储过程
--创建存储过程create procedure proc_stu@sname varchar(20),@pwd varchar(50),@flag bit outputasif exists(sel ...
- 【Leetcode】【Easy】Length of Last Word
Given a string s consists of upper/lower-case alphabets and empty space characters ' ', return the l ...