JavaMySQL数据库学习笔记(八)—-JDBC入门及简单增加和删除改数据库的操作

 

【声明】 

欢迎转发,但请保留作品原来出处→_→ 

生命壹号:http://www.cnblogs.com/smyhvae/

作品来源:http://www.cnblogs.com/smyhvae/p/4050825.html

 

【正文】                                                           
                                                                       
         **

一、JDBC的引入                   
                                                                       
                        

1、JDBC的概念

JDBC:Java Database Connection,表示数据库连接(任何数据库都帮衬JDBC的连日),是三个单身于特定数据库管理类别、通用的sql数据仓库储存取和操作的共用接口。它是java中等专业高校门提供的一组用于操作数据库的标准,全数的数据库生产商假若借使想为java提供支撑,则必须辅助此规范。既然是正经的话,所以说JDBC实际上是一套访问数据库的接口

二 、常用操作类/接口

Connection接口、Statement接口、PreapredStatement接口、ResultSet接口、CallableStatement接口、DriverManager类。

三 、JDBC应用步骤

  • 1.登记加载1个使得
  • 2.创立数据库连接(Connection)
  • 3.构造SQL语句
  • 4.创建statement,发送sql语句
  • 5.执行sql语句
  • 6.处理sql结果
  • 7.关闭statement和connection 

                                       
                                        

② 、驱动程序下载:                     
                                                                       
                   

基于上一段的概念,大家领略了,java定义JDBC接口,数据库来兑现这么些接口。分化的厂商对JDBC有区别的贯彻,所以厂商要提供温馨数据库的驱动,让应用程序来走访。而应用程序则只透过本身的一套JDBC接口来做客就行了,然后驱动程序来促成这么些接口,从而让驱动来调用数据库。所以大家好不不难掌握了那句话:驱动程序由数据库提供商提供下载

在Java中,驱动程序是以jar包的样式提供的,MySQL驱动程序的下载地址:http://dev.mysql.com/downloads/

Java 1

Java 2

上海教室中,采取“Connector/J”的版本举行下载,弹出下三个界面,让我们挑选平台来下载:假使选拔windows平台,界面如下:

Java 3

假诺选择跨平台,界面会成为上面包车型地铁这么些样子:

Java 4

上海体育场地中,第三个本子是Linux平台的压缩包,第①个是Windows平奥兰多的压缩包,这大家选用上海教室中的红框部分开始展览下载:

Java 5

上图中,不用登记,直接下载。下载实现后,解压:

Java 6

上海教室中,红框部分的mysql-connector-java-5.1.33-bin.jar正是大家所须要的包。

 

三 、JDBC达成容易增加和删除改操作             
                                                                       
                

  • ① 、JDBC操作前的备选工作
  • 贰 、达成插入操作
  • 叁 、完毕革新操作
  • 肆 、达成删除操作
  • ⑤ 、代码优化(写成工具类):将字段换来变量

① 、JDBC操作前的备选干活:

首先创制数量库表:person。字段:id,name,age,description。建表的通令如下:

CREATE TABLE person(
id int primary key auto_increment,
name varchar(20),
age int(2),
description varchar(100)
);

创造的空表如下:

Java 7

继之导入数据库驱动包:

开拓eclipse,新建Java工程JDBC01,然后在根目录下新建1个文本夹libs:

Java 8

然后复制从前下载的驱动包mysql-connector-java-5.1.33-bin.jar,粘贴到libs目录下,然后到了最重庆大学的一步:将该Java包添加到工程的Build
path中,操作如下图:

Java 9

倘使生效之后,就会多出3个文书出来:(下图中的箭头处)

Java 10

② 、达成插入操作:

手续如下:

  • 壹 、加载数据库驱动程序:Class.forName(驱动程序类);
  • ② 、通过用户名密码和连接地址url获取数据库连接对象:Connection
    connnction =
    DriverManager.getConnection(连接地址url,用户名,密码)。每一种数据库都有钦定的url,同一格式如下:jdbc:mysql://ip地址:端口号/数据库名字。
  • 叁 、构造插入的SQL语句。注:在Java程序个中,SQL语句是以字符串的样式利用,程序不认得此SQL语句,传到数据库后让数据库来分辨。
  • 四 、成立Statement实例:Statement stmt =
    connction.createStatement()。Statement是用来发送SQL语句的载体,因为Java代码不可能解析,要提交数据库来分析。
  • 五 、执行插入SQL语句:stmt.executeUpdate(sql)。那里的执行是发送SQL语句。再次回到值为int类型,表示有些许条记下被更新了。
  • ⑥ 、关闭连接:stmt.close()、
    connnction.close()。关闭是为着释放财富。

注:那个手续是初始的用法,能够看做模板来用。大家来举个例子。

在工程文件中新建3个java类,作为主程序:

Java 11

