【MySQL 05】使用Java对MySQL进行操作(创建数据库)

黄舟
发布: 2017-02-04 11:52:15
原创
1476人浏览过

jdbc连接数据库:

1、加载JDBC驱动程序 
2、提供JDBC连接的URL 
3、创建数据库的连接 
4、创建一个Statement 
5、执行SQL语句 
6、处理结果 
7、关闭JDBC对象

1、加载JDBC驱动程序:

在连接数据库之前,首先要加载想要连接的数据库的驱动到JVM(Java虚拟机),这通过java.lang.Class类的静态方法

1

2

3

4

5

6

7

8

9

10

11

12

//加载数据库驱动总共有三种方式:

try{  

   //① 

   Class.forName("com.mysql.jdbc.Driver") ;  

   //②    com.mysql.jdbc.Driver driver = new com.mysql.jdbc.Driver();

   //③

   new com.mysql.jdbc.driver();

 

}catch(ClassNotFoundException e){  

   System.out.println("找不到驱动程序类 ,加载驱动失败!");  

   e.printStackTrace() ;  

}

登录后复制

成功加载后,会将Driver类的实例注册到DriverManager类中。

立即学习Java免费学习笔记(深入)”;

2、提供JDBC连接的URL

  • 连接URL定义了连接数据库时的协议、子协议、数据源标识。

  • MYSQL的JDBC URL 编写方式:jdbc:mysql://主机名称:端口号/数据库名称?user = 用户名 & password =密码& useUnicode = true & characterEncoding = UTF8

1

String url = "jdbc:mysql://localhost:3306/samp_db?" + "user=root&password=mysql&useUnicode=true&characterEncoding=UTF8";

登录后复制

3、创建数据库连接

•要连接数据库,需要向java.sql.DriverManager请求并获得Connection对象,该对象就代表一个数据库的连接。  
•使用DriverManager的getConnectin(String url , String username , String password )方法传入指定的欲连接的数

1

2

3

4

5

6

7

8

9

10

11

String url = "jdbc:mysql://localhost:3306/test" ;   

   String username = "root" ;  

   String password = "root" ;  

try{  

 

   Connection con = DriverManager.getConnection(url , username , password ) ; 

 

}catch(SQLException se){  

   System.out.println("数据库连接失败!");  

   se.printStackTrace() ;  

}

登录后复制

4、创建一个Statement

•要执行SQL语句,必须获得java.sql.Statement实例,Statement实例分为以下3 种类型:  
 1、执行静态SQL语句。通常通过Statement实例实现。  
 2、执行动态SQL语句。通常通过PreparedStatement实例实现。  
 3、执行数据库存储过程。通常通过CallableStatement实例实现。

1

2

3

4

5

Statement stmt = con.createStatement() ; 

 

   PreparedStatement pstmt = con.prepareStatement(sql) ;

 

   CallableStatement cstmt =   con.prepareCall("{CALL demoSp(? , ?)}") ;

登录后复制

5、执行SQL语句

Statement接口提供了三种执行SQL语句的方法:executeQuery 、executeUpdate 和execute 
1、ResultSet executeQuery(String sqlString):执行查询数据库的SQL语句,返回一个结果集(ResultSet)对象。 
2、int executeUpdate(String sqlString):用于执行INSERT、UPDATE或 DELETE语句以及SQL DDL语句,如:CREATE TABLE和DROP TABLE等 
3、execute(sqlString):用于执行返回多个结果集、多个更新计数或二者组合的语句。

1

2

3

ResultSet rs = stmt.executeQuery("SELECT * FROM ...") ;  

 int rows = stmt.executeUpdate("INSERT INTO ...") ;  

 boolean flag = stmt.execute(String sql) ;

登录后复制

6、处理结果

两种情况: 
1、执行更新返回的是本次操作影响到的记录数。 
2、执行查询返回的结果是一个ResultSet对象。 
• ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些行中数据的访问。 
• 使用结果集(ResultSet)对象的访问方法获取数据:

1

2

3

4

5

