java访问MySQL数据库_MySQL
- WBOYOriginal
- 2016-06-01 13:12:051170browse
java访问MySQL数据库
一、java连接MySQL数据库
1、安装mysql connector/j驱动 添加jdbc驱动: mysql-connection-java-5.1.10-bin.jar2、连接MySQL数据库 在java.sql包中存在DriverManager类、Connection接口、Statement接口和ResultSet接口。DriverManager类:管理驱动程序和连接数据库Connection接口:管理建立好的数据库连接Statement接口:执行sql语句ResultSet接口:存储数据库返回的记录
forName()方法指定MySQL驱动的语法如下:class.forname("com.mysql.jdbc.Driver");class.forName("org.git.mysql.Driver");两个驱动实际上是一样的,后者继承前者。getConnection()方法有三个参数,分别是url、user和password。url指定idbc的数据源,数据源必须要指定他的IP、端口号等。Connection connection=DriverManager.getConnection(url,user,password); //创建connection对象例子:连接本地计算机的mysql数据库,mysql使用默认端口3306,连接的数据库是syq,使用用户root来连接,root用户的密码是123456.连接mysql的语句如下:Connectionconnection=DriverManager.getConnection("jdbc:mysql://localhost:3306/syq","root","123456");通过这个语句就可以连接到MySQL的syq数据库了。该语句也可以写成下面的形式:String url="jdbc:mysql://localhost:3306/syq"; //获取协议、IP、端口等信息String user="root"; //获取数据库用户名String password="123456";//获取数据库用户密码Connection connection=DriverManager.getConnection(url,user,password); //创建Connection对象二、java操纵MySQL数据库 连接MySQL数据库之后,可以对MySQL数据库中的数据进行查询、插入、更新、删除等操作。Statement接口主要用来执行sql语句,其中定义一些执行sql语句的方法。sql语句执行后返回结果由ResultSet接口管理。通过这两个接口,java可以方便的操作MySQL数据库。1、创建Statement对象Connection对象调用createStatement()方法来创建Statement对象,其代码如下:Statement statement=connection.createStatement();其中,statement是Statement对象;createStatement()方法返回Statement对象。通过这个java语句就可以创建Statement对象。Statement对象创建成功后,可以调用其中的方法来执行SQL语句。2、使用select语句查询数据Statement对象可以调用excuteQuery()方法执行select语句。select的查询结果返回给ResultSet对象。调用excuteQuery()方法的代码是:ResultSet result=statement.excuteQuery("select语句");通过该条语句可以将查询结果存储 到result中。查询结果可能有多条记录,这就需要使用循环语句来读取所有记录,其代码如下:while(result.next()){String s=resule.getString("字段名");System.out.print(s);}例子:从score表中查询学生的学号、考试科目和成绩,部分代码:Statement statement=connection.createStatement();Result result=statement.excuteQuery("select stu_id,c_name,grade from score");while(result.next()){String id=result.getString("stu_id");String course=result.getString("c_name");String grade=result.getString("grade");System.out.println(id+" "+course+" "+grade);}3、插入更新或者删除数据excuteQuery()方法只能执行select语句。如果需要进行插入、更新或者删除操作,则需要Statement对象调用excuteUpdate()方法来实现。excuteUpdate执行完后,返回影响表的行数。下面是调用excuteUpdate()方法的代码:int result=statement.excuteUpdate(sql);其中“sql”必须是insert语句、update语句或者delete语句。该方法返回的结果为数字。例子:下面向score表插入一条新记录,部分代码:Statement statement=connection.createStatement();String sql="insert into score values(21,902,'英语',85)";int result=statement.excuteUpdate(sql);System.out.println(result);更新score表中id为16的记录,将该记录的grade字段值 改为100,部分代码:Statement statement=connection.createStatement();String sql="UPDATE score set grade=100 where id=16";int result=statement.excuteUpdate(sql);System.out.println(result);删除score表中id为16的记录,部分代码:Statement statement=connection.createStatement();String sql="delete from score where id=16";int result=statement.excuteUpdate(sql);System.out.println(result);4、执行任意sql语句 无法确定要执行的语句是查询还是更新时,可以使用excute()函数。该函数的返回结果是boolean类型的值,返回值为true表示执行查询语句,false表示执行更新语句。下面是调用excute()方法的代码:boolean result=statement.excute(sql);5、关闭创建的对象 当所有sql语句都执行完毕后,需要关闭创建的Connection对象、Statement对象和Result对象。关闭对象的顺序与创建对象的顺序相反,关闭的顺序为ResultSet对象、Statement对象、Connection对象。对象调用close()方法来关闭对象,然后将对象的值设为空。关闭对象部分代码:if(result!=null){ //判断ResultSet对象是否为空result.close();//调用close()方法关闭ResultSet对象result=null;}if(statement!=null){statement.close();statement=null;}if(connection!=null){connection.close();connection=null;}三、java备份与还原MySQL数据库java语言中可以执行mysqladmin命令来备份MySQL数据量,也可以执行mysql命令来还原mysql数据库。1、java备份MySQL数据库通常使用mysqldump命令来备份MySQL数据库,其语句如下:mysqldump -u username -pPassword dbname table1 table2 …>BackupName.sql调用exec()方法代码:Runtime rt=Runtime.getRuntime();rt.exec("命令语句");例子:Windows操作系统下java备份MySQL数据库:String str="mysqldump -u root -p123456 --opt test>C:/test.sql";//将mysqldump命令的语句赋值给strRuntime rt=Runtime.getRuntime();//创建Runtime对象rt.exec("cmd/c"+str);//调用exec()函数
2、java还原MySQL数据库通常使用mysql命令来还原MySQL数据库,其语句如下:mysql -u root -p [dbname]Statement:The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn