JDBC基础一
JDBC:java database connectivity SUN公司提供的一套操作数据库的标准规范。
JDBC与数据库驱动的关系:接口与实现的关系。
JDBC规范(掌握四个核心对象):
DriverManager:用于注册驱动
Connection: 表示与数据库创建的连接
Statement: 操作数据库sql语句的对象
ResultSet: 结果集或一张虚拟表
实体类
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | package com.mf.domain; import java.util.Date; public class User { private int id; private String name; private int age; private Date createtime; public int getId() { return id; } public void setId( int id) { this .id = id; } public String getName() { return name; } public void setName(String name) { this .name = name; } public int getAge() { return age; } public void setAge( int age) { this .age = age; } public Date getCreatetime() { return createtime; } public void setCreatetime(Date createtime) { this .createtime = createtime; } } |
CRUD
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 | package com.mf.jdbc; import java.sql.DriverManager; import java.sql.Connection; import java.sql.ResultSet; import java.sql.Statement; import java.util.ArrayList; import java.util.List; import com.mf.domain.User; public class CRUD { public static void main(String[] args) throws Exception { //3种连接方式 Connection conn= null ; //得到执行sequel语句的对象Statement Statement stmt= null ; //查 执行sql语句,并返回结果 ResultSet rs= null ; try { //注册驱动 //DriverManager.registerDriver(new com.mysql.jdbc.Driver());//不建议使用原因有2个:> 导致驱动被注册2次。> 强烈依赖数据库的驱动jar Class.forName( "com.mysql.jdbc.Driver" ); //此处采用反射机制加载 //获取连接Connection //Connection 接口 多态 父类的壳子接收子类的实现,有利于后期代码的扩展 conn = DriverManager.getConnection( "jdbc:mysql://localhost:3306/test" , "root" , "root" ); /*Properties info=new Properties(); info.setProperty("user", "root"); info.setProperty("password", "root"); Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", info);*/ //Connection conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test?user=root&password=root"); stmt = conn.createStatement(); //增 /*stmt = conn.prepareStatement("INSERT INTO users VALUES(?,?)"); ((PreparedStatement) stmt).setString(1, "tom"); ((PreparedStatement) stmt).setInt(2, 5);*/ /*int i = stmt.executeUpdate("INSERT INTO USER (`Name`, `Age`) VALUES('mf',20)"); if(i>0){ System.out.println("success"); } //删 int j = stmt.executeUpdate("UPDATE USER SET Age=25 WHERE ID=1"); if(j>0){ System.out.println("success"); } //改 int k = stmt.executeUpdate("DELETE FROM USER WHERE ID = 1 "); if(k>0){ System.out.println("success"); }*/ rs = stmt.executeQuery( "select * from user" ); //处理结果 List<User> list= new ArrayList<User>(); while (rs.next()){ User user= new User(); user.setName(rs.getString( "Name" )); user.setAge(rs.getInt( "Age" )); user.setCreatetime(rs.getDate( "CreatTime" )); list.add(user); System.out.println(list.size()); System.out.println( "---------------------------------------------------" ); System.out.println(rs.getObject( "Name" )+ ":" +rs.getObject( "Age" )+ ":" +rs.getObject( "CreatTime" )); } } catch (ClassNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { //关闭资源 if (rs!= null ) { try { rs.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } rs= null ; } if (stmt!= null ) { try { stmt.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } stmt= null ; } if (conn!= null ) { try { conn.close(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } conn= null ; } } } } |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!