java连接数据库 Jdbc

JDBC

去数据官网下载数据响应的驱动程序

java对每个数据库厂家提供相应接口,驱动程序就是对接口的实现类

导入驱动的jar包

Ecplise版放jar包

俩种方法

  • 放在WEB-INF/lib下

  • 通过build path导入

不同版本的数据库导入不同的jar包

连接时的写法也略有区别:

1.使用的jar包版本:mysql-connector-5.1.0+

//1.注册驱动
Class.forName("com.mysql.jdbc.Driver");
//2.获取连接对象
conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/数据库名称", "用户名", "密码");

2.使用的jar包版本:mysql-connector-8.0.0+

//1.注册驱动
Class.forName("com.mysql.cj.jdbc.Driver");
 //2.获取连接对象
conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/数据库名称?useSSL=false&serverTimezone=服务器时区", "用户名", "密码");
/*
    与5.0+版本的对比:驱动路径变了;多出了useSSL=false&serverTimezone=时区。
    useSSL=false:8.0之前是需要连接数据库是需要建立ssl连接,而8.0之后不需要了,所以需要将其关闭。
    serverTimezone可以填UTC、Asia/Shanghai等等,UTC要比中国时区早8个小时。我写的是serverTimezone=Hongkong
    
url=jdbc:mysql://127.0.0.1:3306/text1?useUnicode = true & serverTimezone = GMT%2B8 & characterEncoding = utf8 & useSSL = false

java链接数据库

分俩种:

  • statement (存在sql注入问题)

  • preparedStatement (预编译的)

java链接数据库6步

statement

  • 第一步:注册驱动(作用:告诉java程序,即将连接的是那个品牌的数据库)

  • 第二步:获取连接(表示jVM的进程和数据库进程之间的通道打开了,属于进程之间的通信,重量级,使用完后必须要关闭)

  • 第三步:获取数据库操作对象(专门执行sql语句的对象)

  • 第四步:执行SQL语句(DQL DML …)

  • 第五步:处理查询结果集(只有第四步执行select语句 才有第五步处理查询结果集)

  • 第六步:释放资源(使用完资源之后一定要关闭资源,java和数据库属于进程,开启后必须要关闭)

preparedStatement

六步没变只不过第三步是预编译

  • 第一步获取驱动

  • 第二步连接数据库

  • 第三步获取预编译数据库操作对象 预编译sql语句
    • Sql 语句 传值 用?占位

    • 对象.prepareStatement( sql )

    • 然后对占位符进行传值

    • ps.setString(第一个问号的下标,传值); //Jdbc中 sql语句下标从1开始

  • 第四步执行sql语句
    • 这里就不用传入sql语句 , 直接预编译对象调用执行方法即可

    • 用预编译的对象执行

  • 第五百处理结果集

  • 第六步关闭流释放资源

代码实现:

//代码实现
package com.jmi.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

//操作数据 DML
public class JdbcDmlTest {
public static void main(String[] args) {
  //注册驱动 Class.forName("路径")
  //连接数据库 DriverManager.getConnection("jdbc:mysql//localhost:3306/数据库", "用户名", "密码")
  //实例化数据库对象
  //执行sql语句
  //查询结果集int executeUptate(insert/delete/update)  ResultSet  executeQuery(select);
  //关闭资源
  Connection conn=null;//连接数据库的接口
//  Statement st=null;//
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值