- 前言
- 二、怎么实现连接?
- 1.实现JAVA与数据库的连接
- 2.连接之后两者之间信息交换的实现
- 总结
前言
数据库是一个独立的程序,Java应用程序也是一个独立的程序,那么两者之间如何实现联系呢?这里我们使用JDBC来实现。
提示:以下是本篇文章正文内容,下面案例可供参考
1.1 首先我们得给数据库和Java应用程序两者之间搭建一个桥(数据库连接Connection),通过这座桥实现两者的沟通与信息交互。
1.2 那么谁来搭建这座桥呢?那得找只建筑队,在计算机中这个建筑队就是一个类(DriverManager),要完成具体得搭建工作,就必须要用这个类的方法getConnenction(建立连接所需要资源)
来创建一个数据库连接。
实现:Connection conn = DriverManager.getConnection(url: 建立连接所需要的资源);
1.3 创建连接(桥)需要资源,那么需要的资源是哪些呢?url所指的资源就是我们需要的资源,这里我举一个例子:假设MySQL的用户名为root,密码为123456,数据库名为:student 则
String username = "root";
String userpwd = "123456";
String dbname = "student";
String url1="jdbc:mysql://localhost:3306/"+dbname;
String url2 ="?user="+username+"&password="+userpwd;
String url =url1+url2;
Connection conn=DriverManager.getConnection(url); //创建连接对象(创建桥)
url对应起来:
jdbc:mysql://主机名称:mysql服务端口号/数据库名称?参数=值&参数=值
jdbc:mysql分别是是协议和子协议。
1.4 那么怎么找到建筑队(DriverManager)? 我们通过一个管理建筑队的机构来找到建筑队(DriverManager)。在电脑上这个管理机构称为驱动程序java.sql.Driver
而获取建筑队就是加载驱动程序
Class.forName(com.mysql.jdbc.Driver);
其中, com.mysql.jdbc.Driver为MySQL连接的驱动程序。
为了处理以上问题,各个数据库开发商,针对自己的数据系统,专门开发了一套实现Java与数据库之间交互的驱动程序包。例如,对于MySQL数据库,其驱动程序包为:mysql-connector-java-5.1.47-bin
。在使用的时候我们将这个包加到我们的项目中去。
通过前面几步我们已经将数据库与MySQL建立的连接,代码演示
建立数据库的连接的关键代码段如下://
String driverName = "com.mysql.jdbc.Driver"; //驱动程序名
String userName = "root"; //数据库用户名
String userPwd = "123456"; //密码
String dbName = "students"; //数据库名
String url1="jdbc:mysql://localhost:3306/"+dbName;
String url2 ="?user="+userName+"&password="+userPwd;
String url3="&useUnicode=true&characterEncoding=UTF-8";//访问数据库的汉字编码
String url =url1+url2+url3; //形成带数据库读写编码的数据库连接字
Class.forName(driverName); //加载并注册驱动程序
Connection conn=DriverManager.getConnection(url); //创建连接对象
2.连接之后两者之间信息交换的实现
2.1 通过前面的工作我们已经有了数据库连接对象“桥” conn,那么如何在桥的两端实现信息传递呢?即来回运输物资。我们可以造一辆车在桥上面来回运输信息,在计算机上我们称这辆车为数据库 *** 作对象。
Statement stmt = conn.createStatement(); //在桥conn上直接造一辆汽车
那么车具体运输什么呢?运输sql语句和执行结果!对于数据库 *** 作通常有两种类型,一种是查询数据库,另一种是更新数据库(增,删,改)。
(1)查询数据库 *** 作实现//
String sql="selectname from stu";//查询SQL语句
ResultSet rs=stmt.executeQuery(sql); //执行查询SQL语句,并得到查询结果集合
(2)更新数据库(添加、删除、修改) *** 作实现//
String sql2=“delete stu”; //删除记录SQL语句
int n=stmt.executeUpdate(sql2); //执行删除SQL语句,并返回实际删除记录的条数
2.2 注意上面我是先造车,然后再把要运输的东西搬到车上运输。那么我们可不可以一边造车一边把要运输的东西搬到车上呢?当然可以!
(1)查询数据库 *** 作实现//
String sql="select xh,name,cj from stu where cj>=60 and cj<=80" //查询SQL语句
PreparedStatement pstmt= conn.prepareStatement(sql);
RrsultSet rs=pstmt.executeQuery(); //执行,得到查询结果集合,注意,这里是空参数
(2)更新数据库(添加、删除、修改) *** 作实现//
String sql2=“delete stu where cj>=60 and cj<=80”; //删除记录SQL语句
PreparedStatement pstmt= conn.prepareStatement(sql2);
int n=pstmt.executeUpdate(); //执行,返回实际删除记录的条数,注意,这里是空参数
总结
这就是大概的原理,具体方法的细节可以看一下这篇博客
JDBC学习
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)