Day_31_JDBC

目录

基础:

PreparedStatement用法:是statement的子类,多用于更新数据

Properties的设置和应用

比较好的案例:

工具类Util:

 连接数据库:


 

基础:

 //第1步:注册驱动 (仅仅做一次)
        Class.forName("com.mysql.jdbc.Driver");
        //第2步:建立连接(Connection)
        Connection connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/text", "root", "5920536zj");

        //第3步:创建运行SQL的语句对象(Statement)应该是连接器
        //两种用法,查询和更新
        String sql1 = "select * from student_";
        String sql2="delete from student_ where id=2 ";

        Statement statement = connection.createStatement();
        //第4步:运行语句,连接器开始执行相应的语句
        //查询方法
        ResultSet resultSet1 = statement.executeQuery(sql1);
        //更新方法
        int resultSet2 = statement.executeUpdate(sql2);

        //第5步:处理运行结果(ResultSet)
        while (resultSet1.next()) {
            //resultSet.getString() 可以放两种参数,第一是int型的索引,第二种就是你所查询的获得的结果集的列的列名
            System.out.println(resultSet1.getString(1));
            System.out.println(resultSet2);
        }
        //第6步:释放资源
        resultSet1.close();
        statement.close();
        connection.close();

 

PreparedStatement用法:是statement的子类,多用于更新数据

 String sql = "insert into student_ values (?,?,?)";
            preparedStatement = connection.prepareStatement(sql);
            //setInt(1, 10);向你设置的问号的位置添加值
            preparedStatement.setInt(1, 10);
            preparedStatement.setString(2, "来哦");
            preparedStatement.setInt(3, 9);

 

Properties的设置和应用

 //建立信息对象
        Properties properties = new Properties();
        //建立连接
        //class.getResourceAsStream() 获取此包下的资源
        properties.load(JdbcUtil.class.getClassLoader().getResourceAsStream("JDBC_information.properties"));
        //获取信息的方法
        String url = properties.getProperty("url");
        String name = properties.getProperty("name");
        String password = properties.getProperty("password");


        //文件中直接写,不要加分号
        //url=jdbc:mysql://127.0.0.1:3306/text
        //name=root
        //password=5920536zj

 

 双引号外面的单引号的作用是:让传入的变量变成字符串

" + name + ":可以看做固定写法,将获取的变量字符转化为常量

        String sql = "update student_ set student_name='00000'where student_name='" + name + "'";

比较好的案例:

工具类Util:

package main;

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

public class JdbcUtil {
    //打开连接包装
    public static Connection getconnection() throws ClassNotFoundException, IOException, SQLException {
        //第1步:注册驱动 (仅仅做一次)
        Class.forName("com.mysql.jdbc.Driver");
        //建立信息对象
        Properties properties = new Properties();
        //建立连接
        //class.getResourceAsStream() 获取此包下的资源
        properties.load(JdbcUtil.class.getClassLoader().getResourceAsStream("JDBC_information.properties"));
        //获取信息的方法
        String url = properties.getProperty("url");
        String name = properties.getProperty("name");
        String password = properties.getProperty("password");
        //第2步:建立连接(Connection)
        return DriverManager.getConnection(url, name, password);
    }

    //关闭资源包装
    //    AutoCloseable   是前面三个类的父类。这里用了多态
    public static void clossResulSet(AutoCloseable autoCloseable) {
        try {
            //判断是否为空
            if (autoCloseable != null)
                autoCloseable.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

 连接数据库:

package main;
import java.sql.Connection;
import java.sql.PreparedStatement;

public class Jdbc_better {
    public static void main(String[] args) {
        //先定义,防止范围不够
        Connection connection = null;
        PreparedStatement preparedStatement = null;
        try {
            //建立连接
            connection = JdbcUtil.getconnection();
            //写sql相应的语句
            String sql = "insert into student_ values (?,?,?)";
            preparedStatement = connection.prepareStatement(sql);
            //setInt(1, 10);向你设置的问号的位置添加值
            preparedStatement.setInt(1, 10);
            preparedStatement.setString(2, "来哦");
            preparedStatement.setInt(3, 9);
            int count = preparedStatement.executeUpdate();
            System.out.println("添加了" + count + "条数据");
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            //关闭资源
            JdbcUtil.clossResulSet(preparedStatement);
            JdbcUtil.clossResulSet(connection);
        }
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值