当前位置: 首页 > news >正文

手机静态网站建设课程设计报告网站关键词百度指数

手机静态网站建设课程设计报告,网站关键词百度指数,杭州seo网站优化,广州互联网网站建设1 JDBC简介 1.1 前言 当谈论JDBC时,我们可以将其看作是一种用于Java程序与数据库进行通信的方式。如果你想编写一个Java程序,并且希望能够连接到数据 库、执行查询或更新数据,JDBC就是你需要的工具。 JDBC提供了一组类和接口,…

1 JDBC简介

1.1 前言

当谈论JDBC时,我们可以将其看作是一种用于Java程序与数据库进行通信的方式。如果你想编写一个Java程序,并且希望能够连接到数据

库、执行查询或更新数据,JDBC就是你需要的工具。

JDBC提供了一组类和接口,可以帮助我们连接到数据库、执行SQL语句(例如查询、插入、更新和删除数据),并获取执行结果。

1.2 概念

JDBC(Java DataBase Connectivity :java数据库连接技术)是一种用于执行SQL语句的Java API,可以为多种关系型数据库提供统一访问,它是由一组用Java语言编写的类和接口组成的。

1.3 作用

可以通过java代码操作数据库。通过Java连接广泛的数据库,并对表中数据执行增、删、改、查等操作。

实质就是java官方提供的一套规范(接口),用于帮助开发人员快速实现不同关系型数据库的连接。

2 JDBC入门

2.1 流程

第一步:编写Java代码

第二步:Java代码将SQL发送到MySQL服务端

第三步:MySQL服务端接收到SQL语句并执行该SQL语句

第四步:将SQL语句执行的结果返回给Java代码

2.2 步骤

  • 创建工程,导入驱动jar包

  • 注册驱动

  • 获取连接

    Java代码需要发送SQL给MySQL服务端,就需要先建立连接

  • 定义SQL语句

  • 获取执行SQL对象

    执行SQL语句需要SQL执行对象,而这个执行对象就是Statement对象

  • 执行SQL

  • 处理返回结果

  • 释放资源

