总结java操作MySQL 即JDBC的使用
java.sql包中存在DriverManager类,Connection接口,Statement接口和ResultSet接口。类和接口作用如下:
DriverManager:主要用于管理驱动程序和连接数据库;
Connection接口:主要用于管理建立好的数据库连接;
Statement接口:主要用于执行SQL语句;
ResultSet接口:主要用于存储数据库返回的记录。
- 1. 连接MYSQL数据库
首先使用java.lang.Class类中forName( )方法指定JDBC驱动的类型。forname()方法指定MYSQL驱动的语句如下:
Class.forName(“com.mysql.jdbc.Driver”);
使用forName()方法需要抛出ClassNotFountException异常。
指定了MYSQL驱动程序后,就可以使用DriverManager类和Connection接口来连接数据库。在DriverManager类中提供了getConnection()方法,此方法有三参数,分别为:url,user,password。
url:指定JDBC的数据源。基本形式是“jdbc:mysql:数据源”。数据源中包括了IP或主机名,端口号和数据库名。例:jdbc:mysql://localhost:3306/hjh.
localhost表示本地计算机;3306是MYSQL端口号;hjh是数据库名。
user:MYSQL数据库的用户名
password:指定用户名的密码
例:下面为连接本地计算机的MYSQL数据库。MYSQL使用默认端口3306,连接的数据库是hjh,同户名‘root’,密码’huang’
Connection connection=DriverManager.getConnection(
“jdbc:mysql://localhost:3306/hjh”,”root”,”huang”);
这个语句要调用java.sql包下面的DriverManager类和Connection接口。Connection接口是在JDBC驱动中实现的。
- 2. java操作MySQL数据库
Statement接口主要用来执行SQL语句,其中定义一些执行SQL语句的方法。SQL语句执行后返回结果由ResultSet接口管理。
Connection对象调用createStatement()方法创建Statement对象
Statement statement =connection.createStatement();
Statement对象可以调用executeQuery()方法执行SELECT语句,select语句查询返回给Result对象。
ResultSet result =statement.executeQuery(“SELECT语句”);
插入,更新或者删除数据
executeQuery()方法只能执行select语句。
如果需要进行插入,更新或者删除操作,需要Statement对象调用executeUpdate()方法实现,executeUpdate()方法执行完毕后,返回影响表的行数。
int result =statement.executeUpdate(sql);
其中,sql参数必须是insert语句,update语句或delete语句,该方法返回结果为数字
例:score表插入一条新纪录
Statement statement=connection.createStatement();
String sql =”insert into score values(21,902,’英语’,85)”;
int result=statement.executeUpdate(sql);
System.out.println(result); //输出插入的记录数
执行任意SQL语句
无法确定要执行的SQL语句是查询还是更新时,可以使用execute()函数。该函数返回结果是boolean类型值,返回true表示执行查询语句,false表示执行更新语句。
boolean result=statement.execute(sql);
如要获取select语句的查询结果,需要调用getResultSet()方法
如果要获取insert语句,update语句或者delete语句影响表的行数getUpdateCount()方法。
Result result1=statement.getResultSet();
int result2 = statement.getUpdateSet();
例:调用execute()函数执行SQL语句,部分代码:
Statement statement=connection.createStatement();
sql=”select stu_id,c_name,grade from score”;
boolean st=statement.execute(sql);
if(st==true){
ResultSet result=statement.getResultSet();
while(result.next()){
String id=result.getString(“stu_id”);
String course = result.getString(“c_name”);
String grade = result.getString(“grade”);
System.out.println(id+” “ + “ “+grade);
}
}
else{
int i=statement.getUpdateCount();
System.out.println(“The number is” + i);
关闭创建的对象
所有SQL语句执行完毕后,需要关闭所创建的Connection对象,Statement对象和ResultSet对象。关闭对象的顺序与创建对象的顺序相反,关闭的顺序为ResultSet对象,Statement对象,Connection对象。
例:关闭的部分代码
if(result!=null){
result.close();
result=null;
}
if(statement!=null){
statement.close();
statement=null;
}
if(connection!=null){
connection.close();
connection=null;
}
JAVA备份与还原MySQL数据库
java语言中可以执行mysqldump命令来备份MySQL数据库,也可以执行mysql命令还原MySQL数据库。
通常使用mysqldump命令来备份MySQL数据库。语句如下:
mysqldump -u username -pPassword dbname table1 table2…>backupname.sql
username参数表示登陆数据库的用户名;password参数表示用户的密码,其与-p之间不能用空格隔开;dbname参数表示数据库的名称;table1和table2参数表示表的名称,没有该参数时将备份整个数据库;backupname.sql参数表示备份文件的名称,文件名前面可以加上一个绝对路径。通常将数据库被分成一个后缀名为sql的文件。
java语言的runtime类中的exec()方法可以运行外部命令。调用exec()方法的代码如下:Runtime rt=Runtime.getRuntime();
rt.exec(“命令语句”);
例:下面是windows操作系统下java备份MySQL数据库
String str=”mysqldump -u root -phuang --opt test>c:/test.sql”;
Runtime rt =Runtime.getRuntime();
rt.exec(“cmd/c”+str);
“--opt”选项可以提高备份的速度;“cmd”表示要使用cmd命令来打开dos窗口;
“/c”表示执行完命令后关闭命令窗口。
注:windows操作系统下一定要加上cmd/c。因为windows操作系统中,mysqldump命令是在dos窗口中运行的。
通常使用mysql命令来还原MySQL数据库。
mysql -u username -pPassword [dbname]<backupName.sql;
dbname参数表示数据库名称。该参数是可选参数,可以指定数据库名,也可不指定
例:windows系统下java还原MySQL数据库
String str=”mysql -u root -phuang test <c:/test.sql”;
Runtime rt=Runtime.getRuntime();
rt.exec(“cmd/c” +str);
总结java操作MySQL 即JDBC的使用的更多相关文章
- Java操作数据库——使用JDBC连接数据库
Java操作数据库——使用JDBC连接数据库 摘要:本文主要学习了如何使用JDBC连接数据库. 背景 数据持久化 数据持久化就是把数据保存到可掉电式存储设备中以供之后使用.大多数情况下,特别是企业级应 ...
- Java操作数据库——在JDBC里使用事务
Java操作数据库——在JDBC里使用事务 摘要:本文主要学习了如何在JDBC里使用事务. 使用Connection的事务控制方法 当JDBC程序向数据库获得一个Connection对象时,默认情况下 ...
- Java操作Sqlite数据库-jdbc连接
Java操作Sqlite数据库步骤: 1. 导入Sqlite jdbc 本文使用sqlite-jdbc-3.7.2.jar,下载地址 http://pan.baidu.com/s/1kVHAGdD 2 ...
- java操作MySQL数据库(插入、删除、修改、查询、获取所有行数)
插播一段广告哈:我之前共享了两个自己写的小应用,见这篇博客百度地图开发的两个应用源码共享(Android版),没 想到有人找我来做毕设了,年前交付,时间不是很紧,大概了解了下就接下了,主要用到的就是和 ...
- Java 操作MySql数据库
Java 项目开发中数据库操作是很重要的一个方面,对于初学者来说,MySql是比较容易熟悉的一种常见数据库,这篇文章记录了如何用Java来操作MySql数据库. 第一章 JDBC的概念 JDBC(Ja ...
- Java操作数据库之JDBC增删改查
1.java连接MySql数据库 代码区域: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 ...
- Java操作SQL数据库(JDBC)
0.引入驱动jar包 使用jdbc进行具体操作前,需要引入相关数据库的jar包, 或者使用mave管理依赖 <!-- https://mvnrepository.com/artifact/mys ...
- JAVA操作mysql(如何更加面向对象的操作数据库)
既然谈到面向对象,所以,先把连接信息给搞个对象出来: public class DBInfo { private String driver; private String host; private ...
- eclipse环境下,java操作MySQL的简单演示
首先先通过power shell 进入MySQL 查看现在数据库的状态(博主是win10系统) 右键开始,选择Windows powershell ,输入MySQL -u用户名 -p密码 选择数据库( ...
随机推荐
- 全文搜索引擎 Elasticsearch 安装踩坑记录
一.安装 Elastic 需要 Java 8 环境.如果你的机器还没安装 Java 安装完 Java,就可以跟着官方文档安装 Elastic.直接下载压缩包比较简单. $ wget https://a ...
- HTML简介及基本标记
HTML简介 HTML是Hypertext Markup Language的英文缩写,即超文本标记语言 使用 HTML 语言可以: 控制页面和内容的外观 插入的链接检索联机信息 创建表单,收集用户的信 ...
- iOS之苹果调整 App Store 截图上传规则,截图尺寸、大小等
作者:ASO100链接:https://zhuanlan.zhihu.com/p/23041522来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明出处. 自从 8 月中旬苹果向 ...
- Javascript中的内存泄漏
最新博客站点:欢迎来访 一.内存泄漏 由于某些原因不再需要的内存没有被操作系统或则空闲内存池回收.编程语言中有多种管理内存的方式.这些方式从不同程度上会减少内存泄漏的几率,高级语言嵌入了 ...
- swiper不能手指滑动翻页的解决办法
/*当swiper中的slide的里面放入长度在手机上不能滑动的时候 放入这段代码就可以了*/ var startScroll, touchStart, touchCurrent; ...
- Linux入门-第五周
1.磁盘lvm管理,完成下面要求,并写出详细过程: 1) 创建一个至少有两个PV组成的大小为20G的名为testvg的VG;要求PE大小 为16MB, 而后在卷组中创建大小为5G的逻辑卷testlv; ...
- [转]select top n 动态赋值
怎样实现 select top n 语句中 n 的动态赋值呢?怎样实现 select top n 语句中 n 的动态赋值,求教各位了. 要把这个n值传到存储过程中,再加入 select t ...
- SpringBoot学习(1)
springboot的自动配置功能,主要流程如下: 1 启动的时候加载我们的主配置类,也就是我们的入口类:从而开启我们的自动配置配置功能,这个是通过@EnableAutoConfiguration注解 ...
- Jetson tx1 安装cuda错误
前两天安装Jetpack3.0的时候,看着网上的教程以为cuda会自动安装上,但是历经好几次安装,都安装不上cuda,也刷了好几次jetpack包.搜遍了网上的教程,也没有安装上.错误如下图所示: 这 ...
- R语言绘图:在地图上绘制热力图
使用ggplot2在地图上绘制热力图 ######*****绘制热力图代码*****####### interval <- seq(0, 150000, 25000)[-2] #设置价格区间 n ...