Java JDBC 数据库链接小结随笔
Java JDBC 数据库链接小结随笔
一、链接数据库的步骤
二、关于Statement 和 PrepareStatement 两者区别 用法
五、一些异常的解释
一、链接数据库的步骤
- 注册驱动
- 获得链接对象
- 创建sql容器
- 执行sql语句
- 查询操作
- 关闭资源:
package demo1;
import java.sql.*;
public class demo1 {
public static void main(String[] args) {
try {
Class.forName("com.mysql.cj.jdbc.Driver");
String url="jdbc:mysql://127.0.0.1:3306/jdbc?serverTimezone=UTC";
/*目前手动改变 sql 服务器 时区报错问题*/
String username="root";
String password="root";
/* com.mysql.cj.jdbc.Driver */
Connection con= DriverManager.getConnection(url,username,password);
System.out.println(con);
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("select * from test");
while (rs.next()){
int id=rs.getInt("id");
String name=rs.getString(2);
System.out.println("id:"+id+"-"+"name:"+name);
}
}
catch (ClassNotFoundException e){
e.printStackTrace();
}
catch (SQLException e){
e.printStackTrace();
}
}
}
二、 关于Statement 和 PrepareStatement 两者区别 用法
PrepareStatement 继承自 Statement 接口 拥有Statement 中的方法
execute()
executeQuery()
executeUpdate()
package demo1;
import Util.connectionUtil;
import java.sql.*;
public class TestDemo {
/*
* 1. prepareStatement Statement 区别
*
* 1)prepareStatement继承自 statement
* prepareStatement{ execute、 executeQuery 和 executeUpdate 已被更改以使之不再需要参数}
* 2. 接口用法
* */
public static void main(String[] args) {
//直接使用 Util 包下自定义的 链接数据库方法
Connection con=connectionUtil.getConnections("jdbc");
Statement stmt=null;
PreparedStatement ps=null;
ResultSet resultSet=null;
ResultSet rs=null;
String selectSql="select * from test";
try {
stmt=con.createStatement();
resultSet=stmt.executeQuery(selectSql);
System.out.println("Statement 接口:");
while (resultSet.next()){
int id=resultSet.getInt("id");
String name=resultSet.getString("name");
System.out.println("id:"+id+"---"+"name:"+name);
}
System.out.println("PrepareStatement 接口:");
/* PrepareStatement */
ps=con.prepareStatement(selectSql);
rs=ps.executeQuery();
while (rs.next()){
int id=rs.getInt("id");
String name=rs.getString("name");
System.out.println("id:"+id+"---"+"name:"+name);
}
} catch (SQLException e) {
e.printStackTrace();
}
finally {
if(con!=null){
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
}
基本能用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对象的当前行中指定列的值
四、自定义工具类的封装
五、一些异常的解释
上述内容为 自学笔记 可自行参考
Java JDBC 数据库链接小结随笔的更多相关文章
- Java JDBC数据库链接
好久没有编写有关数据库应用程序啦,这里回顾一下java JDBC. 1.使用Java JDBC操作数据库一般需要6步: (1)建立JDBC桥接器,加载数据库驱动: (2)连接数据库,获得Connect ...
- java JDBC 数据库链接
1.准备环境搭建: myeclipse,sql2005,jdbc. 2.都下载完之后开始进行安装 ,前两个是属于数据库软件,正常安装即可(注意数据库登陆不要使用windows验证) <1> ...
- Java JDBC基础学习小结
JDBC是一个Java应用程序接口,作用是封装了对数据库的各种操作.JDBC由类和接口组成,使用Java开发数据库应用都需要4个主要的接口:Driver.Connection.Statement.Re ...
- Java ——JDBC数据库编程
数据库分类 关系型数据库:以表来存放数据的,数据与数据之间的关系通过表之间的连接体现 面向对象的数据库:保存的是对象本身 其它 数据库:数据库管理系统中创建一个个的保存数据的单位 数据是保存在数据库的 ...
- java jdbc数据库操作
package shb.java.demo3; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQ ...
- java mysql数据库链接与资源关闭
/** * Created by Clear on 2018/8/11. * here provide the kind of connections from mysql database,and ...
- Java JDBC数据库编程
课程 Java面向对象程序设计 一.实验目的 掌握数据库编程技术 二.实验环境 1.微型计算机一台 2.WINDOWS操作系统,Java SDK,Eclipse开发环境,Microsoft SQL ...
- JAVA JDBC 元数据分析小结
纯干货: 获取数据库名称: /** * 获取数据库的名称 */ public void getDataBaseName() throws Exception { Connection con = DS ...
- java jdbc/ojdbc 链接oracle的三种方式
方法一:使用service_name 连接oracle jdbc:oracle:thin:@//:/<service_name> 例如: jdbc:oracle:thin:@//10.1 ...
随机推荐
- 初识Vue--生命周期
初学Vue,写一些随记谨防忘记,不足之处谢谢指出!!! 本文可以直接复制自行创建一个HTML页面,查看结果. <!DOCTYPE html> <html lang="en& ...
- Request功能
1.获取请求消息数据 获取请求行数据 获取请求头数据 获取请求体数据 请求空行没必要获取 1.获取请求行数据 GET /虚拟目录 /servlet路径 ?请求参数 HTTP/1.1 GET/day1 ...
- python面试的100题(5)
5.现有字典 d= {'a':24,'g':52,'i':12,'k':33}请按value值进行排序? sorted(d.items(),key=lambda x:x[1]) sorted函数 对由 ...
- 设置canvas的背景成白色
解决方案一:将透明的pixel设成白色 因为png图片的背景都是透明的,所以我们可以寻找透明的pixel,然后将其全部设置成白色,核心代码如下: JavaScript Code复制内容到剪贴板 // ...
- python logging 总结
基本用法: import sys # 获取logger实例,如果参数为空则返回root logger logger = logging.getLogger("AppName" ...
- 一文复习JSP内容
概念: JSP 全名为 Java Server Pages, 中文名叫 java 服务器页面, 其根 本是一个简化的 Servlet 设计, 它是由 Sun Microsystems 公司 倡导. 许 ...
- java基础(七)之子类实例化
知识点;1.生成子类的过程2.使用super调用父类构造函数的方法 首先编写3个文件. Person.java class Person{ String name; int age; Person() ...
- Django项目报错: 禁止访问(403),CSRF验证失败,相应中断
如果想要取消表单的CSRF防护,可以在模板上删除{% csrf_token %}, 并且在相应的视图函数中添加装饰器@csrf_exempt, 代码如下: from django.views.deco ...
- RegExp-dotAll
//.不能匹配四个字节的utf16字符和行终止符\n,\r console.log(/foo.bar/.test('foo\nbar')) //false //dotAll console.log(/ ...
- L3-010 是否完全二叉搜索树 (30分)
题解 判断一棵树是否是完全二叉树: 取队列的头,将头的左右孩子入队,循环每次判断是否为空,如果为空节点,此时退出循环. 然后检查队列中的元素是否全部为空,如果是则说明是完全二叉树,否则不是. 代码 # ...