import java.sql.*;public class JDBCDemo {public static void main(String[] args) throws Exception {
//        1.注册驱动Class.forName("com.mysql.jdbc.Driver");//        2.获取连接String url = "jdbc:mysql://127.0.0.1:3307/student?useSSL=false";String username = "root";String password = "root";Connection Conn = DriverManager.getConnection(url, username, password);//        3.定义SQL语句String sql = "UPDATE `user` SET adress = 200 WHERE id = 1";//        4.获取执行SQL的对象 statementStatement stmt = Conn.createStatement();//        5.执行SQLint count = stmt.executeUpdate( sql );//受影响的行数//        6.处理结果System.out.println(count);//        7.释放资源stmt.close();Conn.close();}
}

3 JDBC API详解

3.1 DriverManager

DriverManager(驱动管理类)作用:

  • 注册驱动

  • 获取数据库连接

public class JDBCDemo2_DriverManager {public static void main(String[] args) throws Exception {//1. 注册驱动//Class.forName("com.mysql.jdbc.Driver");//2. 获取连接:如果连接的是本机mysql并且端口是默认的 3306 可以简化书写String url = "jdbc:mysql://127.0.0.1:3307/db1?useSSL=false";String username = "root";String password = "root";Connection conn = DriverManager.getConnection(url, username, password);//3. 定义sqlString sql = "update account set money = 2000 where id = 1";//4. 获取执行sql的对象 StatementStatement stmt = conn.createStatement();//5. 执行sqlint count = stmt.executeUpdate(sql);//受影响的行数//6. 处理结果System.out.println(count);//7. 释放资源stmt.close();conn.close();}
}

3.2 Connection

Connection中定义了3个对应的方法:

  • 开启事务

  • 提交事务

  • 回滚事务

/*** JDBC API 详解:Connection*/
public class JDBCDemo3_Connection {public static void main(String[] args) throws Exception {//1. 注册驱动//Class.forName("com.mysql.jdbc.Driver");//2. 获取连接:如果连接的是本机mysql并且端口是默认的 3306 可以简化书写String url = "jdbc:mysql://127.0.0.1:3307/db1?useSSL=false";String username = "root";String password = "root";Connection conn = DriverManager.getConnection(url, username, password);//3. 定义sqlString sql1 = "update account set money = 3000 where id = 1";String sql2 = "update account set money = 3000 where id = 2";//4. 获取执行sql的对象 StatementStatement stmt = conn.createStatement();try {// ============开启事务==========conn.setAutoCommit(false);//5. 执行sqlint count1 = stmt.executeUpdate(sql1);//受影响的行数//6. 处理结果System.out.println(count1);int i = 3/0;//5. 执行sqlint count2 = stmt.executeUpdate(sql2);//受影响的行数//6. 处理结果System.out.println(count2);// ============提交事务==========//程序运行到此处,说明没有出现任何问题,则需求提交事务conn.commit();} catch (Exception e) {// ============回滚事务==========//程序在出现异常时会执行到这个地方,此时就需要回滚事务conn.rollback();e.printStackTrace();}//7. 释放资源stmt.close();conn.close();}
}

3.3 Statement

Statement对象的作用就是用来执行SQL语句。而针对不同类型的SQL语句使用的方法也不一样。

  • 执行DDL、DML语句

  • 执行DQL语句

  • 执行DML语句

    /*** 执行DML语句* @throws Exception*/
    @Test
    public void testDML() throws  Exception {//1. 注册驱动//Class.forName("com.mysql.jdbc.Driver");//2. 获取连接:如果连接的是本机mysql并且端口是默认的 3306 可以简化书写String url = "jdbc:mysql://127.0.0.1:3307/db1?useSSL=false";String username = "root";String password = "root";Connection conn = DriverManager.getConnection(url, username, password);//3. 定义sqlString sql = "update account set money = 3000 where id = 1";//4. 获取执行sql的对象 StatementStatement stmt = conn.createStatement();//5. 执行sqlint count = stmt.executeUpdate(sql);//执行完DML语句,受影响的行数//6. 处理结果//System.out.println(count);if(count > 0){System.out.println("修改成功~");}else{System.out.println("修改失败~");}//7. 释放资源stmt.close();conn.close();
    }
    
  • 执行DDL语句

    /*** 执行DDL语句* @throws Exception*/
    @Test
    public void testDDL() throws  Exception {//1. 注册驱动//Class.forName("com.mysql.jdbc.Driver");//2. 获取连接:如果连接的是本机mysql并且端口是默认的 3306 可以简化书写String url = "jdbc:mysql:///db1?useSSL=false";String username = "root";String password = "1234";Connection conn = DriverManager.getConnection(url, username, password);//3. 定义sqlString sql = "drop database db2";//4. 获取执行sql的对象 StatementStatement stmt = conn.createStatement();//5. 执行sqlint count = stmt.executeUpdate(sql);//执行完DDL语句,可能是0//6. 处理结果System.out.println(count);//7. 释放资源stmt.close();conn.close();
    }
    

3.4 ResultSet

  • 代码实现

    /*** 查询account账户表数据,封装为Account对象中,并且存储到ArrayList集合中* 1. 定义实体类Account* 2. 查询数据,封装到Account对象中* 3. 将Account对象存入ArrayList集合中*/
    @Test
    public void testResultSet2() throws  Exception {//1. 注册驱动//Class.forName("com.mysql.jdbc.Driver");//2. 获取连接:如果连接的是本机mysql并且端口是默认的 3306 可以简化书写String url = "jdbc:mysql://127.0.0.1:3307/db1?useSSL=false";String username = "root";String password = "root";Connection conn = DriverManager.getConnection(url, username, password);//3. 定义sqlString sql = "select * from account";//4. 获取statement对象Statement stmt = conn.createStatement();//5. 执行sqlResultSet rs = stmt.executeQuery(sql);// 创建集合List<Account> list = new ArrayList<>();// 6.1 光标向下移动一行,并且判断当前行是否有数据while (rs.next()){Account account = new Account();//6.2 获取数据  getXxx()int id = rs.getInt("id");String name = rs.getString("name");double money = rs.getDouble("money");//赋值account.setId(id);account.setName(name);account.setMoney(money);// 存入集合list.add(account);}System.out.println(list);//7. 释放资源rs.close();stmt.close();conn.close();
    }
    

3.5 PreparedStatement

  • java测试代码如下:

     /*** PreparedStatement原理* @throws Exception*/
    @Test
    public void testPreparedStatement2() throws  Exception {//2. 获取连接:如果连接的是本机mysql并且端口是默认的 3306 可以简化书写// useServerPrepStmts=true 参数开启预编译功能String url = "jdbc:mysql://127.0.0.1:3307/db1?useSSL=false&useServerPrepStmts=true";String username = "root";String password = "root";Connection conn = DriverManager.getConnection(url, username, password);// 接收用户输入 用户名和密码String name = "zhangsan";String pwd = "' or '1' = '1";// 定义sqlString sql = "select * from tb_user where username = ? and password = ?";// 获取pstmt对象PreparedStatement pstmt = conn.prepareStatement(sql);Thread.sleep(10000);// 设置?的值pstmt.setString(1,name);pstmt.setString(2,pwd);ResultSet rs = null;// 执行sqlrs = pstmt.executeQuery();// 设置?的值pstmt.setString(1,"aaa");pstmt.setString(2,"bbb");// 执行sqlrs = pstmt.executeQuery();// 判断登录是否成功if(rs.next()){System.out.println("登录成功~");}else{System.out.println("登录失败~");}//7. 释放资源rs.close();pstmt.close();conn.close();
    }
    
http://www.yayakq.cn/news/370475/

相关文章:

  • 网站备案后名称怎么改做网彩网站
  • 手机网站开发价格网站建设维护的方案
  • 接网站开发的公司电话十大看免费行情的软件下载大全
  • 新手做网站的注意事项河南app软件开发价位
  • 网站开发如何做下载支付主备网站服务器自动切换 win2003
  • 山石网站超市郑州人才网站
  • 陶瓷企业 瓷砖地板公司网站建设哪个网站可以哪些企业做哪些产品
  • iss里面的默认网站开启不了提示服务器无响应.怎么开启合肥关键词网站排名
  • 如何选择赣州网站建设德城区城乡建设局网站
  • 手机微网站怎么制作的sqlite做网站
  • 唐山建设企业网站wordpress 文章点赞
  • 网站建设谈业务要知道什么ppt模板怎么做 下载网站
  • 金融 网站建设合肥网站建设找佳达
  • dedecms做门户网站大学生做网站的流程
  • 网站建设和备案自己做网站系统教程
  • 做网站多少钱大概博星卓越网站建设实验代码
  • 网站封装wordpress 例子
  • 做爰视频免费的网站最近国际重大新闻
  • 陕西做网站公司wordpress 自动替换
  • 江门手工外发加工网北京seo优化化
  • 北京视频直播网站建设网站seo设计方案案例
  • 河南创达建设工程管理有限公司网站在wordpress集成支付宝
  • 北京工信部网站备案查询python游戏开发
  • 网站建设 外文文献现在推广平台哪家最好
  • 网站的记住密码功能怎么做什么软件引流客源最快
  • c2c网站的类型北京网站如何制作
  • 网站制作企业对比西安千度网站建设
  • 企业网站管理系统 php淘宝卖家中心登录入口
  • 电影资源网站开发标书制作培训机构
  • 以家乡为主题做网站网站备案密码通管局