【浅学Java】JDBC编程流程

1. 创建数据源——DataSouce

//1.创建数据源
        DataSource dataSource = new MysqlDataSource();
        ((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8&useSSL=false");
        ((MysqlDataSource)dataSource).setUser("root");
        ((MysqlDataSource)dataSource).setPassword("06095213");//要和自己设定的数据库密码一致

2. 建立连接——Connection

Connection connection = dataSource.getConnection();

3. 拼装SQL——PreparedStatement

String sql = "insert into student values(?,?,?);";// ? 表示占位
//此处光是一个 String 类型的sql还不行,需要把这个String包装成一个“语句对象”
PreparedStatement statement = connection.prepareStatement(sql);

int id = scanner.nextInt();
String name = scanner.next();
int Class = scanner.nextInt();
//进行替换,下标从 1 开始
statement.setInt(1,id);
statement.setString(2,name);
statement.setInt(3,Class);
  1. ? 表示占位
  2. PreparedStatement不仅能将字符串风格的sql转成JDBC里面的对象,还能实现动态拼接

4. 执行SQL——executeUpdate()或者executeQuery ()

//返回值 ret 表示影响到了几行
int ret = statement.executeUpdate();
  1. 当SQL中使用的是insert,delete,update时,使用executeUpdate()方法
  2. 当SQL中使用select时,使用executeQuery ()方法

5. 释放资源——close()

statement.close();
connection.close();

注意:释放资源是由顺序的,先创建的后释放,后创建的先释放,就好比:打开冰箱,拉出抽屉,取出东西,然后推回抽屉,然后关上冰箱门。

代码实例——插入数据

public class TestJDBC {
    public static void main(String[] args) throws SQLException {//处理getConnection()的异常
        Scanner scanner = new Scanner(System.in);
        //1.创建DataSource对象,描述数据库对象在哪里
        DataSource dataSource = new MysqlDataSource();
        //DataSource来自于JDBC带的接口
        //MysqlDataSource 来自于刚才下载好的 mysql 的jar包,这里提供以一个具体实现 DataSource 的类。
        //设置数据库所在的地址
        ((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8&useSSL=false");//(MysqlDataSource)dataSource属于向下转型,将父类的引用转换成子类
        //设置数据库的用户名
        ((MysqlDataSource)dataSource).setUser("root");//root是mysql默认自带的管理员用户
        //设置登录数据库的密码
        ((MysqlDataSource)dataSource).setPassword("06095213");

        //2.让代码和数据库服务器建立链接
        Connection connection = dataSource.getConnection();

        //3.拼接SQL
        int id = scanner.nextInt();
        String name = scanner.next();
        int Class = scanner.nextInt();
        String sql = "insert into student values(?,?,?);";// ? 表示占位
        //此处光是一个 String 类型的sql还不行,需要把这个String包装成一个“语句对象”
        PreparedStatement statement = connection.prepareStatement(sql);
        //PreparedStatement不仅能将字符串风格的sql转成JDBC里面的对象,还能实现动态拼接

        //进行替换,下标从 1 开始
        statement.setInt(1,id);
        statement.setString(2,name);
        statement.setInt(3,Class);
        System.out.println("statement:"+statement);

        //4.执行 SQL
        //SQL 当中如果使用 insert update delete ,都使用 executeUpdate() 方法
        //SQL 当中如果是select,则使用 executeQuery ()方法;
        //返回值 ret 表示影响到了几行
        int ret = statement.executeUpdate();
        System.out.println(ret);

        //5.执行完SQL后,释放资源
        //注意:释放资源是有顺序的,先创建的后释放,后创建的先释放——————就好比:打开冰箱,拉开抽屉
        statement.close();
        connection.close();
    }
}

代码示例——删除数据

public class TestJDBCDelete {
    public static void main(String[] args) throws SQLException {
        //删除数据库中的记录
        //让用户输入一个 id,根据id来删除

        //1.建立dataSource对象,描述数据库对象
        DataSource dataSource = new MysqlDataSource();
        ((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/test?characterEncoding=utf8&useSSL=false");
        ((MysqlDataSource)dataSource).setUser("root");
        ((MysqlDataSource)dataSource).setPassword("06095213");

        //2.建立链接
        Connection connection = dataSource.getConnection();

        //3.拼装sql
        String sql = "delete from student where id=?";
        PreparedStatement statement = connection.prepareStatement(sql);
        Scanner scanner = new Scanner(System.in);
        int id= scanner.nextInt();
        statement.setInt(1,id);
        System.out.println("statement"+statement);

        //4.执行sql
        int ret = statement.executeUpdate();
        System.out.println(ret);

        //5.关闭资源
        statement.close();
        connection.close();
    }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值