MySQL JDBC编程

发布于:2025-02-10 ⋅ 阅读:(47) ⋅ 点赞:(0)

1.JDBC

JDBC,JAVA Database Connectivity,Java数据库连接。是一种用于执行SQL语句的JAVA API,是Java中的数据库连接规范,这个API由java.sql.*,javax.sql.*包中的一些类和接口组成,为JAVA开发人员操作数据库提供了一个标准的API,为多种关系数据库提供统一访问方式

JDBC编程通过JAVA代码操作mysql数据库,数据库服务器提供一些API供程序员调用,不同数据库提供的原生api不同

2.Java数据库连接(JDBC)

1)准备数据库驱动包,添加到项目依赖中

要想在程序中操作mysql就需要安装mysql的驱动包,并把驱动包引入到项目里

(软件,厂商提供的驱动程序类似转接头,把不同数据库的原生api和JDBC的api对接上)

可以在官网,中央仓库下载到驱动包

选择第二个 ,选择相应的版本,mysql5驱动包也要使用5系列

 点击jar下载

 然后将jar引入项目中

1)把jar复制到当前的项目目录中

创建一个新的项目->创建一个目录

 把下载好的jar包放在新创建的lib目录中

 2)把目录标记成库

点击确定即可 

2)建立数据库连接

a.创建一个类

 

URL表示网络上的资源位置(网址)

mysql是一个客户端 服务器程序,通过网络进行交互

java1217是数据库名字,jdbc:mysq jdbc操做mysql,可以换成其他数据库的名字;127.0.0.1是ip地址,确定服务器在哪一个主机,描述网络上一个主机所在的位置,(127.0.0.1是一个特殊的ip地址,环回ip,自己把数据发给自己)因为我们的jdbc程序和mysql服务器在同一个主机上,所以使用环回ip;3306端口号确定主机上的哪个应用程序(服务器程序是哪一个程序)useSSL表示是否要进行加密;?后面表示访问资源时需要哪些参数

3)创建操作指令

4)执行SQL语句

5)处理结果集

6)释放资源

方法注解 

executeQuery()常用于select sql 语句(写操作),executeUpdate()常用于 insert update delect sql语句(读操作)

3.结果+完整代码 

import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;

import javax.sql.DataSource;

import java.sql.*;


public class test1 {
    //通过代码在数据的表中插入一行记录
    public static void main(String[] args) throws SQLException {
//1.创建DataSource(数据源)描述数据源头(数据库服务器所在位置)
        //MysqlDataSource来自于刚刚导入的驱动包
        //MysqlDataSource mysqlDataSource=new MysqlDataSource();
        //mysqlDataSource.setUrl();
        DataSource dataSource=new MysqlDataSource();
        ((MysqlDataSource) dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java1217?characterEncoding=utf8&useSSL=false");
        //设置用户和密码
        ((MysqlDataSource) dataSource).setUser("root");
        ((MysqlDataSource) dataSource).setPassword("111111");
        //建立数据库和服务器之间的连接
        Connection connection = dataSource.getConnection();
        //构造sql
        //String sql="delete from student where id =1";
        //String sal="update student set name='李四' where id =1";
        String sql="insert into student values(1,'张三')";
        //把字符串格式sql发送给服务器
        //准备好的语句 (先预先检查sql语句是否有错)把解析好的结构化数据发送给服务器
        PreparedStatement statement=connection.prepareStatement(sql);
        //把sql发给服务器 返回值整数表示影响到的行数
        int n=statement.executeUpdate();
        System.out.println("n ="+ n);
        //关闭连接释放资源 后获取到的资源先释放
        statement.close();
        connection.close();


    }


}

  4.输入的方式执行sql语句

import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;

import javax.sql.DataSource;

import java.sql.*;
import java.util.Scanner;


public class test1 {

    public static void main(String[] args) throws SQLException {
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入学号:");
        int id=scanner.nextInt();
        System.out.println("请输入姓名:");
        String name=scanner.next();

        DataSource dataSource=new MysqlDataSource();
        ((MysqlDataSource) dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java1217?characterEncoding=utf8&useSSL=false");
        //设置用户和密码
        ((MysqlDataSource) dataSource).setUser("root");
        ((MysqlDataSource) dataSource).setPassword("111111");
        //建立数据库和服务器之间的连接
        Connection connection = dataSource.getConnection();
        //构造sql
        //使用?作为占位符
       /// String sql="insert into student values("+ id +",'"+ name +"')";
        String sql="insert into student values(?,?)";
        PreparedStatement statement=connection.prepareStatement(sql);
        //对应第一个?,id是结果集的列名,替换int使用setint
        statement.setInt(1,id);
        //对应第二个问号
        statement.setString(2,name);
        System.out.println("sql="+statement);
        int n=statement.executeUpdate();
        System.out.println("n ="+ n);
        //关闭连接释放资源 后获取到的资源先释放
        statement.close();
        connection.close();


    }


}


网站公告

今日签到

点亮在社区的每一天
去签到