JdbcTest.java完整版代码如下:(注释很详细)

 1 package com.vae.jdbc;
 2 
 3 import java.sql.Connection;
 4 import java.sql.DriverManager;
 5 import java.sql.SQLException;
 6 import java.sql.Statement;
 7 
 8 public class JdbcTest {
 9 
10     /**
11      * @param args
12      */
13     
14     //数据库连接地址
15     private final static String URL = "jdbc:mysql://localhost:3306/mydb_2";
16     //用户名
17     public final static String USERNAME = "root";
18     //密码
19     public final static String PASSWORD = "smyh";
20     //加载的驱动程序类(这个类就在我们导入的jar包中)
21     public final static String DRIVER = "com.mysql.jdbc.Driver";
22     
23     public static void main(String[] args) {
24         // TODO Auto-generated method stub
25         insert();
26     }    
27     
28     
29     //方法:插入数据
30     public static void insert(){
31         try {
32             //1、加载数据库驱动程序
33             Class.forName(DRIVER);
34             
35             //2、获取数据库连接
36             Connection connection  = DriverManager.getConnection(URL, USERNAME, PASSWORD);
37             
38             //3、构造SQL语句(插入具体的数据)
39             String sql = "insert into person(name,age,description)values('生命壹号',22,'学到哪里,我的博客就写到哪里')";
40             
41             //4、构造一个Statement实例(用来发送SQL语句的载体)
42             Statement state = connection.createStatement();
43             
44             //5、执行SQL语句(其实是向数据库中发送sql语句)
45             state.executeUpdate(sql);
46             
47             //6、关闭连接(释放资源)
48             state.close();
49             connection.close();
50             
51             System.out.println("insert success");
52             
53             
54         } catch (ClassNotFoundException e) {
55             e.printStackTrace();
56         } catch (SQLException e) {
57             e.printStackTrace();
58         }
59         
60     }    
61  
62 }

专注程序在导包时,导入的是上边的这一个包:

Java 12

代码解释:

15行的url代表连接接数据库的地址。命名格式统一如下:url =
“jdbc:mysql://ip地址:端口号/数据库名字”。假如是本机的话,IP地址能够写成localhost。

17行、19行:指的是数据库的用户名和密码。假使输入错误,会报错如下:

Java 13

21行:大家所加载的驱动程序类的名字是:com.mysql.jdbc.Driver,其实它就指的就是jar包中的com.mysql/jdbc/Driver.class文件。

程序运营成功后,后台会输出:

Java 14

大家再去数据库看一下,发现数目真的填充进去了:

Java 15

好不简单完结了Java代码与数据库之间的交换,任务成功。

叁 、完成立异操作:

和方面包车型客车插入操作比较,只是sql语句不均等而已(因为插入数据和更新数据实际上都是创新嘛)

手续如下:

创新操作的法子如下:(代码解释请参见上面的代码就懂了)

 1   //方法:更新数据
 2     public static void update(){
 3         try {
 4             Class.forName(DRIVER);
 5             Connection connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
 6             String sql = "update person set age=24 where id=1";
 7             Statement state = connection.createStatement();
 8             state.executeUpdate(sql);
 9             state.close();
10             connection.close();
11             System.out.println("update success");
12         } catch (ClassNotFoundException e) {
13             e.printStackTrace();
14         } catch (SQLException e) {
15             e.printStackTrace();
16         }
17     }

主导代码是第4行,大家将事先的二十四岁改为2伍虚岁。程序运维后,数据库里也会相应的进行创新。

四 、达成删除操作

同一的道理,和地点的插入操作相比较,只是sql语句差异而已(因为插入数据、更新数据、删除数据实际上都以翻新嘛)

剔除操作的艺术如下:

 1     //方法:删除操作
 2     public static void delete(){
 3         try {
 4             Class.forName(DRIVER);
 5             Connection connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
 6             String sql = "delete from person where id=1";
 7             Statement state = connection.createStatement();
 8             state.executeUpdate(sql);
 9             state.close();
10             connection.close();
11             System.out.println("delete success");
12         } catch (ClassNotFoundException e) {
13             e.printStackTrace();
14         } catch (SQLException e) {
15             e.printStackTrace();
16         }
17     }

主干代码是第06行和第08行。

5、**代码优化(写成工具类**):将字段换来变量

大家地点的增加和删除该的操作都以一直在sql里面放入具体的参数,可是有大概那种参数是外面传进来的,所以一种更便利的写法是把参数换来变量,大家以插队操作为例:

 1     //方法:插入数据(代码优化)
 2     public static void insert2(){
 3         String name = "生命贰号";
 4         int age  = 22;
 5         String description = "哈哈,我是优化之后的代码哦";
 6         try {
 7             Class.forName(DRIVER);
 8             Connection connection  = DriverManager.getConnection(URL, USERNAME, PASSWORD);
 9             //拼接SQL语句
10             String sql = "insert into person(name,age,description)values('"+name+"',"+age+",'"+description+"')";  //注意拼接的格式
11             Statement state = connection.createStatement();
12             state.executeUpdate(sql);
13             state.close();
14             connection.close();
15             System.out.println("success.");
16             
17             
18         } catch (ClassNotFoundException e) {
19             e.printStackTrace();
20         } catch (SQLException e) {
21             e.printStackTrace();
22         }
23         
24     }

