Java之数据库MYSQL、JDBC工具类、properties配置文件

来源:互联网 发布:mac人名中间的点怎么打 编辑:程序博客网 时间:2024/06/01 08:03

数据库


学习数据库要明白两个概念:数据库和数据库管理系统。

什么是数据库:

数据库就是存储数据的仓库,数据按照特定的格式将数据存储起来,用户可以对数据库中的数据进行增加、修改、删除及查询操作。

什么是数据库管理系统:

数据库管理系统DBMS:是一种操作和管理数据库的大型软件,用于建立和维护使用数据库,对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。用户通过数据

库管理系统访问数据库中表内的数据

常见的数据库管理系统

MYSQL     :开源免费的数据库,小型的数据库.已经被Oracle收购了.MySQL6.x版本也开始收费。

Oracle      :收费的大型数据库,Oracle公司的产品。Oracle收购SUN公司,收购MYSQL。

DB2          :IBM公司的数据库产品,收费的。常应用在银行系统中.

SQLServer:MicroSoft 公司收费的中型的数据库。C#、.net等语言常使用。

SyBase      :已经淡出历史舞台。提供了一个非常专业数据建模的工具PowerDesigner。

SQLite       : 嵌入式的小型数据库,应用在手机端。

Java相关的数据库:MYSQLOracle


SQL语句:

数据库不识别java语言,但可以识别SQL语言,是数据库的代码,结构化查询语言SQL是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系

创建数据库、创建数据表、向数据表中添加一条条数据信息均需要使用SQL语句。


JDBC数据库连接:

Java程序需要连接到数据库该怎么办呢?Sun公司写了一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成,是

Java访问数据库的标准规范。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。

JDBC需要连接驱动,驱动是两个设备要进行通信,满足一定通信数据格式,数据格式由设备提供商规定,设备提供商为设备提供驱动软件,通过软件可以与该设备进行通信。

使用的是mysql的驱动mysql-connector-java-5.1.39-bin.jar

JDBC原理:

数据库管理系统有很多,需要制定统一的规范来管理访问数据库的一套标准,因此Java提供了一个规范称为JDBC,也就是一个接口,生产厂商要想访问数据库,必须提供规范

的实现类,则称为驱动,此驱动由生产厂商提供,驱动是接口的实现,没有驱动将无法完成数据库的连接,从而不能操作数据库。



JDBC开发步骤:

1.        注册驱动.

2.        获得连接.

3.        获得语句执行平台

4.        执行sql语句

5.        处理结果

6.        释放资源.


步骤详解:

1.注册驱动时需要导入使用哪个数据库管理系统的驱动jar包,该jar包中存放的是驱动接口的实现类。首先创建lib目录,用于存放当前项目需要的所有jar包。

JDBC规范定义了驱动接口为:java.sql.Driver,接口类Driver,即每个驱动程序类必须实现的接口,MySql驱动包提供了实现类:com.mysql.jdbc.Driver

使用反射技术将驱动接口的实现类加载到内存中,该接口实现类即:com.mysql.jdbc.Driver中的静态代码将自动执行。

代码:

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


2.获得连接:需要用到DriverManager类中静态方法getConnection完成对数据库的连接,

static Connection getConnection(String url, String user, String password) //试图建立到给定数据库 URL 的连接。
三个参数分别表示,url 需要连接数据库的位置(网址) user用户名  password 密码,该方法返回值返回一个Connection接口的实现类对象。

String url = "jdbc:mysql://localhost:3306/mydatabase";String username = "root";String password = "12345678";Connection con = DriverManager.getConnection(url,username,password);

3.获得语句执行平台,通过与数据库连接类对象获取对SQL语句的执行者对象,执行SQL语句,Connection 对象的数据库能够提供描述其表、所支持的 SQL 语法、

存储过程、此连接功能等等的信息。此方法:创建一个 Statement 对象来将 SQL 语句发送到数据库。

如:

Statement createStatement() 
实例:

Statement stat = con.createStatement();

返回值的Statement接口实现类对象

4.执行SQL语句/通过执行者对象调用方法执行SQL语句,获得结果

