栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

mysql 驱动包 mysql-connect-java

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

mysql 驱动包 mysql-connect-java

mysql的驱动包 mysql-connect-java
  1. 内部封装了jdbc:
  • jdbc(java database connectivity):本身是由一组接口组成 , 可以使得Java编译来访问各种数据库
  • 无需自己实现接口,这些接口的实现类由第三方数据库厂商实现

jdbc的核心

接口或类作用
DriverManager类创建数据库的连接
Connection 接口创建一个连接对象
Statement 接口代表一条发送给服务器的sql语句
ResultSet接口代表从服务器返回的查询结果集
  1. jdbc四个参数
    • 用户名
    • 密码
    • 驱动类的全名 : com.mysql.jdbc.Driver
    • 连接字符串的url : mysql8.0以前 jdbc:mysql://真实ip:3306/database_name mysql8.0以后:jdbc:mysql://真实ip:3306/database_name?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=true
DriverManager 类 ,Connection接口 ,Statement接口

DriverManager类

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;

public class Demo01Jdbc {
    public static void main(String[] args) throws SQLException {
    //mysql8.0以后使用的url
        String url = "jdbc:mysql://localhost:3306/database_name?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=true";
        Connection connection = DriverManager.getConnection(url, "root", "root");
        System.out.println(connection);

//DriverManager内部静态方法
//  public static Connection getConnection(String url, java.util.Properties info)
//  public static Connection getConnection(String url,String user, String password)
//  public static Connection getConnection(String url)
//properties方式连接
//之所以可以使用properties是因为在DriverManager.getConnection()中也是创建properties对象
//只这里的properties对象通过setProperties()重新设置的键值对元素
//而getConnection()中设置好了键元素,只要求用户传入值即可

        Properties properties = new Properties();
        properties.setProperty("user","root");
        properties.setProperty("password","root");

        Connection connection1 = DriverManager.getConnection(url, properties);
        System.out.println(connection1);
    }
}


  • 为了切合java思想可以将封装为:
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.SQLException;

public class JDBClink {
//连接本地jdbc:mysql://localhost:3306/database_name?...    可以省略为jdbc:mysql:///database_name?...
    private static final String url = "jdbc:mysql:///database_name?serverTimezone=UTC&characterEncoding=utf8&useUnicode=true&useSSL=true";
    private static final String user = "root";
    private static final String password = "root";
    public static Connection connection;

    public static Connection getConnection() {
        return connection;
    }
    
    public static void startlink(){
        try {
            connection = DriverManager.getConnection(url, user, password);
            System.out.println(connection);
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
    }
    
    
    public static void end(){
        try {
            connection.close();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
    }
}


Statement接口

接口中的方法描述
boolean execute(String sql)执行任意sql语句,如果返回一个resultSet对象,则表示true,如果返回更新数或不存在任何结果,则为false
int executeUpdate(String sql)用于执行增删改,返回受影响的行数
ResultSet executeQuery(String sql)用于执行查询操作,查询到的结果集

创建表格:

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

public class Demo2DDL {
    public static void main(String[] args) throws SQLException {
        String sql = "create table stu(id int primary key auto_increment,name varchar(20) not null,sex boolean,birthday date)";

        JDBClink.startlink();
        Connection connection = JDBClink.getConnection();
        Statement statement = connection.createStatement();
        statement.execute(sql);
        statement.close();
        JDBClink.end();
        System.out.println("创建表成功");
    }
}

插入数据:

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

public class Demo02Insert {
    public static void main(String[] args) throws SQLException {

        JDBClink.startlink();
        Connection connection = JDBClink.getConnection();
        Statement statement = connection.createStatement();
        //更新和删除同样在这里操作
        int row = statement.executeUpdate("insert into stu (name,sex,birthday) values ('张三',1,'1999-2-10')," +
                "('李四',1,'1999-2-10'),('王五',1,'1999-2-10'),('赵六',1,'1999-2-10')");
        System.out.println(row);
        statement.close();
        JDBClink.end();
    }
}

对应stu表的实体类:

import java.util.Date;
public class Stu {
    private int id;
    private String name;
    private boolean sex;
    private Date birthday;

    public Stu() {
    }

    public Stu(int id, String name, boolean sex, Date birthday) {
        this.id = id;
        this.name = name;
        this.sex = sex;
        this.birthday = birthday;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public boolean isSex() {
        return sex;
    }

    public void setSex(boolean sex) {
        this.sex = sex;
    }

    public Date getBirthday() {
        return birthday;
    }

    public void setBirthday(Date birthday) {
        this.birthday = birthday;
    }

    @Override
    public String toString() {
        return "Stu{" +
                "id=" + id +
                ", name='" + name + ''' +
                ", sex=" + sex +
                ", birthday=" + birthday +
                '}';
    }
}

查询:

import com.pojo.Stu;

import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.linkedList;

public class Demo03Select {
    public static void main(String[] args) throws SQLException {

        JDBClink.startlink();
        Connection connection = JDBClink.getConnection();

        Statement statement = connection.createStatement();
        ResultSet resultSet = statement.executeQuery("select * from stu");

        linkedList stus = new linkedList<>();
        Stu stu = new Stu();
        while (resultSet.next()){
            stu.setId(resultSet.getInt("id"));
            stu.setName(resultSet.getString("name"));
            stu.setSex(resultSet.getBoolean("sex"));
            stu.setBirthday(resultSet.getDate("birthday"));
            stus.add(stu);
        }

        for (Stu stus1 : stus) {
            System.out.println(stus1);
        }

        statement.close();
        JDBClink.end();
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/571670.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号