1、什么是JDBC?

JDBC(Java DataBase Connectivity)就是Java数据库连接,说白了就是用Java语言来操作数据库。原来我们操作数据库是在控制台使用SQL语句来操作数据库,JDBC是用Java语言向数据库发送SQL语句。

2、JDBC原理

SUN提供访问数据库规范称为JDBC,而生产厂商提供的实现类称为驱动。

JDBC是接口,而JDBC驱动才是接口的实现,没有驱动无法完成数据库连接!

每个数据库厂商都有自己的驱动,用来连接自己公司的数据库。

3、JDBC开发步骤

1)注册驱动

2)获得连接

3)获得语句执行者

4)执行sql语句

5)处理结果

6)释放资源

3、导入驱动jar包

1)新建项目,命名为WEB08_JDBC,

2)创建lib目录,右击New->Folder,命名为lib,用于存放当前项目需要的所有jar包,

把jar包复制到当前项目的lib文件夹下,

3)选择jar包右击执行Build Path,直至当前目录下出现一个小奶瓶标志

4、测试sql注入问题(运用到JUnit单元测试的内容)

mysql下web08数据库中tbl_user表中有两条数据,根据用户信息登录。

具体代码实现如下:

 package cn.itheima.test;

 import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; import org.junit.Test; public class TestLogin {
@Test
public void testLogin(){
try {
login1("zhangsan","999");
} catch (Exception e) {
e.printStackTrace();
}
}
public void login1(String username,String password) throws ClassNotFoundException, SQLException{
/*
* 用户登录方法
*/
//1.注册驱动
Class.forName("com.mysql.jdbc.Driver");
//2.获取连接
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/web08","root","12345");
//3.编写sql语句
String sql="select * from tbl_user where uname=? and upassword=?";
//4.创建预处理对象
PreparedStatement pstmt=conn.prepareStatement(sql);
//5.设置参数(给占位符)
pstmt.setString(1, username);
pstmt.setString(2, password);
//6.执行查询操作
ResultSet rs=pstmt.executeQuery();
//7.对结果集进行处理
if(rs.next()){
System.out.println("恭喜您,"+username+"登录成功!");
}else{
System.out.println("账号或密码错误!");
}
if(rs!=null) rs.close();
if(pstmt!=null) pstmt.close();
if(conn!=null) conn.close();
}
}

右击Run As->JUnit Test,执行结果为:恭喜您,zhangsan登录成功!

MySQL学习(三)——Java连接MySQL数据库的更多相关文章

  1. MySQL学习(一)——Java连接MySql数据库

    MySQL学习(一)——Java连接MySql数据库 API详解: 获得语句执行 String sql = "Insert into category(cid, cname) values( ...

  2. Java 连接 MySQL 数据库

    最近想学习一下 Java 连接 MySQL 数据库,于是有了这样的一些问题&解决办法. 首先是解决 JDBC(Java Data Base Connectivity)驱动问题,因为默认安装的J ...

  3. java连接mysql数据库详细步骤解析

    java连接mysql数据库详细步骤解析      第一步:下载一个JDBC驱动包,例如我用的是:mysql-connector-java-5.1.17-bin.jar      第二步:导入下载的J ...

  4. Java连接MySQL数据库及简单操作代码

    1.Java连接MySQL数据库 Java连接MySql需要下载JDBC驱动MySQL-connector-java-5.0.5.zip(举例,现有新版本).然后将其解压缩到任一目录.我是解压到D盘, ...

  5. Java连接MySQL数据库增删改查通用方法

    版权声明:本文为博主原创文章,未经博主允许不得转载. Java连接MySQL数据库增删改查通用方法 运行环境:eclipse+MySQL 以前我们Java连接MySQL数据库都是一个数据库写一个类,类 ...

  6. 【JDBC】Java 连接 MySQL 基本过程以及封装数据库工具类

    一. 常用的JDBC API 1. DriverManager类 : 数据库管理类,用于管理一组JDBC驱动程序的基本服务.应用程序和数据库之间可以通过此类建立连接.常用的静态方法如下 static ...

  7. Java进阶(二十五)Java连接mysql数据库(底层实现)

    Java进阶(二十五)Java连接mysql数据库(底层实现) 前言 很长时间没有系统的使用java做项目了.现在需要使用java完成一个实验,其中涉及到java连接数据库.让自己来写,记忆中已无从搜 ...

  8. java连接MySql数据库 zeroDateTimeBehavior

    JAVA连接MySQL数据库,在操作值为0的timestamp类型时不能正确的处理,而是默认抛出一个异常, 就是所见的:java.sql.SQLException: Cannot convert va ...

  9. 转载:Java连接MySQL 数据库的正确操作流程

    转载网址:http://www.bitscn.com/pdb/mysql/201005/186551.html       以下的文章主要介绍的是Java连接MySQL 数据库(以MySQL数据库为例 ...

随机推荐

  1. Spark RDD概念学习系列之action操作

    不多说,直接上干货! action操作  

  2. SQLiteHelp

    using System; using System.Collections.Generic; using System.Text; using System.Data.SQLite; using S ...

  3. Android 多线程下载 显示进度 速度

    功能要求:从网络下载一APK应用,显示下载速度.进度,并安装应用. 运行效果图: 工程结构图: 很简单,就一个activity,一个更新UI的线程,一个下载线程加个文件处理类 主要代码: /** *多 ...

  4. SQL学习——基础语句(1)

    简序 1.SQL,指结构化查询语言,全称是 Structured Query Language. 2.SQL 让您可以访问和处理数据库. 3.SQL 是一种 ANSI(American Nationa ...

  5. java 遍历list 模糊查询用

    java 遍历list 模糊查询用 /** * 筛选list * @param list 要筛选的list * @param key 筛选的key * @param <T> * @retu ...

  6. RocketMQ学习笔记(11)----RocketMQ的PushConsumer和PullConsumer

    1. PushConsumer 推,Broker主动向Consumer推消息,它Consumer的一种,应用通常向对象注册一个Listener接口,一旦接收到消息,Consumer对象立刻回调Lins ...

  7. ZBrush软件特性之Color调控板

    ZBrush®中的Color调色板显示当前颜色并提供数值的方法选择颜色,而且选择辅助色,使用描绘工具可以产生混合的色彩效果. ZBrush 4R8下载:http://wm.makeding.com/i ...

  8. Debian下签名无法验证

    又收集到的新方法 gpg --keyserver  subkeys.pgp.net --recv-keys AED4B06F473041FA  && apt-key add /root ...

  9. luoguP4238 【模板】多项式求逆 NTT

    Code: #include <bits/stdc++.h> #define N 1000010 #define mod 998244353 #define setIO(s) freope ...

  10. eclipse集成ijkplayer项目

    1.ijkplayer是什么 ijkplayer是b站开源的一个视频插件,基于ffmpeg, 支持 Android 和 iOS,可以代替android自带的videview,有不错的体验,支持的视频文 ...