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 ...
随机推荐
- c#窗体进度条
c#窗体进度条 //进度条的最大值 ; progressBar1.Maximum = Convert.ToInt32(a); ;i<progressBar1.Maximum;i++) { //进 ...
- SQL Server经典sql语句大全(转)
一.基础1.说明:创建数据库CREATE DATABASE database-name2.说明:删除数据库drop database dbname3.说明:备份sql server--- 创建 备份数 ...
- java中成员变量,局部变量,静态变量的辨析
转自百度:https://baijiahao.baidu.com/s?id=1625360816541592483&wfr=spider&for=pc 1.java中成员变量,局部变量 ...
- 6.mybatis----日志工厂
日志工厂 如果一个数据库操作出现了异常,我们需要排错,所以说日志就是最好的助手 曾经:sout,debug 现在:日志工厂 在Mybatis中具体使用哪一个日志,在设置中设定 咋设定? 在mybati ...
- winform学习(1)初识winform
winform是Windows窗体应用程序 在窗体设计界面 单击鼠标右键--查看代码,即可转到Form1.cs的代码界面 从代码界面转到窗体设计界面的三种快捷方法:①双击解决方案资源管理器的 For ...
- 迎娶白富美,走上人生巅峰(python爬虫股票分析)
一.姿势储备 股票交易,线性代数(分析股票),分位数(风险评估)... finace.yahoo.com 雅虎提供几乎所有股票api www.kaggle.com 有问题找社区 未完待续.....
- Integer.parseInt(s)、Integer.valueOf(s)与new Integer()的异同
我们在开发过程中,很多时候需要将String类型数据转换成Integer,而比较常用的方式就是--nteger.parseInt(s).Integer.valueOf(s)与new Integer() ...
- 【转载】Java容器的线程安全
转自:http://blog.csdn.net/huilangeliuxin/article/details/12615507 同步容器类 同步容器类包括Vector和Hashtable(二者是早期J ...
- DRF分页
一.序列化 from rest_framework impost serializers from . models import * class GoodsSerializer(serializer ...
- Tinyhttp源码分析
简介 Tinyhttp是一个轻量型Http Server,使用C语言开发,全部代码只500多行,还包括一个简单Client. Tinyhttp程序的逻辑为:一个无线循环,一个请求,创建一个线程,之后线 ...