文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

jdbc环境配置及操作步骤

2023-09-03 09:26

关注

文章目录

jdbc

环境配置

jdbc开发,需要提前先准备驱动包(下载一个mysql驱动包)及配置(项目配置引入这个驱动包)
下载链接:mysql驱动包
注意:jar包的版本要和自己本地mysql版本一致

1.创建项目,最好把jar包放到项目某个目录
在这里插入图片描述
2.项目右键
在这里插入图片描述
3.添加依赖包
在这里插入图片描述
4.写一段代码,使用jar包中的接口或类,看能否引入
在这里插入图片描述
出现以上即配置完成。

jdbc 操作步骤

1.建立数据库连接:类似打开一个cmd客户端连接到mysql
(1) 方式一:DriverManager

//        Class.forName("com.mysql.jdbc.Driver");                Connection c = DriverManager.getConnection("jdbc:mysql://localhost:3306/db_test?user=root&password=123456&useUnicode=true&characterEncoding=UTF-8&useSSL=false");

(2)方式二:DataSourse(数据源/数据库连接池)
连接池初始化时,就创建一定数量的数据库连接对象(Connection)
connection.close()只是重置连接对象属性,放回连接池

//使用数据库连接池来获取数据库连接对象        //一个Java程序,创建多个还是1个连接池对象?一个        MysqlDataSource ds = new MysqlDataSource();        //url中的参数,可以使用方法来设置        ds.setURL("jdbc:mysql://localhost:3306/db_test");        ds.setUser("root");        ds.setPassword("123456");        ds.setUseSSL(false);//不使用安全连接,如果不设置有警告        //设置编码格式:按某个编码保存数据,也要按一样的编码来使用        ds.setCharacterEncoding("UTF-8");//1. 建立数据库连接        Connection c = ds.getConnection();

(3)DriverManager VS DataSourse

在这里插入图片描述

2.创建操作命令对象Statement:该对象用于执行sql代码

(1)Statement:不带占位符简单操作命令对象(了解)

Statement s = c.createStatement();

(2)预编译的操作命令对象PreparedStatement

带占位符的预编译操作命令对象

//2.创建操作命令对象        //使用预编译的操作命令对象PreparedStatement        //sql语句中,可能包含一些客户端网页传入的数据        String inputName = "数学";//模拟客户端用户传入的id        //? 是占位符,类似格式化打印中%s, %d,可以替换掉        String sql = "select id c_id,name c_name from course where name=?";        PreparedStatement ps = c.prepareStatement(sql);//!!!                ps.setString(1, inputName);        //3.执行sql语句: 可以不加分号了(加上也不会报错)        ResultSet rs = ps.executeQuery();//预编译的操作命令对象执行无参的方法

优势:提前预编译,效率更高; 防止sql注入,更安全
(3) CallableStatement:用于执行存储过程的

3.执行sql

//3.执行sql语句: 可以不加分号了(加上也不会报错)        String inputName = "' or '1'='1";//模拟客户端用户输入的

4.如果是查询操作,处理结果集ResultSet ->调用executeQuery,返回结果集
如果是插入,修改,删除操作,调用executeUpdate,返回int表示处理成功多少条

String sql = "select id c_id,name c_name from course where name='"+inputName+"'";        System.out.println(sql);        ResultSet rs = s.executeQuery(sql);//4.处理结果集        while (rs.next()){//遍历每一行数据            //获取id字段的值            int id = rs.getInt("c_id");            String name = rs.getString("c_name");            System.out.printf("id: %s, name: %s\n", id, name);        }

在这里插入图片描述
5.释放资源:反向释放(ResultSet,Statement, Connection)都是调用close()释放

插入操作代码

public class CourseInsert {    public static void main(String[] args) throws ClassNotFoundException, SQLException {        //使用数据库连接池来获取数据库连接对象        //一个Java程序,创建多个还是1个连接池对象?一个        MysqlDataSource ds = new MysqlDataSource();        //url中的参数,可以使用方法来设置        ds.setURL("jdbc:mysql://localhost:3306/java44");        ds.setUser("root");        ds.setPassword("123456");        ds.setUseSSL(false);//不使用安全连接,如果不设置有警告        //设置编码格式:按某个编码保存数据,也要按一样的编码来使用        ds.setCharacterEncoding("UTF-8");        //1. 建立数据库连接        Connection c = ds.getConnection();        //2.创建操作命令对象        //使用预编译的操作命令对象PreparedStatement        //sql语句中,可能包含一些客户端网页传入的数据        String inputName = "王者";//模拟客户端用户传入的id        //? 是占位符,类似格式化打印中%s, %d,可以替换掉        String sql = "insert into course(name) values(?)";        PreparedStatement ps = c.prepareStatement(sql);//!!!!                ps.setString(1, inputName);        //3.执行sql语句: 可以不加分号了(加上也不会报错)        //插入,修改,删除,都调用executeUpdate,返回int是执行成功多少条        int n = ps.executeUpdate();//预编译的操作命令对象执行无参的方法 !!!        System.out.println(n);        //5.释放资源:反向释放(resultSet, Statement, Connection).close()    }}

来源地址:https://blog.csdn.net/xy199931/article/details/128199556

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