Java-JDBC

连接数据库—JDBC

1.0加载驱动程序

public class ConnectionDemo1
{
//    public static String DBRIVER="com.mysql.jdbc.Driver";

    public static void main(String[] args) {
        try {
            //加载一个驱动程序
            //Class.forName(DBRIVER);
            Class.forName("com.mysql.jdbc.Driver");
        }catch(Exception e)
        {
            e.printStackTrace();
        }
    }
}

1.1连接及关闭数据库

如果数据库驱动程序可以正常加载,下面可以使用DriverMannager类连接数据库。

在DriverMannager中,提供主要操作就是得到一个数据库连接,getConnection()方法就是取得一个连接对象,此方法返回的类型是Connection对象。

了解了DriverMannager类之后,再看Connection接口,因为所有数据库的操作都是从此接口开始。

连接数据库

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

/**
 * @Auther:jiang
 * @Date:2021/12/11-12-14:43
 * @Description:
 * @version:1.7
 */
public class ConnectionDemo1
{
    public static final String user="root";
    public static final String password="root";
    //最后面的是数据库的名称
    public static final String address="jdbc:mysql://localhost:3306/userdb1";
//    public static String DBRIVER="com.mysql.jdbc.Driver";

    public static void main(String[] args)
    {
        Connection conn=null;
        try {
            //加载一个驱动程序
            //Class.forName(DBRIVER);
            Class.forName("com.mysql.jdbc.Driver");
        }catch(ClassNotFoundException e)
        {
            e.printStackTrace();
        }
        try {
            conn= DriverManager.getConnection(address,user,password);
        }catch (SQLException e)
        {
            e.printStackTrace();
        }
        System.out.println(conn);
        try {
            conn.close(); //关闭数据库
        }catch (SQLException e)
        {
            e.printStackTrace();
        }
    }
}

程序的运行结果不为空,此时数据库已经连接成功!

1.2执行数据库的更新操作

数据库连接后,下面就可以对数据库进行操作了,如果要对数据库操作,需要用到Statement接口完成。
Statement接口的常用方法

序号方法描述
1executeUpdate(String sql)执行数据库更新的SQL语句,如果insert、update、delete等语句,返回更新的记录数
2executeQuery(String sql)执行数据库查询操作,返回一个结果集对象
3addBatch()增加应该待执行的SQL语句
4executeBatch()批量执行SQL语句
5close()关闭statement操作
6execute(String sql)执行SQL语句

1.2.1演示插入操作

String sql = "insert into users(id,name,password)" + "values(3,'chenshengfang','18278335677')";
        Connection conn = null;
        Statement st = null;
        conn = DriverManager.getConnection(url, user, passwd);
        st = conn.createStatement();
        st.executeUpdate(sql);
        st.close();
        conn.close();

1.3ResultSet接口

使用SQl中的select语句可以查询出数据库的全部内容,在JDBC的操作中数据库的所有查询记录将使用ResultSet进行接收,并使用ResultSet取得内容。

如果现在进行数据库的查询,则需要使用Statement接口定义的executeQuery()方法,此方法返回值为一个ResultSet对象,此方法存放着所有的查询结果。

ResultSet常用的方法

序号方法描述
1next()将指针转移到下一行
2getInt(int columnIndex)以整数的形式按列的编号取得指定列的内容
3getInt(String columnName)以整数形式取得指定列的内容
4getFloat(int clolumnIndex)以浮点数的形式按列的编号取得指定的内容
public class Tuser1
{
    public  static final String user="root";
    public  static final String password="root";
    public  static final String address="jdbc:mysql://localhost:3306/userdb1";

    public static  void main(String[] args) {
        Statement stmt=null;
        Connection conn=null;
        try {
            conn= DriverManager.getConnection(address,user,password);

        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
        ResultSet rs=null;
        String sql="select id,name,password from users";
        try {
            Class.forName("com.mysql.jdbc.Driver");
            stmt=conn.createStatement();
            rs=stmt.executeQuery(sql);
        }catch ( Exception e)
        {
            e.printStackTrace();
        }
        try {
            while(rs.next())
            {
                int id=rs.getInt("id");
                String name=rs.getString("name");
                String password=rs.getString("password");
                System.out.println(id);
                System.out.println(name);
                System.out.println(password);
                rs.close();
                stmt.close();
                conn.close();
            }
        }catch (Exception e)
        {
            e.printStackTrace();
        }

    }
}

1.4PreparedStatement接口

PreparedStatement是statement的接口,属于预处理操作,与statement不同的是,PreparedStatement在操作时,先在表中准备一条sql语句,但此时SQL语句的具体内容暂不设置,而是之后在设置。

  • 由于PreparedStatement对象已近预编译过了,所以执行速度要高于statement对象。
  • 在PreparedStatement中执行的SQL语句对于具体内容采用?的占位符形式。

PreparedStatement常用的方法

序号方法描述
1executeUpdate()执行设置的预处理SQL语句
2setInt(int parameterIndex,int x)执行数据库查询操作,返回ResultSet
3setFloat(int parameterIndex,float x)指定要设置的索引编号,并设置浮点数内容
4

示例:

   String sql = "insert into users(id,name,password)" + "values(?,?,?)";
        Class.forName(DBDRIVER)
        Connection conn = null;
        PreparedStatement ps=null;
        conn = DriverManager.getConnection(url, user, passwd);
        ps = conn.prepareStatement(sql);
        ps.setInt(1, 17);
        ps.setString(2, "tom");
        ps.setString(3, "123");
        ps.executeUpdate();
        ps.close();
        conn.close();

1.5总结图

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值