(javaweb-10) JDBC

JDBC固定步骤

1、 加载驱动
2、 连接数据库
3、 向数据库发送SQL的对象Statement:CRUD
4、 编写SQL(根据业务,不同的SQL)
5、 执行SQL
6、 关闭连接 释放资源

查询 executeQuery

 public static void main(String[] args) throws Exception {
        String url ="jdbc:sqlserver://localhost:1433;databaseName=test";

        //1、加载驱动
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
        //2、连接数据库
        Connection conn = DriverManager.getConnection(url, "sa", "lnsfxy2018324410");
        //3、向数据库发送SQL的对象statement PreparedStatement :CRUD
        Statement statement = conn.createStatement();
        //4、编写sql
        String sql_sel="select * from tb_python ;";
        //5、执行查询sql 返回结果集
        ResultSet rs = statement.executeQuery(sql_sel);
        while (rs.next()){
            System.out.println("ID="+rs.getInt(1));
            System.out.println("Name="+rs.getString(2));
            System.out.println("Tel="+rs.getInt(3));
            System.out.println("Address="+rs.getString(4));
        }
        //6、关闭连接 释放资源(先开后关)
        rs.close();
        statement.close();
        conn.close();
    }

修改删除 executeUpdate

import java.sql.*;

public class testJDBC {
    public static void main(String[] args) throws Exception {
        String url ="jdbc:sqlserver://localhost:1433;databaseName=test";

        //1、加载驱动
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
        //2、连接数据库
        Connection conn = DriverManager.getConnection(url, "sa", "lnsfxy2018324410");
        String sql_del =" DELETE from tb_python where id=?";
        PreparedStatement pstm = conn.prepareStatement(sql_del);
        pstm.setInt(1,2);   //给第一个问号赋值
        int i = pstm.executeUpdate(sql_del);
        if (i>0){
            System.out.println("修改删除成功");
        }
        //6、关闭连接 释放资源(先开后关)
        statement.close();
        conn.close();
    }
}

导依赖包

	<dependencies>
        <dependency>
            <groupId>com.microsoft.sqlserver</groupId>
            <artifactId>mssql-jdbc</artifactId>
            <version>6.2.1.jre8</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

在这里插入图片描述
在这里插入图片描述

事务

要么都成功,要么都失败
ACID原则:保证数据的安全性
例子:转账金额
A ----> B
A给B转100 A-100 ,B+100
为了数据安全性,需要事务保证 确保程序无错误,转账成功,

public static void main(String[] args){
        String url ="jdbc:sqlserver://localhost:1433;databaseName=test";
        Connection conn=null;
        //1、加载驱动
        try {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            //2、连接数据库
            conn = DriverManager.getConnection(url, "sa", "lnsfxy2018324410");

            //3、开启事务 false开启
            conn.setAutoCommit(false);

            //4、执行第一个sql
            String sql1="update account set money=money-100 where id='1'";
            conn.prepareStatement(sql1).executeUpdate();
			//制造错误,出错,则进入回滚回到初始化,第4步等于没执行
			int a=1/0;
			
            //5、第二个sql
            String sql2="update account set money=money+100 where id='2'";
            conn.prepareStatement(sql2).executeUpdate();

            //若无错误、则提交事务
            conn.commit();
        } catch (Exception e) {
            try {
                conn.rollback();
            } catch (SQLException e1) {
                e1.printStackTrace();
            }
            e.printStackTrace();
        }



    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值