Java JDBC 数据库链接小结随笔
程序员文章站
2022-04-19 23:42:05
Java JDBC 数据库链接小结随笔 一、链接数据库的步骤 二、 关于Statement 和 PrepareStatement 两者区别 用法 三、关于 ResultSet 的一些小结 四、自定义工具类的封装 五、一些异常的解释 一、链接数据库的步骤 注册驱动 获得链接对象 创建sql容器 执行s ......
java jdbc 数据库链接小结随笔
一、
二、 关于statement 和 preparestatement 两者区别 用法
四、
五、
一、链接数据库的步骤
- 注册驱动
- 获得链接对象
- 创建sql容器
- 执行sql语句
- 查询操作
- 关闭资源:
1 package demo1; 2 3 import java.sql.*; 4 5 public class demo1 { 6 public static void main(string[] args) { 7 try { 8 class.forname("com.mysql.cj.jdbc.driver"); 9 string url="jdbc:mysql://127.0.0.1:3306/jdbc?servertimezone=utc"; 10 /*目前手动改变 sql 服务器 时区报错问题*/ 11 string username="root"; 12 string password="root"; 13 /* com.mysql.cj.jdbc.driver */ 14 15 connection con= drivermanager.getconnection(url,username,password); 16 system.out.println(con); 17 statement stmt = con.createstatement(); 18 resultset rs = stmt.executequery("select * from test"); 19 while (rs.next()){ 20 int id=rs.getint("id"); 21 string name=rs.getstring(2); 22 system.out.println("id:"+id+"-"+"name:"+name); 23 } 24 25 } 26 catch (classnotfoundexception e){ 27 e.printstacktrace(); 28 } 29 catch (sqlexception e){ 30 e.printstacktrace(); 31 } 32 } 33 }
二、 关于statement 和 preparestatement 两者区别 用法
preparestatement 继承自 statement 接口 拥有statement 中的方法
execute()
executequery()
executeupdate()
1 package demo1; 2 3 import util.connectionutil; 4 5 import java.sql.*; 6 7 public class testdemo { 8 /* 9 * 1. preparestatement statement 区别 10 * 11 * 1)preparestatement继承自 statement 12 * preparestatement{ execute、 executequery 和 executeupdate 已被更改以使之不再需要参数} 13 14 * 2. 接口用法 15 16 * */ 17 18 public static void main(string[] args) { 19 20 //直接使用 util 包下自定义的 链接数据库方法 21 connection con=connectionutil.getconnections("jdbc"); 22 statement stmt=null; 23 preparedstatement ps=null; 24 25 resultset resultset=null; 26 resultset rs=null; 27 28 string selectsql="select * from test"; 29 try { 30 stmt=con.createstatement(); 31 resultset=stmt.executequery(selectsql); 32 33 34 system.out.println("statement 接口:"); 35 while (resultset.next()){ 36 int id=resultset.getint("id"); 37 string name=resultset.getstring("name"); 38 system.out.println("id:"+id+"---"+"name:"+name); 39 } 40 41 42 system.out.println("preparestatement 接口:"); 43 44 45 /* preparestatement */ 46 ps=con.preparestatement(selectsql); 47 rs=ps.executequery(); 48 while (rs.next()){ 49 int id=rs.getint("id"); 50 string name=rs.getstring("name"); 51 system.out.println("id:"+id+"---"+"name:"+name); 52 } 53 54 55 } catch (sqlexception e) { 56 e.printstacktrace(); 57 } 58 finally { 59 if(con!=null){ 60 try { 61 con.close(); 62 } catch (sqlexception e) { 63 e.printstacktrace(); 64 } 65 } 66 } 67 } 68 }
基本能用preparestatement 就不用 statement 尽量避开 ‘1’ or "1"="1" 1的情况
也会比 statement 更灵活
execute() executequery() executeupdate() 这三个方法也不需要用参数 直接调用
例:
preparestatement>
string sql="select * from test where id= ?";
preparedstatement ps=con.preparestatement(sql);
ps.setint(1,1)
/* ? 相当于 占位符
setint(index,value); 来给占位符设置值
set数据类型(index,value);*/
----------------------------------------------------------
statement>stmt=con.createstatement();
resultset=stmt.executequery(selectsql);
三、关于 resultset 的一些小结
resultset 结果集 接收一个二维的数组集
关于resultset 的一些方法
boolean next() 将光标从当前位置向前移一行。
string getstring(int columnindex) 获取此resultset对象的当前行中指定列的值
string getstring(string columnlabel) 获取此resultset对象的当前行中指定列的值
四、自定义工具类的封装
五、一些异常的解释
上述内容为 自学笔记 可自行参考
推荐阅读
-
详解JDBC数据库链接及相关方法的封装
-
Java开发笔记(一百四十七)通过JDBC管理数据库
-
Java链接SQLSERVER数据库教程
-
20.java-JDBC连接mysql数据库详解
-
荐 Java——数据库编程JDBC之数据库连接池技术(C3P0与Druid,提供了Druid的工具类)
-
【⭐】Java—Spring-—数据库操作—使用内置连接池,报读取不到驱动错误。Could not load JDBC driver class。
-
java数据库JDBC连接Oracle数据库
-
Java语言使用JDBC连接Mysql数据库的详细步骤,以及详细解释(一)
-
JDBC 数据库常用连接 链接字符串
-
java--JDBC--连接数据库并写入数据