栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JDBC基本步骤

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JDBC基本步骤

JDBC 基本步骤:
//定义变量
Connection connection=null;
Statement statement=null;
ResultSet resultSet=null;
  1. 导入驱动jar包
    • libs > mysql-connector-java-5.1.6-bin.jar
  2. 注册驱动
Class.forName("com.mysql.jdbc.Driver");//异常抛出

3.获取数据库连接对象 Connection

connection = DriverManager.getConnection(
       "jdbc:mysql://localhost:3306/test", "root", "123456");

4.定义sql

String sql = "update student set age=35 where id=1";

5.获取执行sql语句对象 Statement

statement = conn.createStatement();

6.执行sql,接受返回结果

int count = stmt.executeUpdate(sql);
//resultSet = statement.executeQuery(sql);

7.处理结果

System.out.println(i);
                if (i>0){
                    System.out.println("添加成功");
                }else{
                    System.out.println("添加失败");
                }
 

8.释放资源

finally {
            if (connection!=null){
                try {
                    connection.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
            }
            if (statement!=null){
                try {
                    statement.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
            }
            if (resultSet!=null){
                try {
                    resultSet.close();
                } catch (SQLException throwables) {
                    throwables.printStackTrace();
                }
            }
        }
详解各个对象 1、DriverManager:驱动管理对象
  • 注册驱动
Class.forName("com.mysql.jdbc.Driver");
  • 获取数据库连接-
DriverManager.getConnection(url,user,password);
2、Connection:数据库连接对象
  • 获取sql执行对象-
statement = connection.createStatement();
  • 管理实务-
    • 提交事务:setAutoCommi(boolean autoCommit):调用该方法设置参数false,即开启事务
    • 提交试管:commit()
    • 回滚事务:rollback()
3、Statement:执行sql对象
  • 执行sql-
    • execute:可以执行任意的sql语句
    • executeUpdate:执行DML(intsert、update、delete)、DDl(create、alter、drop) 返回值:影响的行数,可以判断是否执行成功
4、ResultSet:结果集对象,封装查询结果
  • next():游标向下移动一行
  • getxxxx(参数):获取数据
    • xxxx:代表数据类型
    • (参数):
      • int :代表列的编号,从1开始 如:getString(1)
      • String:代表列的名称 如:getDouble(“name”)
5、PreparedStatement:执行sql对象增强版
  • sql注入问题:在拼接sql时,有一些sql的特殊关键字参与字符串的拼接,会造成安全问题

  • 解决sql注入问题:使用PreparedStatement对象来解决

  • 预编译的sql:参数使用?作为占位符

  • 定义sql

    • 注意:sql的参数使用?作为占位符。如:select * from user where username =? and password =?;
  • 获取执行sql语句的对象

    PreparedStatement pstmt = connection.prepareStatement(sql);
    
  • 给?赋值

    • 方法:setxxxx(参数1,参数2)
      • 参数1:?的位置编号 从1开始
      • 参数2:?的值
  • 执行sql

  • 后期使用PreparedStatement来完成增删查改

    • 可以防止sql注入
    • 效率更高
JDBC工具类 抽取JDBC工具类:JDBCUtils 释放资源:
public static void close(ResultSet rs ,Connection conn, Statement stmt)  {
    if (stmt!=null){
        try {
            stmt.close();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
    }
    if (conn!=null){
        try {
            conn.close();
        } catch (SQLException throwables) {
            throwables.printStackTrace();
        }
    }
}
连接数据库:(还有一种简单方法)
public static Connection getConnect() throws ClassNotFoundException, SQLException {
    try {
        Class.forName("com.mysql.jdbc.Driver");
        //获取数据库地址   定义连接数据库的url
        String url = "jdbc:mysql://localhost:3306/test";
        //获取用户名
        String username = "root";
        //获取密码
        String password = "123456";
        获取数据库连接
        conn = DriverManager.getConnection(url, username, password);
    }catch (Exception e){
        System.out.println("连接数据库失败");
        e.printStackTrace();
    }
    return conn;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/459451.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号