一。简介mysql
JDBC:实现跨数据库平台,统一数据库编程接口,但在编程中仍须要编写sql语句(不一样的数据库语句sql语句有些区别),因此hibernate比较流行,彻底屏蔽了数据库的区别。sql
JDBC两端:在开发端,有统一的JDBC接口,在数据库端,不一样的数据库有不一样的JDBC接口(类库)。
数据库
二。编程步骤 :具备规律性。编程
1>操做数据库的通常步骤,可分为4步:windows
(1)装载数据库驱动(可选)服务器
这一步并非必须的,在某些操做系统中,数据库驱动的相关信息在安装驱动程序时已经被保存到指定的位置(如windows中,SQL Server数据库驱动信息被保存到注册表中)。但对于JDBC驱动,这一步是必须的。
网络
(2)创建数据库链接(即得到Connection对象)编码
对于网络数据库,创建数据库链接通常要提供下面5种信息:
spa
1,数据库服务器名(能够是机器名、域名或IP地址)。 2,端口号 3,数据库名 4,用户名 5,密码操作系统
根据数据库的不一样,5种信息略有不一样。
(3)得到用于进行数据操做的对象
得到操做对象就能够进行数据库查询、增、删、修改、执行存储过程等操做。
(4)关闭数据库
2>JDBC操做数据库mysql的步骤
(1)装载数据库驱动
用jdbc装载数据库驱动有两种方法:
1,使用Class.forName方法
forName方法是Class类的一个静态方法,返回Class对象。它有一个字符串类型的参数,须要传入一个JDBC驱动类名:Class.forName("com.mysql.jdbc.Driver");
2,静态建立JDBC驱动类实例
可直接使用new关键字静态建立JDBC驱动类对象:
Driver myDriver = new com.mysql.jdbc.Driver(); DriverManager.registerDriver(myDriver);
后者用于注册建立的JDBC驱动类对象。
(2)创建数据库链接
在JDBC中,可使用DriverManager类的getConnection方法得到数据库链接对象。在得到数据库链接对象以前须要知道5中参数信息:
1,数据库服务器名:localhost 2.端口号 省略(默认) 3,数据库名:xxx 4.用户名:xxx 5.密码:xxx
MySQL使用了默认的端口号(3306),所以端口号信息可被省略。MySQL的链接字符串格式是:jdbc:nysql://servername/dbname?parameter
按照上面的信息依次填入这个链接字符串,填完后的链接字符串以下:
jdbc:mysql://localhost/xxx?user=xxx&password=1234&characterEncoding=UTF8
由于须要在数据库中处理中文,因此在链接字符串的末尾须要加上字符编码以正确处理中文。
得到数据库链接对象的代码有多种方式,一种是:
String connStr = " jdbc:mysql://localhost/xxx?user=xxx&password=1234&characterEncoding=UTF8";
Connection conn = DriverManager.getConnection(connStr);
另外一种是:
Connection conn = DriverManaget.getConnection(connStr,"用户名","密码");
除此以外,也可使用Connection类的setCatalog方法改变当前数据库:
conn.setCatalog("newdb");
(3)得到用于进行数据操做的对象
在JDBC中,可使用Statement对象(翻译“语句”)和PreparedStatement对象操做数据库。(在此介绍前者)。Statement对象经过Connection接口的createStatement方法建立,有3种重载形式。无参数的是:
Statement stmt = conn.createStatement();
经过Statement对象能够对数据库进行查询、增长、删除、修改等操做。
execute方法通常用于执行DDL(CREATE、DROP等)语句,或是执行DML(INSERT UPDATE DELETE等)语句
stmt.execute("DROP TABLE IF EXISTS t_books");
executeQuery通常用于执行SELECT语句,这个方法经过一个ResultSet对象返回查询结果,代码:
ResultSet rs = stmt.executeQuery("SELECT * FORM t_books");
(4)关闭数据库
将打开的对象依次关闭:stmt.close() conn.close().
部分来自尚学堂。