宗旨代码是第七行,那里的sql语句是以变量的款型出现的,符合工具类的风味,留神它拼接的格式哦~~~来把它拆开再精心瞧一瞧:

String sql = “insert into person(name,age,description)values(‘ “+name+” ‘,      “+age+”,    ‘  “+description+”  ‘)”;

运作之后,效果如下:

Java 16

实在那种拼接的点子很不好:既麻烦又不安全。数据库的询问操作以及详细解释将在下篇小说中学习到,加油!!!

嗯,对了,最终再贴一下上方全部代码的全体版:

  1 package com.vae.jdbc;
  2 
  3 import java.sql.Connection;
  4 import java.sql.DriverManager;
  5 import java.sql.SQLException;
  6 import java.sql.Statement;
  7 
  8 public class JdbcTest {
  9 
 10     /**
 11      * @param args
 12      */
 13     
 14     //数据库连接地址
 15     private final static String URL = "jdbc:mysql://localhost:3306/mydb_2";
 16     //用户名
 17     public final static String USERNAME = "root";
 18     //密码
 19     public final static String PASSWORD = "smyh";
 20     //加载的驱动程序类(这个类就在我们导入的jar包中)
 21     public final static String DRIVER = "com.mysql.jdbc.Driver";
 22     
 23     public static void main(String[] args) {
 24         // TODO Auto-generated method stub
 25         insert();
 26         //update();
 27         //delete();
 28         //insert2();
 29     }   
 30     
 31     
 32     //方法:插入数据
 33     public static void insert(){
 34         try {
 35             //1、加载数据库驱动程序
 36             Class.forName(DRIVER);
 37             
 38             //2、获取数据库连接
 39             Connection connection  = DriverManager.getConnection(URL, USERNAME, PASSWORD);
 40             
 41             //3、构造SQL语句(插入具体的数据)
 42             String sql = "insert into person(name,age,description)values('生命壹号',22,'学到哪里,我的博客就写到哪里')";
 43             
 44             //4、构造一个Statement实例(用来发送SQL语句的载体)
 45             Statement state = connection.createStatement();
 46             
 47             //5、执行SQL语句(其实是向数据库中发送sql语句)
 48             state.executeUpdate(sql);
 49             
 50             //6、关闭连接(释放资源)
 51             state.close();
 52             connection.close();
 53             
 54             System.out.println("insert success");
 55             
 56             
 57         } catch (ClassNotFoundException e) {
 58             e.printStackTrace();
 59         } catch (SQLException e) {
 60             e.printStackTrace();
 61         }
 62         
 63     }
 64     
 65 
 66     //方法:插入数据(代码优化)
 67     public static void insert2(){
 68         String name = "生命贰号";
 69         int age  = 22;
 70         String description = "哈哈,我是优化之后的代码哦";
 71         try {
 72             Class.forName(DRIVER);
 73             Connection connection  = DriverManager.getConnection(URL, USERNAME, PASSWORD);
 74             //拼接SQL语句
 75             String sql = "insert into person(name,age,description)values('"+name+"',"+age+",'"+description+"')";  //注意拼接的格式
 76             Statement state = connection.createStatement();
 77             state.executeUpdate(sql);
 78             state.close();
 79             connection.close();
 80             System.out.println("success.");
 81             
 82             
 83         } catch (ClassNotFoundException e) {
 84             e.printStackTrace();
 85         } catch (SQLException e) {
 86             e.printStackTrace();
 87         }
 88         
 89     }
 90     
 91 
 92   //方法:更新数据
 93     public static void update(){
 94         try {
 95             Class.forName(DRIVER);
 96             Connection connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
 97             String sql = "update person set age=24 where id=1";
 98             Statement state = connection.createStatement();
 99             state.executeUpdate(sql);
100             state.close();
101             connection.close();
102             System.out.println("update success");
103         } catch (ClassNotFoundException e) {
104             e.printStackTrace();
105         } catch (SQLException e) {
106             e.printStackTrace();
107         }
108     }
109     
110     
111     //方法:删除操作
112     public static void delete(){
113         try {
114             Class.forName(DRIVER);
115             Connection connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
116             String sql = "delete from person where id=1";
117             Statement state = connection.createStatement();
118             state.executeUpdate(sql);
119             state.close();
120             connection.close();
121             System.out.println("delete success");
122         } catch (ClassNotFoundException e) {
123             e.printStackTrace();
124         } catch (SQLException e) {
125             e.printStackTrace();
126         }
127     }    
128 
129 }

 

相关文章