java原生jdbc操作MySQL

java原生jdbc操作MySQL学习过 java 肯定对 MySQL 都相当的熟悉 大家日常工作中可能用 Mybatis JPA 等持久层框架比较多 其实这些持久层框架的底层都是用原生的 jdbc 来操作 MySQL 数据库的

大家好,欢迎来到IT知识分享网。

学习过java肯定对MySQL都相当的熟悉,大家日常工作中可能用Mybatis、JPA等持久层框架比较多。其实这些持久层框架的底层都是用原生的jdbc来操作MySQL数据库的。下面就给大家介绍一下原生jdbc;

java原生jdbc操作MySQL

前提:需要安装好MySQL数据库,并且有可操作的数据库表;我的数据库表是一张user表,里面有2个字段:id,name;

1.首先肯定是添加依赖,由于是原生的jdbc,需要原生jdbc驱动的依赖,不可以添加其他框架整合的jdbc。(如springboot的jdbc)

<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.28</version> </dependency>

2.编写java代码,连接数据库进行操作。(由于比较原生,所以只需要一个main方法即可,不需要有web工程)

 // 1. 建立连接 // 加载数据库驱动 Class.forName("com.mysql.jdbc.Driver"); // 数据库连接地址 jdbc:mysql://数据库地址:数据库端口/数据库名称 String url = "jdbc:mysql://localhost:3306/test"; // 账号 String username = "root"; // 密码 String password = ""; // 利用上述信息获取连接 Connection con = DriverManager.getConnection(url,username,password); // 2. 对数据库进行操作 // a)增删改 // 插入sql语句 String sql1 = "INSERT INTO user (id, name) VALUES('2022','冰墩墩')"; // 使用连接获取Statement Statement stat1 = con.createStatement(); // 执行sql,返回结果产生变化的总行数 int row = stat1.executeUpdate(sql1); System.out.println("返回结果产生变化的总行数row = " + row); // b)查询 // 查询sql语句 String sql2 = "SELECT * FROM user"; // 使用连接获取Statement Statement stat2 = con.createStatement(); // 执行sql,返回结果集 ResultSet rs = stat2.executeQuery(sql2); // 遍历结果集 getString获取的该字段是数据库对应的varchar类型 while(rs.next()){ System.out.println(rs.getString("id")+" "+rs.getString("name")); } //4.关闭所有连接 rs.close(); stat1.close(); stat2.close(); con.close(); }

控制台打印结果:

返回结果产生变化的总行数row = 1 2022 冰墩墩
java原生jdbc操作MySQL

sql插入成功

注意:上述代码使用了Statement来操作数据库,这种操作会产生SQL注入的风险,因此可以使用下面PreparedStatement的代码来避免该风险:

//防注入解决方案:将Statement换成PreparedStatement //a)增删改 String sql3 = "UPDATE user SET id=?,name=? WHERE id=?"; // 上面的sql语句有几个问号占位,下面设置占位参数的值,这样可以避免sql注入 PreparedStatement pst = con.prepareStatement(sql3); // 设置第一个,第二个,第三个参数值 pst.setObject(1, "2023"); pst.setObject(2, "雪容融"); pst.setObject(3, "2022"); // 执行 int row3 = pst.executeUpdate(); System.out.println("返回结果产生变化的总行数row = " + row3); //b)查询 String id = "2023"; String sql4 = "SELECT * FROM user WHERE id=? "; PreparedStatement pst4 = con.prepareStatement(sql4); pst4.setObject(1, id); ResultSet rs4 = pst4.executeQuery(); while(rs4.next()){ System.out.println(rs4.getString("id")+" "+rs4.getString("name")); } //pst.close();

输出结果:

返回结果产生变化的总行数row = 1 2023 雪容融
java原生jdbc操作MySQL

sql更新成功

ok,原生jdbc给大家基本介绍完毕,大家有什么疑惑可以评论区讨论,作者看到都会回复哒[送心]

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/97310.html

(0)
上一篇 2026-03-09 14:26
下一篇 2026-03-09 21:11

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信