JDBC入门

1、jdbc是什么?

        是厂商定义的一种接口,用来连接各种数据库。

2、jdbc中的类和接口:

        DriverManager类:连接数据库:DriverManager.getConnection(url,username,password);

        Connection接口:代表实现对象。

        Statement接口:发送sql语句给服务器。用于执行静态sql语句并返回生成的对象。

                        Statement接口的方法:

                               1. int executeUpdate(String sql):

                                          a.发送DML语句对数据库进行增删改操作:insert 、update 、delete。

                                          b.返回值:int类型,对数据库影响的行数。

                                2.ResultSet executeQuery(String sql)

                                          a.发送DQL语句对数据库进行查找操作:select。

                                          b.返回值:查找的结果

2、jdbc的连接:

                四个参数:url,username,password,driverClassName

        1、普通方法:

package day01_JDBC.ClassWork;

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

public class JDBCcollection {
    public static void main(String[] args) throws SQLException {
        String url="jdbc:mysql://127.0.0.1:3306/xx3?serverTimezone=GMT";
        Connection connection = DriverManager.getConnection(url,"root","jinjie3015035");
    }
}

        2、做成一个工具类:

package day01_JDBC.ClassWork;

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;

public class JDBCUtils {
    private static String driverClassName;
    private static String url;
    private static String username;
    private static String password;
    static {
        Properties properties=new Properties();
        try {//加载文件
            properties.load(JDBCUtils.class.getResourceAsStream("qwe.properties"));
        } catch (IOException e) {
            e.printStackTrace   ();
        }
        //赋值
        driverClassName=properties.getProperty("driverClassName");
        url=properties.getProperty("url");
        username=properties.getProperty("username");
        password=properties.getProperty("password");
    }

    public static Connection getConnection() {
        Connection connection=null;
        try {
            Class.forName(driverClassName);
            connection= DriverManager.getConnection(url,username,password);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return connection;
    }
    public static void close(Connection connection){
        try {
            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
    public static void close(Connection connection, Statement statement) {
        try {
            statement.close();
            connection.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}
//调用Connection connection=JDBCUtils.getConnection();

3、PreparedSatement接口

        PreparedSatement接口中的方法:

                int executeUpdate():执行DML语句,增删改操作,返回影响行数

                ResultSet executeQuery():执行DQL语句,查询操作,返回结果集。

package day01_JDBC;

import java.sql.*;

public class Demo3 {
    public static void main(String[] args) {
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        String url = "jdbc:mysql://127.0.0.1:3306/xx3?serverTimezone=GMT";
        try {
            Connection connection =DriverManager.getConnection(url,"root","jinjie3015035");
            System.out.println(connection);

            //获得statetment对象
            Statement statement =connection.createStatement();
            ResultSet rs= statement.executeQuery("select *from x3");

            while (rs.next()){
                int id=rs.getInt(1);
                System.out.println(id+",");
                String nam=rs.getString(2);
                System.out.println(nam);
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}
package day01_JDBC;

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

public class Demo1 {
    public static void main(String[] args) {
        //加载驱动
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        //3、连接数据库   ?serverTimezone=GMT
        String url = "jdbc:mysql://127.0.0.1:3306/xx3?serverTimezone=GMT";

        try {
            Connection connection = DriverManager.getConnection(url, "root", "jinjie3015035");
            System.out.println(connection);
            //执行sql语句之前,需要把sql语句发送给服务器


            //4、获得一个Statement对象
            Statement statement = connection.createStatement();
            //5、执行sql

            /*
             * execute :DML、DQL、DDL 返回true或false   通常不用。
             * executeUpdate:DML、DDL。用于数据库的增删改:insert、update、delete。
             * executeQuery: 只有DQL才能用。查询;select。
             * */

//            statement.executeUpdate("create table X3(id int primary key auto_increment,nam varchar(20))");
//            statement.executeUpdate("insert into X3 value(1,'沃达丰')");
            statement.executeUpdate("insert into X3 value(2,'士大夫1')");//插入
//            statement.executeUpdate("insert into X3(id) value(6)");//插入
//            statement.executeUpdate("insert into X3(nam) value('哈哈哈哈')");//插入
//            statement.executeUpdate("insert into X3 value(3,'士大夫2')");//插入
//            statement.executeUpdate("insert into X3 value(4,'士大夫3')");//插入
//            statement.executeUpdate("insert into X3 value(5,'士大夫4')");//插入

            for (int i = 0; i < 2; i++) {
                System.out.println("请输入id");
//                Scanner scanner=
            }
//             statement.executeQuery("select *from x3");//查找
        } catch (SQLException e) {
            e.printStackTrace();
        }


    }
}

3、JDBC的事务管理

        1.开启事务:connection.setAutoCommit(false);

        2.回滚事务:rollback()

        3.提交事务:commit()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值