JDBC完成增加-修改-增加-查询
JDBC的基本使用流程:
增加
1 导入jar包:
导入ojdbc6.jar,在项目上右键 builder path-->add to builder path.
2 加载驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
作用:初始化加载jdbc类到java虚拟机.
注意:
ojdbc6.jar使用此包该句可以省略不写.
3 获取数据库连接对象
Connection conn =DriverMananger.getConnection("url","username","password");
参数含义:
url:表示要连接的数据地址
username:数据库的用户名
password:数据库的密码
作用:
连接到指定的数据库并返回连接对象.
4 创建sql命令对象
Statement stmt=conn.createStatement();
作用:
编译,发送SQL命令
5 创建sql命令
String sql="insert into dept values(92,'','')";
6 执行sql命令:
新增sql命令:
int i=stmt.executeUpdate(sql);
返回值:
返回值如果小于0,表示未执行成功
返回值如果大于0,表示成功修改的数据量.
7 关闭资源
------------------------------------------------------------------------------------------------------------------------------------------
* 常见的jdbc错误:
* a ClassNotFoundException:
* 驱动类未找到.
* b java.sql.SQLException: No suitable driver found for :thin:@localhost:1521:orcl
* URL错误
* c java.sql.SQLException: ORA-01017: invalid username/password; logon denied
* 用户 名或密码错误
* d java.sql.SQLSyntaxErrorException: ORA-00900: 无效 SQL 语句
* Sql语句错误
* e java.sql.SQLIntegrityConstraintViolationException: ORA-00001: 违反唯一约束条件 (SCOTT.PK_DEPT)
* 主键冲突
---------------------------------------------------------------------------------------------------------------------------------------------
JDBC新增代码:
public class TestInsert1 {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//1 加载驱动类
//Class.forName("oracle.jdbc.driver.OracleDriver");
//2 获取数据库连接对象(连接指定的数据库)
Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","scott","oracle");
//3 获取sql命令对象(编译和发送sql命令给数据库)
Statement stmt=conn.createStatement();
//4 创建sql命令
String sql="insert into dept values(92,'吃鸡学院','北京')";
//5 指定sql命令
int i=stmt.executeUpdate(sql);
System.out.println("执行结果:"+i);
//6 关闭资源
stmt.close();
conn.close();
}
}
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
JDBC代码完善(全)
public class TestInsert2 {
public static void main(String[] args){
//声明jdbc变量
Connection conn=null;
Statement stmt=null;
//声明JDBC参数
String driver="oracle.jdbc.driver.OracleDriver";
String url="jdbc:oracle:thin:@localhost:1521:orcl";
String username="scott";
String password="oracle";
//1 加载驱动类
try {
Class.forName(driver);
//2 获取数据库连接对象(连接指定的数据库)
conn=DriverManager.getConnection(url,username,password);
//3 获取sql命令对象(编译和发送sql命令给数据库)
stmt=conn.createStatement();
//4 创建sql命令
String sql="insert into dept values(97,'吃鸡学院','北京')";
//5 指定sql命令
int i=stmt.executeUpdate(sql);
System.out.println("执行结果:"+i);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
//6 关闭资源
try {
stmt.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
修改
使用流程不变:
导入jar包
加载驱动
创建连接对象
创建sql命名对象
创建sql命令
执行sql命令
关闭资源
-----------------------------------------------------------------------------------
更新和新增比较除了SQL语句不通以外,代码基本一致:
public class TestUpdate {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//1加载驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
//2创建连接对象
Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl", "scott","oracle");
//3创建sql命令对象
Statement stmt=conn.createStatement();
//4创建sql命令
String sname="张三三";
String sql="update student set sname='"+sname+"' where snum=2";
//5执行sql命令
int i=stmt.executeUpdate(sql);
System.out.println(i);
//6关闭资源
stmt.close();
conn.close();
}
}
删除:
加载jar包
加载驱动
创建连接对象
创建sql命令对象
创建sql命令(删除)
执行sql命令
关闭资源
-------------------------------------------------------------------------------------
JDBC中的增加删除修改除了SQL语句不同以外,基本一致:
public class TestDel {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//1 加载驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
//2创建连接对象
Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@LocalHost:1521:orcl", "scott", "oracle");
//3创建sql命令对象
Statement stmt=conn.createStatement();
//4创建sql命令
String sql="delete from student where snum='2'";
//5执行sql命令
int i=stmt.executeUpdate(sql);
System.out.println("删除数据量:"+i);
//6关闭资源
stmt.close();
conn.close();
}
}
------------------------------------------------------------------------------------
JDBC完成查询:
基本流程:
声明ArrayList集合
加载驱动
创建连接对象
创建sql命令对象
创建sql命令
执行sql命令
遍历查询结果,并将结果存储到ArrayList中
关闭资源
----------------------------------------------------------------------------------------------
JDBC查询示例代码:
package com.bjsxt.test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import com.bjsxt.daoImpl.StudentDaoImpl;
import com.bjsxt.pojo.Student;
/**
* JDBC的查询:
* 加载驱动
* 创建连接对象
* 创建sql命令对象
* 创建sql命令
* 执行sql命令
* 返回存储了查询到的数据的对象(ResultSet)
* ResultSet对象是基于指针进行数据存储的,类似枚举.
* 关闭资源
* 问题:
* 查询的返回值类型是ResultSet,是基于指针进行数据存储的,不便于数据的针对性的获取.
* 解决:
* 将数据转换到ArrayList中进行存储.
* 使用:
* 创建和表结构相同的实体类进行单条数据的存储(一条数据就是一个实例化对象)
* 将对象存储到ArrayList中.
* 快速获取返回值:
* alt+shift+L
*
* @author MyPC
*
*/
public class TestSelect {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//声明List集合
ArrayList<Student> list=new ArrayList<>();
//加载驱动
Class.forName("oracle.jdbc.driver.OracleDriver");
//创建连接对象
Connection conn=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl","scott","oracle");
//创建sql命令对象
Statement stmt=conn.createStatement();
//创建Sql命令
String sql="select * from student";
//执行Sql命令
ResultSet rs = stmt.executeQuery(sql);
while(rs.next()){
//创建学生对象
Student stu=new Student();
stu.setSnum(rs.getInt("snum"));
stu.setSname(rs.getString("sname"));
stu.setSage(rs.getInt("sage"));
stu.setMoney(rs.getDouble("money"));
//将对象存储到ArrayList中
list.add(stu);
}
System.out.println(list.get(2));
//创建DaoImpl层对象
StudentDaoImpl sd=new StudentDaoImpl();
ArrayList<Student> ls=sd.getStudentInfo();
}
}
JDBC完成增加-修改-增加-查询的更多相关文章
- ado.net c#基本的增加,修改,删除,查询
自己初次学习用的,各种不规范,注释没写 class AdoDemo { static string strConn = @"Data Source=server1;Initial Catal ...
- 使用JDBC获取能自动增加的主键
本篇讲述如何使用JDBC获取能自动增加的主键的值.有时候我们在向数据库插入数据时希望能返回主键的值,而不是通过查询的方式.一般来说,在多表相互关联主键约束,也就是说别的表的外键约束是该表的主键,那么在 ...
- Android webview中cookie增加/修改
最近项目需求中,需要满足往webview传递cookie,而且cookie需要增加修改: public class MainActivity extends Activity { private We ...
- Oracle 增加修改删除字段
Oracle 增加修改删除字段 添加字段的语法:alter table tablename add (column datatype [default value][null/not null],…. ...
- 用dom4j修改xml(增加修改节点)
用dom4j修改xml(增加修改节点) 博客分类: Java XMLJavaMyeclipseServlet 使用dom4j修改解析xml,xml文件的位置是配置在xml.properties文件中 ...
- 【ES】Java High Level REST Client 使用示例(增加修改)
ES提供了多种编程语言的链接方式,有Java API,PHP API,.NET API 官网可以详细了解 https://www.elastic.co/guide/en/elasticsearch/c ...
- sql 增加修改表格属性字段
1.修改字段默认值 alter table 表名 drop constraint 约束名字 ------注解:删除表的字段的原有约束 alter table 表名 add constraint 约束名 ...
- cogs 1316. 数列操作B 区间修改 单点查询
1316. 数列操作B ★★ 输入文件:shulieb.in 输出文件:shulieb.out 简单对比时间限制:1 s 内存限制:128 MB [问题描述] 假设有一个大小为 n(n ...
- ASP.NET MVC搭建项目后台UI框架—6、客户管理(添加、修改、查询、分页)
目录 ASP.NET MVC搭建项目后台UI框架—1.后台主框架 ASP.NET MVC搭建项目后台UI框架—2.菜单特效 ASP.NET MVC搭建项目后台UI框架—3.面板折叠和展开 ASP.NE ...
随机推荐
- AM使用指南:如何在Managed Bean中获取AM实例?
AM是放置服务方法的地方,有时我们需要在Managed Bean中调用这些方法.要调用这些方法,首先要在Managed Bean中获取AM实例.这里要用到<ADF工具类:ADFUtil.java ...
- rpm管理
系统上rpm命令管理程序包: 安装.卸载.升级.查询.校验.数据库维护 安装: rpm {-i|--install} [install-options] PACKAGE_FILE ... -v: ve ...
- 为什么丑陋的UI界面却能创造良好的用户体验?
本文内容由Mockplus团队翻译. 官网:http://www.mockplus.cn 网站界面过于漂亮可能会影响网站的可用性,但本文中提到的5个网站界面可谓是“丑”出了新高度.这样的网站它还有可用 ...
- jstl中的日期格式化
<% String strdate="2004/04/01"; Date a=new Date(strdate); request.setAttribute(&quo ...
- 05 Computing GC Content
Problem The GC-content of a DNA string is given by the percentage of symbols in the string that are ...
- C#事件订阅及触发例子
最典型的事件例子,猫叫了(事件源),老鼠跑了(事件订阅者),惊醒主人(事件订阅者) 源代码: class Program { static void Main(string[] args) { Cat ...
- CodeForces 342A Xenia and Divisors (水题)
题意:给定 n 个数(小于等于7),让你把它分成 m 组,每组有三个数,且满足,a < b < c,并且 a 能整除 b,b 能整除 c. 析:对于这个题,因为题目说了是不大于7的,那么一 ...
- POJ 1985 Cow Marathon (树形DP,树的直径)
题意:给定一棵树,然后让你找出它的直径,也就是两点中的最远距离. 析:很明显这是一个树上DP,应该有三种方式,分别是两次DFS,两次BFS,和一次DFS,我只写了后两种. 代码如下: 两次BFS: # ...
- 自己(转)String、StringBuffer与StringBuilder之间区别
String.StringBuffer与StringBuilder之间区别 最近学习到StringBuffer,心中有好些疑问,搜索了一些关于String,StringBuffer,StringB ...
- 安卓利用Handlers,AsyncTask和Loaders运行后台程序
安卓的用户界面线程(user interface thread) 1.1 主线程 安卓修改用户界面并从一个单一用户界面线程中处理输入事件,这个线程也被称作主线程(main thread) Androi ...