JDBC 连接数据库+留言板系统的设计与实现

 

目录

 

一、JDBC简单介绍

二、JDBC连接数据库.

1.直接代码演示:   显示五步驱动的代码+ 展示增删改查的操作

2.statement存在sql注入安全问题和刚才代码中的PreparedStatement

三、异常处理方式try-catch-finally

三、留言板系统


一、JDBC简单介绍

1. 定义:JDBC是由一组用Java语言编写的类和接口组成,用于实现Java应用程序与关系型数据库之间的连接和通信。

  2. 功能:JDBC提供了一套标准的接口,使得开发者可以使用Java语言来访问关系型数据库,而不必关心不同数据库之间的差异。通过JDBC,Java程序可以执行SQL查询、更新数据库中的数据、检索结果,并执行其他数据库管理操作。

二、JDBC连接数据库.

1.先准备好 数据库的 jar

jar 包:数据库的jar包,各个数据库厂商编写的连接自己数据库的代码。

在idea中新建一个目录lib ,把jar 包放入lib 中,然后右键 Add as Library(添加为库)

1.直接代码演示:   显示五步驱动的代码+ 展示增删改查的操作

package jdtest;

import com.mysql.jdbc.Driver;
import org.junit.Test;

import java.sql.*;

/**
 * @className: jdtest.JDBCTexst
 * @author: Zyl
 * @date: 2024/
 * @Version: 1.0
 * @description:
 */

public class JDBCTexst {
    public static void main(String[] args) throws Exception {
        //1  增加数据  调用的方法
 //       insert(4,"哈哈哈", 18, "翻斗花园");
        //2  删除数据    调用的方法
//        int d = delete(4);
//        System.out.println(d);
//        if(d==1){
//            System.out.println("删除成功");
//        }else{
//            System.out.println("删除失败");
//        }
        //3.  修改数据   调用的方法
//        int update = update("xixi", 25, "aaa", 1);
//        System.out.println(update);
//                if(update==1){
//            System.out.println("xiugai成功");
//        }else{
//            System.out.println("xiugai失败");
//        }
        //4.  查询数据   调用的方法
                 select();

    }

// 注意注意 ----------使用的是PreparedStatement   insert into  1


 /*   @Test
    public void test01()throws Exception{
        //1.加载驱动
        Class.forName("com.mysql.jdbc.Driver");
        //2.建立连接
        String url="jdbc:mysql://localhost:3306/jdbctest?characterEncoding=UTF-8&useSSL=false"; 

  
//jdbc:mysql(连接mysql数据库遵循的协议)   localhost:表示本地数据库  3306:mysql的端口号  mp:数据库名


        String username="root";//数据库账号
        String password ="root";//数据库密码
       
        Connection connection = DriverManager.getConnection(url, username, password);

        //3.预处理指令   增删改
        String sql="insert into student1 values(null,'李五',20,'武汉')";
       //获取执行sql语句的对象
        PreparedStatement  ps= connection.prepareStatement(sql);

        //4.执行
        int i=ps.executeUpdate();
        System.out.println(i);
        //5.关闭资源
        ps.close();
        connection.close();
    }

  //    注意注意--------------------   这个使用Statement   insert  into    2
    @Test
    public void test03()throws Exception{
        //1.加载驱动
        Class.forName("com.mysql.jdbc.Driver");
        //2.建立连接
        String url="jdbc:mysql://localhost:3306/aa?characterEncoding=UTF-8&useSSL=false";
        String username="root";
        String password ="root";
        Connection connection = DriverManager.getConnection(url, username, password);

        //3.预处理指令
        String sql="insert into books values(666666,'CMP','数据库导论','付勇','清华大学出版社',29)";
        Statement st= connection.createStatement();

        //4.执行    增删改
        int i=st.executeUpdate(sql);

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


//    注意注意 ----------使用的是PreparedStatement   select   3



    @Test
    public void test02() throws  Exception{
        Class.forName("com.mysql.jdbc.Driver");
        //2.建立连接
        String url="jdbc:mysql://localhost:3306/jdbctest?characterEncoding=UTF-8&useSSL=false";
        String username="root";
        String password ="root";
        Connection connection = DriverManager.getConnection(url, username, password);

        //3.预处理指令   查询的
        String sql= "select * from  student1";        //注意语句
        PreparedStatement  ps= connection.prepareStatement(sql);

        //4.执行
    //  注意语句,只有select 是 executeQuery
        ResultSet resultSet = ps.executeQuery();    
//把查询的结果封装到ResultSet类中
//遍历展示next():判断下一条是否为空,如果非空指针移到下一行

        while (resultSet.next()){
            int id=resultSet.getInt("id");
            String name =resultSet.getString("name");
            int age = resultSet.getInt("age");
            String address = resultSet.getString("address");
            System.out.println(id+"---"+name+"---"+age+"---"+address);

        }

      //  System.out.println(resultSet);
        //5.关闭资源
        resultSet.close();
        ps.close();
        connection.close();
    }





//增加的方法------------------------------------  4


             
/*    public static void insert(int id ,String name,int age, String address)throws  Exception {
        //1.加载驱动
        //Class.forName("com.mysql.jdbc.Driver");
        //2.建立连接
        String url = "jdbc:mysql://localhost:3306/jdbctest?characterEncoding=UTF-8&useSSL=false";
        String username = "root";
        String password = "root";
        Connection connection = DriverManag
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值