JavaWeb——JDBC

JavaWeb——JDBC_第1张图片

package jdbc;

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

public class demo {
    public static void main(String[] args) throws Exception {

        //注册驱动
        Class.forName("com.mysql.cj.jdbc.Driver");

        //注册方法
        String url = "jdbc:mysql://127.0.0.1:3306/itcast?" +
                "useSSL=false&&serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8";
        String username = "root";
        String password = "gyx.l123";
        Connection conn = DriverManager.getConnection(url, username, password);

        //定义SQL语句
        String sql = "insert into users values(4,'张六',30,'1','男',2)";

        //获取statement对象
        Statement sm = conn.createStatement();

        //执行sql
        int count = sm.executeUpdate(sql);//受影响的行数

        //处理结果
        System.out.println(count);

        //释放资源
        sm.close();
        conn.close();
    }
}

JDBC API详解

DriverManager

JavaWeb——JDBC_第2张图片

JavaWeb——JDBC_第3张图片

Connection

JavaWeb——JDBC_第4张图片

JavaWeb——JDBC_第5张图片

JavaWeb——JDBC_第6张图片

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

public class demo2 {
    public static void main(String[] args) throws Exception {
        //注册方法
        String url = "jdbc:mysql://127.0.0.1:3306/itcast?" +                "useSSL=false&&serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8";
        String username = "root";
        String password = "gyx.l123";
        Connection conn = DriverManager.getConnection(url, username, password);
        //定义SQL语句
        String sql1 = "update users set age = 30 where name = '张三'";
        String sql2 = "update users set age = 32 where name = '张四'";
        //获取statement对象
        Statement sm = conn.createStatement();
        try {
            //开启事务(手动提交)
            conn.setAutoCommit(false);
            //执行sql1,并处理结果
            int count1 = sm.executeUpdate(sql1);//受影响的行数
            System.out.println(count1);
            //执行sql2,并处理结果
            int count2 = sm.executeUpdate(sql1);//受影响的行数
            System.out.println(count1);
            //提交事务
            conn.commit();
        } catch (Exception e) {
            //回滚事务
            conn.rollback();
        }
        //释放资源
        sm.close();
        conn.close();
    }
}

Statement 

DDL语句不能用count的值判断是否执行成功,如"drop database username"
DML语句可以用count的值判断是否执行成功

JavaWeb——JDBC_第7张图片

ResultSet

JavaWeb——JDBC_第8张图片

 JavaWeb——JDBC_第9张图片

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

public class demo_ResultSet {
    public static void main(String[] args) throws Exception {
        //注册方法
        String url = "jdbc:mysql://127.0.0.1:3306/itcast?" +
                "useSSL=false&&serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8";
        String username = "root";
        String password = "gyx.l123";
        Connection conn = DriverManager.getConnection(url, username, password);
        //定义SQL语句
        //DDL语句不能用count的值判断是否执行成功,如"drop database username"
        //DML语句可以用count的值判断是否执行成功
        String sql = "select * from users";
        //获取statement对象
        Statement sm = conn.createStatement();
        //执行sql
        ResultSet res = sm.executeQuery(sql);
        //处理结果
        while (res.next()){
            int id = res.getInt(1);
            String name = res.getString(2);
            int age = res.getInt(3);
            String gender = res.getString(4);
            int dep = res.getInt(5);
            System.out.println(id+"\t"+name+"\t"+age+"\t"+gender+"\t"+dep);
        }
        //释放资源
        res.close();
        sm.close();
        conn.close();
        /*
        1	张三	30	男	1
        2	张四	28	男	2
        3	张五	22	女	3
        4	张六	30	男	2
        5	王六	28	男	1
        6	王五	28	男	1
         */
    }
}

 JavaWeb——JDBC_第10张图片

import pojo.users;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import java.util.ArrayList;

