MySQL入门很简单: 15 java访问MySQL数据库
1. 连接数据库
1.1 下载安装驱动
java通过JDBC(Java Database Connectivity,Java数据库连接)来访问MySQL数据库。JDBC的编程接口提供的接口和类与MySQL数据库建立连接,然后将SQL语句的执行结果进行处理。
1)下载MySQL Connector/J驱动
http://dev.mysql.com/downloads/file/?id=460363
2)MyEclipse导入JDBC驱动
Window|Perference Path|User Libraries New 新建库文件:MySQL-JDBC Add JARs
右击工程名 Build Path, Add Library, User Library , Next, 选择MySQL-JDBC
1.2 连接MySQL数据库
java.sql 包中存在 DriverManager类, Connection接口,Statement接口,ResultSet接口 DriverManager类:管理驱动程序和连接数据库 Connection接口:管理建立好的数据库连接 Statement接口:执行SQL语句 ResultSet接口: 存储数据库返回的记录
1)使用java.lang.Class类中的forName()指定JDBC驱动的类型

2)使用DriverManager类和Connection接口连接数据库


2. 操纵数据库
1)创建Statement对象

2)使用SELECT语句查询数据


3)插入更新或删除数据

4)执行任意SQL语句


5)关闭创建的对象

3.备份和还原数据库
1)备份


2)还原

