Java对MySQL数据库进行连接、查询和修改【转载】
一般过程:
(1) 调用Class.forName()方法加载驱动程序。
(2) 调用DriverManager对象的getConnection()方法,获得一个Connection对象。
(3) 创建一个Statement对象,准备一个SQL语句,这个SQL语句可以是Statement对象(立即执行的的语句)、PreparedStatement语句(预编译的语句)或CallableStatement对象(存储过程调用的语句)。
(4) 调用excuteQuery()等方法执行SQL语句,并将结果保存在ResultSet对象;或者调用executeUpdate()等方法执行SQL语句,不返回ResultSet对象的结果。
(5)对返回的ResultSet对象进行显示等相当的处理。
(6)释放资源。
1. 连接数据库
(1) 下载Mysql连接驱动
网址: http://dev.mysql.com/downloads/connector/j/。
(2) 加载JDBC驱动
操作方法:在Eclipse中,选中相应的工程,点击Project-Properties中的Java Build Path,在Libraries中增加mysql-connector-java-5.1.21-bin.jar,点OK。
(3) 建一个简单的数据库如下:
1 import java.sql.*; 2 public class GetConnection { 3 public static void main(String[] args){ 4 try{ 5 //调用Class.forName()方法加载驱动程序 6 Class.forName("com.mysql.jdbc.Driver"); 7 System.out.println("成功加载MySQL驱动!"); 8 }catch(ClassNotFoundException e1){ 9 System.out.println("找不到MySQL驱动!"); 10 e1.printStackTrace(); 11 } 12 13 String url="jdbc:mysql://localhost:3306/mysql"; //JDBC的URL 14 //调用DriverManager对象的getConnection()方法,获得一个Connection对象 15 Connection conn; 16 try { 17 conn = DriverManager.getConnection(url, "root",""); 18 //创建一个Statement对象 19 Statement stmt = conn.createStatement(); //创建Statement对象 20 System.out.print("成功连接到数据库!"); 21 stmt.close(); 22 conn.close(); 23 } catch (SQLException e){ 24 e.printStackTrace(); 25 } 26 } 27 }
2. 查询数据表
在询数据表时,需要用到ResultSet接口,它类似于一个数据表,通过该接口的实例可以获得检索结果集,以及对应数据表的接口信息。
1 import java.sql.*; 2 3 public class SelectTable { 4 5 public static void main(String[] args){ 6 try{ 7 //调用Class.forName()方法加载驱动程序 8 Class.forName("com.mysql.jdbc.Driver"); 9 System.out.println("成功加载MySQL驱动!"); 10 11 String url="jdbc:mysql://localhost:3306/aniu"; //JDBC的URL 12 Connection conn; 13 14 conn = DriverManager.getConnection(url, "root",""); 15 Statement stmt = conn.createStatement(); //创建Statement对象 16 System.out.println("成功连接到数据库!"); 17 18 String sql = "select * from stu"; //要执行的SQL 19 ResultSet rs = stmt.executeQuery(sql);//创建数据对象 20 System.out.println("编号"+"\t"+"姓名"+"\t"+"年龄"); 21 while (rs.next()){ 22 System.out.print(rs.getInt(1) + "\t"); 23 System.out.print(rs.getString(2) + "\t"); 24 System.out.print(rs.getInt(3) + "\t"); 25 System.out.println(); 26 } 27 rs.close(); 28 stmt.close(); 29 conn.close(); 30 }catch(Exception e) 31 { 32 e.printStackTrace(); 33 } 34 } 35 }
3. 修改和删除数据库
1 //修改删除数据 2 import java.sql.*; 3 public class UpdateDeleteDemo { 4 public static void main(String[] args)throws Exception{ 5 try{ 6 //调用Class.forName()方法加载驱动程序 7 Class.forName("com.mysql.jdbc.Driver"); 8 System.out.println("成功加载MySQL驱动!"); 9 10 String url="jdbc:mysql://localhost:3306/aniu"; //JDBC的URL 11 Connection conn; 12 13 conn = DriverManager.getConnection(url, "root",""); 14 Statement stmt = conn.createStatement(); //创建Statement对象 15 System.out.println("成功连接到数据库!"); 16 17 //查询数据的代码 18 String sql = "select * from stu"; //要执行的SQL 19 ResultSet rs = stmt.executeQuery(sql);//创建数据对象 20 System.out.println("编号"+"\t"+"姓名"+"\t"+"年龄"); 21 while (rs.next()){ 22 System.out.print(rs.getInt(1) + "\t"); 23 System.out.print(rs.getString(2) + "\t"); 24 System.out.print(rs.getInt(3) + "\t"); 25 System.out.println(); 26 } 27 28 //修改数据的代码 29 String sql2 = "update stu set name=? where number=?"; 30 PreparedStatement pst = conn.prepareStatement(sql2); 31 pst.setString(1,"8888"); 32 pst.setInt(2,198); 33 pst.executeUpdate(); 34 35 //删除数据的代码 36 String sql3 = "delete from stu where number=?"; 37 pst = conn.prepareStatement(sql3); 38 pst.setInt(1,701); 39 pst.executeUpdate(); 40 41 ResultSet rs2 = stmt.executeQuery(sql);//创建数据对象 42 System.out.println("编号"+"\t"+"姓名"+"\t"+"年龄"); 43 while (rs.next()){ 44 System.out.print(rs2.getInt(1) + "\t"); 45 System.out.print(rs2.getString(2) + "\t"); 46 System.out.print(rs2.getInt(3) + "\t"); 47 System.out.println(); 48 } 49 50 rs.close(); 51 stmt.close(); 52 conn.close(); 53 }catch(Exception e) 54 { 55 e.printStackTrace(); 56 } 57 } 58 }
[1] http://school.itzcn.com/video-vid-2308-spid-50.html
[2] http://school.itzcn.com/video-vid-2309-spid-50.html
[3] http://school.itzcn.com/video-vid-2310-spid-50.html
Java对MySQL数据库进行连接、查询和修改【转载】相关推荐
- mysql与java连接查询_【java】MySQL数据库之连接查询
连接查询 首先来认识一个叫笛卡尔积 (cartesian product) 的东东,也可以叫直积. 假设我们有一个集合 A = {a, b}, 还有一个集合B = {0, 1, 2} ,那么这两个两集 ...
- MySQL数据库右连接查询right join ... on
1. 右连接查询 以右表为主根据条件查询左表数据,如果根据条件查询左表数据不存在使用null值填充. 右连接查询效果图: 右连接查询语法格式: select 字段 from 表1 right join ...
- MySQL数据库左连接查询left join ... on
1. 左连接查询 以左表为主根据条件查询右表数据,如果根据条件查询右表数据不存在使用null值填充 左连接查询效果图: 左连接查询语法格式: select 字段 from 表1 left join 表 ...
- 关乎mysql数据库的连接查询和子查询的效率问题
前言:正常情况下,连接查询是比子查询效率要高的,因为子查询需要创建临时表.但是,在实际测试中,有部分情况子查询效率会比连接查询要高 1:去重的情况下 ①连接查询 SELECTDISTINCT itm. ...
- java操作mysql数据库_java连接mysql数据库 三 实现增删改查操作
public classJDBCTest {public static voidmain(String[] args){//add(uname, uemail, upwd);//update(&quo ...
- java调用mysql数据库的基本操作方法
一. 关于java与mysql数据库的连接: //加载数据库驱动Class.forName("com.mysql.jdbc.Driver");//获取连接//http://bai ...
- java mysql 查询_java连接mysql数据库达成数据查询详细教程
前言:本篇文章适用于所有前后端开发者 众所周知,只要是编程,那肯定是需要存储数据的,无论是c语言还是java,都离不开数据的读写,数据之间传输不止,这也就形成了现代互联网的一种相互存在关系! 而读写存 ...
- mysql分页查询出租房屋信息_分页查询信息(使用jdbc连接mysql数据库实现分页查询任务)...
分页查询信息 使用jdbc连接mysql数据库实现分页查询任务 通过mysql数据库提供的分页机制,实现商品信息的分页查询功能,将查询到的信息显示到jsp页面上. 本项目时一个简单的运用eclipse ...
- java操作MySQL数据库(插入、删除、修改、查询、获取所有行数)
插播一段广告哈:我之前共享了两个自己写的小应用,见这篇博客百度地图开发的两个应用源码共享(Android版),没想到有人找我来做毕设了,年前交付,时间不是很紧,大概了解了下就接下了,主要用到的就是和服 ...
最新文章
- HTML常用基础标签
- 关于PyCharm无法启动的问题
- 【Java报错】Greenplum数据库报错 Value can not be converted to requested type 问题解决(踩坑分享)
- 我的世界基岩版json_我的世界基岩版1.16
- 抽象方法,抽象类,接口
- java怎么实现日程提醒_如何用java和xml实现日程提醒
- 求职必看!大厂面试中遇到了发散性问题..... ,怎么办?
- 计算机出现故障的种种现象,【维修狮】主板常见的几种故障现象和引起故障的原因...
- 家用电器插头插座外壳防冲击等级试验——IK摆锤冲击试验装置
- python+selenium实现QQ空间的登录
- 有限元基础及ANSYS应用 - 第4节 - 平面桁架结构的ANSYS分析
- 路由器与交换机的区别与联系
- 单片机基础项目(上)
- PHP中explode()和implode()函数讲解和实战用法
- bzoj4453: cys就是要拿英魂!(后缀数组+单调栈+set)
- 华为区块链,构建可信政务服务
- 机巧围棋(CleverGo)项目总览及介绍
- 微信程序开发之微信接入(详细开发)
- RADARSAT-1数据下载
- tensorflow入门实战----VGG16完成猫狗分类
热门文章
- abaqus最大应力准则怎么用_ANSYS与ABAQUS对比,你选择那个?
- ROS知识【12】:用户的功能包覆盖系统功能包
- mysql删除账户后不能使用_MySQL删除普通用户
- php服务器队列执行,lnmp php添加队列服务器的配置
- mysql 创建唯一索引_Mysql创建索引
- 微信小程序之下拉加载和上拉刷新
- python3 bytes和str转换,解决图片base64调用api的问题
- 如何解决两个相邻的span中间空隙
- js 图片 mysql_jQuery+PHP+Mysql在线拍照和在线浏览照片
- 多选取值_R语言缺失值的处理——回归预测法