1.什么是JDBC
JDBC是 Java Database Connectivity的缩写,Java数据库连接,它是由一组用Java语言编写的类和接口组成,通过这些类和接口方法能连接能以一致的方式连接多种不同的数据库(MySQL、Oracle、和SQL、Server等)。
2.为项目导入mysql-jdbc的jar包
(1)
访问MySQL数据库需要用到第三方的类,这些第三方的类,都被压缩在一个叫做Jar的文件里。为了代码能够使用第三方的类,需要为项目导入mysql的专用Jar包。该包mysql-connector-java-5.1.39-bin.jar可以在右边下载,通常都会把项目用到的jar包统一放在项目的lib目录下,在本例就会放在D:\java 这个位置,然后在eclipse中导入这个jar包,导包步骤:右键project->property->java build path->libaries->add external jars,(数据库需已安装好,如还没安装数据库MySQL,请看MySQL资料)
3.初始化驱动
(1)通常利用Class.forName()方法来加载指定驱动程序,如:
try { Class.forName("com.mysql.jdbc.Driver"); } catch(ClassNotFoundException e) { System.out.println("加载的类不存在"); }
连接不同的数据库,加载的驱动程序是不同的。
如下是常用的数据库的驱动程序及URL
数据库产品 | 驱动程序 | URL格式 |
MySQL | com.mysql.jdbc.Driver | jdbc:mysql://localhost:3306/DB |
SQL Server 2005 | com.microsoft.sql.server.jdbc.SQLServerDriver | jdbc:sqlserver://localhost:1433;DatabaseName=DB |
Oracle | oracle.jdbc.driver.OracleDriver | jdbc:oracle:thin:0@localhost:1521:orel |
(2)建立数据库:
create database text; #建立text的数据库use student; #切换数据库create table student( #建立表,并添加字段id int(4),name varchar(20),tell varchar(11)); # 以英文分结束# 插入数据INSERT INTO student (id,NAME,tell) VALUES(1,"张三","123456781"),(2,"李四","156234895");
与数据库成功连接后,就可以向所有连接的数据库发出SQL命令,完成相应的数据库操作,数据库的基本操作包括数据查询、添加、修改、删除等。
(3)连接数据库,并查询:
package Xun_Lian;import java.sql.Connection;import java.sql.Statement;import java.sql.DriverManager;import java.sql.ResultSet;public class Exampler111_123 { public static final String btu = "com.mysql.jdbc.Driver";//Mysql的驱动 public static final String user = "jdbc:mysql://localhost:3306/text?useSSL=false"; //链接地址 public static final String username = "root";//提供用户名 public static final String passwrd = "123456";//提供密码 public static void main(String[] args) throws Exception { // TODO Auto-generated method stub try { //异常抛出 Class.forName(btu);//连接驱动 } catch (ClassNotFoundException e) { // TODO: handle exception e.printStackTrace(); } Connection connection = null;//保存数据库连接 String sql = "select * from student";//SQL语句 //String sql = "select id,name,tell from student"; /* * 在实际的开发应用中,不要用 * 查询,会造成代码维护的开发困难 */ connection = DriverManager.getConnection(user,username,passwrd); //连接数据库 Statement statement = connection.createStatement(); //创建数据库的对象 ResultSet rSet = statement.executeQuery(sql); //执行数据库的操作 while(rSet.next()) { //循环获取结果集数据 int id =rSet.getInt(1); String name = rSet.getString(2); String tell = rSet.getString(3); System.out.println(id +"\t"+name+"\t"+tell); } connection.close();//关闭数据库链接 }}
在实际的开发应用中,不要用 * 查询,会造成代码维护的开发困难,如下是标准:
package Xun_Lian;import java.sql.Connection;import java.sql.Statement;import java.sql.DriverManager;import java.sql.ResultSet;public class Exampler111_123 { public static final String btu = "com.mysql.jdbc.Driver";//Mysql的驱动 public static final String user = "jdbc:mysql://localhost:3306/text?useSSL=false"; //链接地址 public static final String username = "root";//提供用户名 public static final String passwrd = "123456";//提供密码 public static void main(String[] args) throws Exception { // TODO Auto-generated method stub try { Class.forName(btu);//连接驱动 } catch (ClassNotFoundException e) { // TODO: handle exception e.printStackTrace(); } Connection connection = null;//保存数据库连接 String sql = "select id,name,tell from student"; connection = DriverManager.getConnection(user,username,passwrd); //连接数据库 Statement statement = connection.createStatement(); //创建数据库的对象 ResultSet rSet = statement.executeQuery(sql); //执行数据库的操作 while(rSet.next()) { //循环获取结果集数据 int id =rSet.getInt(1); String name = rSet.getString(2); String tell = rSet.getString(3); System.out.println(id +"\t"+name+"\t"+tell); } connection.close();//关闭数据库链接 }}
数据库查询操作:
1.Statement对象:
Statement接口用于执行不带参数的简单SQL语句,ReparedStatement接口和Callablestatement接口都是继承了Statement接口。
connection = DriverManager.getConnection(user,username,passwrd); //连接数据库,user代表是驱动程序,username代表是用户名,passwrd代表是密码 Statement statement = connection.createStatement(); //创建数据库的对象
2.执行SQL语句,
创建Statement类后,可调用其中的方法执行SQL语句,提供了三种方法,他们是:execute()、executeQuery()、executeUpdate()。
execute():用于执行返回多个结果集、多个更新计数或二者组合的语句,少用。
executeQuery():用于产生单个结果集语句,例如SEVECT语句。
executeUpdate():用于执行INSRT、UPDATE或DELETE等语句,执行结果是修改表中零行或多行中的一列或多列,返回值是个整数,指示受影响的行数。
String sql = "select id,name,tell from student";//SQL语句ResultSet rSet = statement.executeQuery(sql); //执行数据库的操作
下一章讲ReparedStatement对象和ResultSet对象,增、删、改。
我很喜欢一句话:你看,若不努力,除了年纪在涨,头发变少,容颜变老,你买不起的还是买不起,你喜欢的人还是与你无关。
若觉得写的还看得过去,请关注公众号。