实例:
1. 编写DB.java类
1)通过DB.java类连接MySQL数据库,然后操作test数据库下的sorce表
2)在DB.java类中查询sorce表中的所有记录,SELECT语句如下: SELECT * FROM sorce
3)向sorce表中插入一条新记录,INSERT语句如下: INSERT INTO sorce VALUES(25,905, 'English', 95);
4)更新id为25的记录,将grade字段的值设为80,UPDATE语句为:UPDATE score SET grade=80 WHERE id=25;
5)关闭打开的所有数据库对象
2. 编写DB_backup_load.java类
1)该类中定义backup()方法,通过backup()方法备份test数据库
2)该类中定义load()方法,通过load()方法还原test数据库
import.java.sql.Connection;
import.java.sql.DriverManager;
import.java.sql.ResultSet;
import.java.sql.SQLException;
import.java.sql.Statement; //执行SELECT INSERT UPDATE语句 public class DB{
public static void main (String args[]){ //将JDBC的协议 主机名 端口号 需要连接的数据库等信息复制给字符串变量url
String url="jdbc:mysql://localhost:3306/test";
String user="root";
String passwd="huang";
String sql1="SELECT * FROM score";
String sql2="INSERT INTO score VALUES(25,905,'English',95)";
String sql3="UPDATE score SET grade=80 WHERE id=25";
try{
Class.forname("com.mysql.jdbc.Driver"); //指定MySQL驱动
Connection con=DriverManager.getConnection(url,user,passwd);
System.out.println("连接数据库服务器成功");
Statement stat=con.createStatement();
ResultSet rs=stat.executeQuery(sql1); //执行SELECT
//SELECT语句的查询结果存储在rs中,按顺序读取rs中的每一条记录
while(rs.next()){
int id=rs.getInt("id");
int stu_id=rs.getInt("stu_id");
String couse=rs.getString("c.name");
int grade=rs.getInt("grade");
System.out.println(id+" "+stu_id+" "+couse+" "+grade);
} //通过executeUpdate()方法执行INSERT语句,执行完成后返回插入的记录
int i=stat.executeUpdate(sql2);
if(i!=0)
{
System.out.println("INSERT 语句执行成功");
}
//通过executeUpdate()执行UPDATE语句 完成后返回更新的记录数
int j=stat.executeUpdate(sql3);
if(j!=0){
System.out.println("UPDATE 语句执行成功");
} //如果ResultSet对象不为空,那么调用close()关闭ResultSet对象
if(rs!=null){
rs.close();
rs.null;
} //如果Statement对象不为空,那么调用close()关闭Statement对象
if(stat!=null){
stat.close();
stat.null;
} //如果Connection对象不为空,那么调用close()关闭Connection对象
if(con!=null){
con.close();
con.null;
}
}catch(ClassNotFoundException e){
System.out.print("没有找到MySQL驱动")
}catch(SQLException e){
System.out.print("连接数据库服务器失败")
} }
}
import java.io.IOException;
public class DB_backup_load{
private static String str=null;
public static void backup(){ str="mysqldump -u root -phuang --opt test >c:/test.sql";
try{
//使用exec()函数执行mysqldump命令
//该代码在windows下运行,需要加上"cmd \c"
Runtime rt=Runtime.getRuntime();
rt.exec("cmd/c"+str);
System.out.println("备份成功");
}catch(IOException e){
e.printStackTrace();
System.out.println("备份失败");
}
} public static void load(){
str="mysql -u root -phuang test <c:/test.sql";
try{
RunTime rt=RunTime.getRuntime();
rt.exec("cmd/c"+str);
System.out.println("还原成功");
}catch(IOException e){
e.printStackTrace();
System.out.println("还原失败");
}
} publ static void main(String args[]){
DB_backup_load db=new DB_backup_load();
db.backup();
db.load();
}
}
MySQL入门很简单: 15 java访问MySQL数据库的更多相关文章
- 《Mysql 入门很简单》(读后感①)
下载完整版<Mysql 入门很简单>,点击这里~: http://files.cnblogs.com/files/zhengyeye/MySQL%E5%85%A5%E9%97%A8%E5% ...
- MySQL入门很简单: 12 MYSQL 用户管理
1. 权限表 安装MySQL会自动安装一个名为mysql的数据库,存储权限表: user表, db表,host表,table_priv表,columns_priv表,proc_priv表等. 1)us ...
- MySQL入门很简单: 1 数据库概述
1. 数据库概述 1.1 数据存储方式: 1)人工管理阶段 2)文件系统阶段: 文件系统通过文件的存储路径和文件名称访问文件中的数据 3)数据库系统阶段:Oracle, SQL Server, MyS ...
- MySQL入门很简单-触发器
1.触发器是由事件来触发某个操作,这些事件包括insert语句.update语句和delete语句.当数据库系统执行这些事件时,会激活触发器执行相应操作.MySQL从5.0.2开始支持触发器.使用触发 ...
- MySQL入门很简单: 14MySQL日志
二进制日志: 以二进制文件的形式记录了数据库中的操作,但不记录查询语句 错误日志: 记录MySQL服务器的启动,关闭和运行错误等信息 通用查询日志: 记录用户登录和记录查询的信息 慢查询日志: 记录执 ...
- MySQL入门很简单: 13 数据备份和还原
1. 数据备份 1)使用mysqldump命令备份 第一种:备份一个数据库 mysqldump -u username -p dbname table1 table2 ... > BackupN ...
- MySQL入门很简单: 8查询数据
1. 查询语句语法 SELECT 属性列表 FROM 表名和视图列表 [WHERE 条件表达式1] [GROUP BY 属性名1 [HAVING t条件表达式2]] [ORDER BY 属性名2 [A ...
- MySQL入门很简单: 2 MySQL数据类型
2. MySQL数据类型 2.1 整数类型 后面的是默认显示宽度: tinyint(4) smallint(6) mediumint(9) int(11) bigint(20) 2.2 浮点型和定点数 ...
- MySQL入门很简单: 6 视图
1. 视图含义作用 视图是虚拟的表,是从数据率中一个或多个表中导出来的表: 数据库中只存放了视图的定义,没有存放视图中的数据,数据在原先的表中: 一旦表中的数据发生变化,显示在视图中的数据也会发生 ...
随机推荐
- CodeForces-Zuhair and Strings(思维+枚举)
Given a string ss of length nn and integer kk (1≤k≤n1≤k≤n). The string ss has a level xx, if xx is l ...
- Codeforces-Salem and Sticks(枚举+思维)
Salem gave you nn sticks with integer positive lengths a1,a2,-,ana1,a2,-,an. For every stick, you ca ...
- day34 协程
1. 前提 之前我们学习了线程.进程的概念,了解了在操作系统中进程是资源分配的最小单位,线程是CPU调度的最小单位.按道理来说我们已经算是把cpu的利用率提高很多了.但是我们知道无论是创建多进程还 ...
- NPOI2.0导出excel之添加样式、边框和表头
//优化后导出excel public System.IO.Stream ExcelStream(string search) // { var orderBusiniss = Containers. ...
- sqoop数据校验
sqoop数据校验 # check data oracle_cnt=$(sqoop eval \ -Dmapred.job.queue.name=${queue} \ --connect ${conn ...
- mybatis主键是在insert前生成还是之后生成
oracle sequence 推荐每个表使用自己的sequence mysql 使用每个表的autoincreate来当主键 mybatis 操作insert时 主键的生成是在插入之前 还是之后? ...
- sofa-boot(1)helloworld项目
本示例参考:https://www.sofastack.tech/sofa-boot/docs/QuickStart 示例采用sofa-boot 3.1.1版本. 如下步骤: 1.进入https:// ...
- 分治法 - Divide and Conquer
在计算机科学中,分治法是一种很重要的算法.分治法即『分而治之』,把一个复杂的问题分成两个或更多的相同或相似的子问题,再把子问题分成更小的子问题……直到最后子问题可以简单的直接求解,原问题的解即子问题的 ...
- Mockjs详细使用说明
Mock.js 是一款前端开发中拦截Ajax请求再生成随机数据响应的工具.可以用来模拟服务器响应. 优点是非常简单方便, 无侵入性, 基本覆盖常用的接口数据类型. 在我们的生产实际中,后端的接口往往是 ...
- keepalived双机热备实现故障时发送邮件通知
目前项目已经采用nginx来实现负载均衡,但是nginx调度器只有一台,上次还意外的down机一次,导致整个服务应用全部瘫痪,这次准备再加一个调度器来实现站点高可用性,也就是常说的双机热备了. mas ...