public class demo_ResultSet2 {
    public static void main(String[] args) throws Exception {
        //注册方法
        String url = "jdbc:mysql://127.0.0.1:3306/itcast?" +
                "useSSL=false&&serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8";
        String username = "root";
        String password = "gyx.l123";
        Connection conn = DriverManager.getConnection(url, username, password);
        //定义SQL语句
        String sql = "select * from users";
        //获取statement对象
        Statement sm = conn.createStatement();
        //执行sql
        ResultSet res = sm.executeQuery(sql);
        //处理结果
        ArrayList arr = new ArrayList();
        while (res.next()){
            //创建对象
            users u =new users();
            //获取数据
            int id = res.getInt(1);
            String name = res.getString(2);
            int age = res.getInt(3);
            String gender = res.getString(4);
            int dep = res.getInt(5);
            //给对象赋值
            u.setId(id);
            u.setName(name);
            u.setAge(age);
            u.setGender(gender);
            u.setDep(dep);
            //把对象加入集合
            arr.add(u);
        }
        //打印集合
        System.out.println(arr);
        //释放资源
        res.close();
        sm.close();
        conn.close();
    }
}



public class users {
    private int id;
    private String name;
    private int age;
    private String gender;
    private int dep;

    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 int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gendert) {
        this.gender = gendert;
    }

    public int getDep() {
        return dep;
    }

    public void setDep(int dep) {
        this.dep = dep;
    }

    @Override
    public String toString() {
        return "users{" +
                "id=" + id +
                ", name='" + name + '\'' +
                ", age=" + age +
                ", gendert='" + gender + '\'' +
                ", dep=" + dep +
                '}';
    }
}

PreparedStatement

JavaWeb——JDBC_第11张图片

 登录案例:

JavaWeb——JDBC_第12张图片

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

public class demo_PreparedStatement {
    public static void main(String[] args) throws Exception {
        //注册方法
        String url = "jdbc:mysql://127.0.0.1:3306/itcast?" +
                "useSSL=false&&serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8";
        String username = "root";
        String password = "gyx.l123";
        Connection conn = DriverManager.getConnection(url, username, password);

        //接收用户输入的用户名和密码
        String name = "小红";
        String psw = "123";

        //String name = "3326988";
        //String psw = "'or '1'='1";

        //定义SQL语句
        String sql = "select * from username_password where username = '" + name + "' and password='" + psw + "'";

        //获取statement对象
        Statement sm = conn.createStatement();

        //执行sql
        ResultSet res = sm.executeQuery(sql);

        //判断是否登陆成功
        if(res.next()){//res有数据,返回true
            System.out.println("登陆成功");
        }else{
            System.out.println("登录失败");
        }
        
        //释放资源
        res.close();
        sm.close();
        conn.close();
    }
}

JavaWeb——JDBC_第13张图片

import java.sql.*;

public class demo_PreparedStatement {
    public static void main(String[] args) throws Exception {
        //注册方法
        String url = "jdbc:mysql://127.0.0.1:3306/itcast?" +
                "useSSL=false&&serverTimezone=UTC&useUnicode=true&characterEncoding=UTF-8";
        String username = "root";
        String password = "gyx.l123";
        Connection conn = DriverManager.getConnection(url, username, password);

        //接收用户输入的用户名和密码
        String name = "小红";
        String psw = "123";

        //定义SQL语句
        String sql = "select * from username_password where username = ? and password = ?";

        //获取 PreparedStatement对象,并设置 ? 的值
        PreparedStatement ps = conn.prepareStatement(sql);
        ps.setString(1, name);
        ps.setString(2, psw);

        //执行sql
        ResultSet res = ps.executeQuery();

        //判断是否登陆成功
        if (res.next()) {//res有数据,返回true
            System.out.println("登陆成功");
        } else {
            System.out.println("登录失败");
        }

        //释放资源
        res.close();
        ps.close();
        conn.close();
    }
}

JavaWeb——JDBC_第14张图片

数据库连接池Druid

 JavaWeb——JDBC_第15张图片

JavaWeb——JDBC_第16张图片

 JavaWeb——JDBC_第17张图片

import com.alibaba.druid.pool.DruidDataSourceFactory;

import javax.sql.DataSource;
import java.io.FileInputStream;
import java.sql.Connection;
import java.util.Properties;

public class druid_Demo {
    public static void main(String[] args) throws Exception {
        //1.导jar包

        //2.配置文件

        //3.加载配置文件
        Properties prop = new Properties();
        prop.load(new FileInputStream("jdbc-demo/src/druid.properties"));
        //System.out.println(System.getProperty("user.dir"));找当前路径的方法

        //4.获取连接池对象
        DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);

        //5.获取数据库连接 Connection
        Connection conn = dataSource.getConnection();

        System.out.println(conn);

    }
}

你可能感兴趣的:(java)