while(rs.next()){  

       String name = rs.getString("name") ;  

       String pass = rs.getString(1) ; // 此方法比较高效  

}  

  (列是从左到右编号的,并且从列1开始)

登录后复制

7、关闭JDBC对象

操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声明顺序相反:  
1、关闭记录集  
2、关闭声明  
3、关闭连接对象

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

if(rs != null){   // 关闭记录集  

   try{  

      rs.close() ;  

   }catch(SQLException e){  

      e.printStackTrace() ;  

   }  

}   if(stmt != null){   // 关闭声明  

   try{  

      stmt.close() ;  

   }catch(SQLException e){  

      e.printStackTrace() ;  

   }  

}  

 

if(conn != null){  // 关闭连接对象  

   try{  

      conn.close() ;  

   }catch(SQLException e){  

      e.printStackTrace() ;  

   }  

}

登录后复制

完整程序:

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

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

package org.Mysql;

import java.sql.Connection;import java.sql.DriverManager;

import java.sql.ResultSet;import java.sql.SQLException;

import java.sql.Statement;public class mysqlDemo {

 

    public static void main(String[] args) throws Exception {

        //使用connection进行数据库的连接,创建一个connection对象,用于数据库的连接

        Connection conn = null;

        String sql;

        // MySQL的JDBC URL编写方式:jdbc:mysql://主机名称(localhost):连接端口(3306)/数据库的名称?参数=值

        // 指定数据库的用户名和密码

        // 避免中文乱码要指定useUnicode和characterEncoding

        // 执行数据库操作之前要在数据库管理系统上创建一个数据库,名字自己定

        // 下面语句之前就要先创建samp_db数据库

        String url = "jdbc:mysql://localhost:3306/samp_db?"

                + "user=root&password=mysql&useUnicode=true&characterEncoding=UTF8";

 

        try {

            // 之所以要使用下面这条语句,是因为要使用MySQL的驱动,所以我们要把它驱动起来,

            // 可以通过Class.forName把它加载进去,也可以通过初始化来驱动起来,下面三种形式都可以

            // 动态加载mysql驱动

            Class.forName("com.mysql.jdbc.Driver");

            // or:

            // com.mysql.jdbc.Driver driver = new com.mysql.jdbc.Driver();

            // or:

            // new com.mysql.jdbc.Driver();

 

            System.out.println("成功加载MySQL驱动程序");

            // 一个Connection代表一个数据库连接

            conn = DriverManager.getConnection(url);

 

            // Statement里面带有很多方法,比如executeUpdate可以实现插入,更新和删除等

            Statement stmt = conn.createStatement();

            sql = "create table student(NO char(20),name varchar(20),primary key(NO))";

            int result = stmt.executeUpdate(sql);// executeUpdate语句会返回一个受影响的行数,如果返回-1就没有成功

            if (result != -1) {

                System.out.println("创建数据表成功");

                sql = "insert into student(NO,name) values('2012001','陶伟基')";

                result = stmt.executeUpdate(sql);

                sql = "insert into student(NO,name) values('2012002','周小俊')";

                result = stmt.executeUpdate(sql);

                sql = "select * from student";

                ResultSet rs = stmt.executeQuery(sql);// executeQuery会返回结果的集合,否则返回空值

                System.out.println("学号\t姓名");

                while (rs.next()) {

                    System.out

                            .println(rs.getString(1) + "\t" + rs.getString(2));// 入如果返回的是int类型可以用getInt()

                }

            }

        } catch (SQLException e) {

            System.out.println("MySQL操作错误");

            e.printStackTrace();

        } catch (Exception e) {

            e.printStackTrace();

        } finally {

            conn.close();

        }

 

    }

 

}

登录后复制

以上就是 【MySQL 05】使用Java对MySQL进行操作(创建数据库)的内容,更多相关内容请关注PHP中文网(www.php.cn)!

java速学教程(入门到精通)
java速学教程(入门到精通)

java怎么学习?java怎么入门?java在哪学?java怎么学才快?不用担心,这里为大家提供了java速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号