// int executeUpdate(String sql) 执行给定 SQL 语句,该语句可能为 INSERT、UPDATE 或 DELETE 语句

//返回值int,是操作成功数据表多少行

执行select语句获取结果集时:ResultSet executeQuery(String sql) 执行给定的 SQL 语句,该语句返回单个 ResultSet 对象。

如:

int row = stat.executeUpdate("INSERT INTO sort(sname,sprice,sdesc) VALUES ('家电',2000,'优惠的促销')");


使用MYSQL数据库管理系统完整的连接数据库程序实例代码:

public class JDBCdemo {public static void main(String[] args)throws SQLException, ClassNotFoundException{Class.forName("com.mysql.jdbc.Driver");String url = "jdbc:mysql://localhost:3306/mydatabase";String username = "root";String password = "12345678";Connection con = DriverManager.getConnection(url,username,password);System.out.println(con);Statement stat = con.createStatement();System.out.println(stat);int row = stat.executeUpdate("INSERT INTO sort(sname,sprice,sdesc) VALUES ('家电',2000,'优惠的促销')");System.out.println(row);stat.close();con.close();}}


JDBC工具类


当想实现对数据库的增删改查操作时,都需要做注册驱动、获得连接、获得语句执行平台、执行SQL语句、关闭资源的操作,这样会有很多相同的代码,可以编写一个JDBC的

工具类,提供获取连接对象的方法,从而降低代码的重复率。

实例:

/* * 此类是JDBC的工具类,存放的是操作数据库中注册驱动和获得连接的操作,以及关闭操作 *  */public class JDBCUtil {private static Connection con;public static Connection getConnection(){try{Class.forName("com.mysql.jdbc.Driver");String url = "jdbc:mysql://localhost:3306/mydatabase";String username = "root";String password = "12345678";con = DriverManager.getConnection(url,username,password);}catch(Exception ex){throw new RuntimeException(ex+"数据库连接失败");}return con;}public static void close(Connection con,Statement stat , ResultSet rs){ if(rs!=null){ try{ rs.close(); }catch(SQLException ex){} }  if(stat!=null){ try{ stat.close(); }catch(SQLException ex){} }  if(con!=null){ try{ con.close(); }catch(SQLException ex){} } }}

properties配置文件

开发中获得连接的4个参数(驱动、URL、用户名、密码)通常都存在配置文件中,方便后期维护,程序如果需要更换数据库,只需要修改配置文件即可。

通常情况下,我们习惯使用properties文件,此文件我们将做如下要求:

1.        文件位置:任意,建议src下

2.        文件名称:任意,扩展名为properties

3.        文件内容:一行一组数据,格式是“key=value”.

a)        key命名自定义,如果是多个单词,习惯使用点分隔。例如:jdbc.driver

b)       value值不支持中文,如果需要使用非英文字符,将进行unicode转换。


1.创建配置文件:database.properties

driverClass=com.mysql.jdbc.Driverurl=jdbc:mysql://localhost:3306/mydatabaseusername=rootpassword=12345678

2.加载配置文件:JDBCUtilsConfig.java

/* *  编写数据库连接的工具类,JDBC工具类 *  获取连接对象采用读取配置文件方式 *  读取文件获取连接,执行一次,static{} */public class JDBCUtilsConfig {private static Connection con ;private static String driverClass;private static String url;private static String username;private static String password;static{try{readConfig();Class.forName(driverClass);con = DriverManager.getConnection(url, username, password);}catch(Exception ex){throw new RuntimeException("数据库连接失败");}}private static void readConfig()throws Exception{InputStream in = JDBCUtilsConfig.class.getClassLoader().getResourceAsStream("database.properties"); Properties pro = new Properties(); pro.load(in); driverClass=pro.getProperty("driverClass"); url = pro.getProperty("url"); username = pro.getProperty("username"); password = pro.getProperty("password");}public static Connection getConnection(){return con;}}


3.测试类 TestJDBCUtils.java

public class TestJDBCUtils {public static void main(String[] args) {Connection con = JDBCUtilsConfig.getConnection();System.out.println(con);}}

结果:测试成功。





 








阅读全文
0 0
原创粉丝点击