java操作数据库的基本方法
此次开发工具为eclipse,才有的数据库驱动是mysql-connector-java-5.1.8-bin.jar
第一步,在eclipse的工程目录中引用mysql驱动
驱动下载地址:https://dev.mysql.com/downloads/connector/j/

选择build path 然后选择configure build path
再选择libraries,选择add external library,找到之前下的数据库驱动,确认,ok
然后下一段测试代码将数据库驱动起来
public class test {
public static void main(String []args) {
try {
//mysql数据库设置驱动程序类型
Class.forName("com.mysql.jdbc.Driver");
System.out.println("mysql数据库驱动加载成功");
}
catch(ClassNotFoundException e) {
e.printStackTrace();
}
}
}
驱动代码运行一次就行了,之后就是操作数据库了
基本操作增改删查,原理都是一样的
先创建一个Connection对象
Connection connection = null;
String user="root";//用户名
String password="19980713";//密码
String url = "jdbc:mysql://localhost:3306/task?user="+user+"&password="+password+"&useUnicode=true&characterEncoding=utf-8";//获得连接的语句
try{
connection = (Connection)DriverManager.getConnection(url);
}catch(SQLException e){
e.printStackTrace();
}
获得连接之后就是对connection进行操作了
查询记录
String sql = "select id,name,job,department,state,authority from worker;";
try { PreparedStatement ps = (PreparedStatement) connection.prepareStatement(sql);//预编译过程
ResultSet rs = ps.executeQuery();//查询一般用executeQuery,返回的是查询的结果集
//下面是对结果集进行操作
while(rs.next()) {
count++;
Vector v = new Vector();
v.add((rs.getString(1)));
v.add((rs.getString(2)));
v.add((rs.getString(3)));
v.add((rs.getString(4)));
v.add((rs.getString(5)));
v.add((rs.getString(6)));
worker.add(v);
}
}catch(SQLException e1) {
e1.printStackTrace();
}
插入记录
String sql = "insert into worker(name) "
+"value("+ ""\"小明"\"" + ")";
PreparedStatement ps = (PreparedStatement) connection.prepareStatement(sql);
try {
PreparedStatement ps = (PreparedStatement) connection.prepareStatement(sql);
if(ps.executeUpdate()==1){//返回一个int值表示返回的条数
int n = JOptionPane.showConfirmDialog(null, "添加成功,是否继续添加?", "系统提示",JOptionPane.YES_NO_OPTION);
if(n == 0){
//清空面板
name.setText("");
sex.setText("");
authority.setText("");
birthday.setText("");
department.setText("");
job.setText("");
email.setText("");
state.setText("");
remark.setText("");
specialty.setText("");
address.setText("");
tel.setText("");
edu_level.setText("");
}else{
dispose();
JoinNewMember frame = new JoinNewMember();
}
}
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
其余操作就不贴代码了,以此类推就是的,我先准备一下六级去了,要不待会再来更新
2018/06/16/18:39更新 考完六级回来了 段落匹配放最后面的 没做完 亏了 十二月份再来哈哈哈哈
补上:
上面之所以不贴代码是因为套路都一样
先实例化一个Connection对象,然后调用prepareStatement()将SQL语句带入其中进行预编译
然后根据情况调用execute executeUpdate 或者executeQuery
下面来了解一下这三个函数execute() executeQuery() executeUpdate()的区别和适用情况
executeQuery()顾名思义----执行查询
返回的是一个结果集,我们对结果集进行处理得到我们想要的数据.
结果集的组成是行列的,行是指例句,列指属性,rs.next()可以看做一个迭代过程
executeUpdate顾名思义---执行更新
对应的一般就是用于执行 INSERT、UPDATE 或 DELETE或者一些定义数据库的语句,例如CREATE TABLE等,返回值是执行操作收到影响的行数
关于execute,我刚开始以为挺简单的,后来才发现我低估了他的用途,我等菜鸟不敢随意总结,我在别的地方看到一个挺好的详解:
java操作数据库的基本方法的更多相关文章
- java操作数据库:增删改查
不多bb了直接上. 工具:myeclipse 2016,mysql 5.7 目的:java操作数据库增删改查商品信息 test数据库的goods表 gid主键,自增 1.实体类Goods:封装数据库数 ...
- JDBC数据源(DataSource)数据源技术是Java操作数据库的一个很关键技术,流行的持久化框架都离不开数据源的应用。
JDBC数据源(DataSource)的简单实现 数据源技术是Java操作数据库的一个很关键技术,流行的持久化框架都离不开数据源的应用. 2.数据源提供了一种简单获取数据库连接的方式,并能在内部通 ...
- Java操作数据库——手动实现数据库连接池
Java操作数据库——手动实现数据库连接池 摘要:本文主要学习了如何手动实现一个数据库连接池,以及在这基础上的一些改进. 部分内容来自以下博客: https://blog.csdn.net/soonf ...
- Java操作数据库——使用JDBC连接数据库
Java操作数据库——使用JDBC连接数据库 摘要:本文主要学习了如何使用JDBC连接数据库. 背景 数据持久化 数据持久化就是把数据保存到可掉电式存储设备中以供之后使用.大多数情况下,特别是企业级应 ...
- JDBC 数据库连接 Java操作数据库 jdbc快速入门
JDBC基本概念 Java DataBase Connectivity 数据库连接 java操作数据库 本质上(sun公司的程序员)定义的一套操作关系型数据库的规则 既接口 更新内容之前 代码 pa ...
- Java操作数据库——使用连接池连接数据库
Java操作数据库——使用连接池连接数据库 摘要:本文主要学习了如何使用JDBC连接池连接数据库. 传统方式和连接池方式 传统方式的步骤 使用传统方式在Java中使用JDBC连接数据库,完成一次数据库 ...
- Java操作数据库——在JDBC里使用事务
Java操作数据库——在JDBC里使用事务 摘要:本文主要学习了如何在JDBC里使用事务. 使用Connection的事务控制方法 当JDBC程序向数据库获得一个Connection对象时,默认情况下 ...
- JDBC 4.0 开始Java操作数据库不用再使用 Class.forName加载驱动类了
JDBC 4.0 开始Java操作数据库不用再使用 Class.forName加载驱动类了 代码示例 转自 https://docs.oracle.com/javase/tutorial/jdbc/o ...
- java操作数据库:分页查询
直接上.... 还是用之前的goods表,增加了一些数据 1.实体类Goods // 封装数据 public class Goods { private int gid; private String ...
随机推荐
- 2018.12.05 codeforces 961E. Tufurama(主席树)
传送门 一眼主席树sbsbsb题(%%%树状数组大佬们). 简化题意:求满足x<y,y≤ax,x≤ayx<y,y\le a_x,x\le a_yx<y,y≤ax,x≤ay的(x, ...
- BitMap的简单实现
面试结束的这些日子好几次接触到BitMap这个东西.到底是啥呢,究其原因就是虽然它的使用条件较为苛刻,但是它对应的时间复杂度和空间复杂度真的是惊人的好. 首先是根据其思想先写了一个比较差的实现代码: ...
- HDMI ip中的时钟 vid_clk与ls_clk
由TMDS_Bit_clock_Ratio.TMDS_clk和色彩深度,就可以确定出tmds_clk,cdr_clk,vid_clk和ls_clk之间的关系. 1.Tmds_clk时钟频率的确定: 原 ...
- session(会话)研究(一)基础
一.Session对象的生成 session对象生成的过程,可以通过一个直观图进行观察. 也就是说,客户第一次请求访问时,Cookie中是没有SessionID的.在第一次访问之后,由服务器生成一个S ...
- window下切换python
自己的win10装了2.7和3.6版本的python.本不想装2.7的,但node.js的C++的编译居然用到2.X的python,没法子就装了2.7.那怎么切换呢? 为了方便使用,我在系统的path ...
- 2018-03-10 VCard备份恢复联系人
主要在VCardComposer类中备份联系人的逻辑 导出流程: http://blog.csdn.net/michael_yt/article/details/78270537 导入流程: http ...
- 【Andorid开发框架学习】之Mina开发之Mina简介
今天我将介绍 Apache MINA的基本概念和 API,包括 I/O服务.I/O 会话.I/O 过滤器和 I/O 处理器. 一.MINA的简介 Apache MINA是一个网络应用程序框架,用来帮助 ...
- 前端开发 - HTML/CSS
概述 HTML是英文HyperText Mark-up Language(超文本标记语言)的缩写,他是一种制作万维网页面标准语言(标记). 相当于定义统一的一套规则,大家都来遵守他,这样就可以让浏览器 ...
- Android-Kotlin-枚举enum
案例一 星期: 星期的枚举:enum class 类名 {} package cn.kotlin.kotlin_oop09 /** * 定义星期的枚举类 */ enum class MyEnumera ...
- zeppelin中运行spark streaming kakfa & 实时可视化
notebook方式运行spark程序是一种比较agile的方式,一方面可以体验像spark-shell那样repl的便捷,同时可以借助notebook的作图能力实现快速数据可视化,非常方便快速验证和 ...