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相关的数据库:MYSQL,Oracle.SQL语句:
数据库不识别java语言,但可以识别SQL语言,是数据库的代码,结构化查询语言SQL是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系
统。
创建数据库、创建数据表、向数据表中添加一条条数据信息均需要使用SQL语句。
JDBC数据库连接:
Java程序需要连接到数据库该怎么办呢?Sun公司写了一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成,是
Java访问数据库的标准规范。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。
JDBC需要连接驱动,驱动是两个设备要进行通信,满足一定通信数据格式,数据格式由设备提供商规定,设备提供商为设备提供驱动软件,通过软件可以与该设备进行通信。
使用的是mysql的驱动mysql-connector-java-5.1.39-bin.jarJDBC原理:
数据库管理系统有很多,需要制定统一的规范来管理访问数据库的一套标准,因此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");
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();}}
当想实现对数据库的增删改查操作时,都需要做注册驱动、获得连接、获得语句执行平台、执行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;}}
public class TestJDBCUtils {public static void main(String[] args) {Connection con = JDBCUtilsConfig.getConnection();System.out.println(con);}}
结果:测试成功。
- Java之数据库MYSQL、JDBC工具类、properties配置文件
- java通过配置文件jdbc.properties链接Oracle数据库工具类
- java 数据库读取工具类(读取config.properties配置文件)
- java 数据库读取工具类(读取config.properties配置文件)
- Java之Properties(配置文件类)
- 【java】获取properties配置文件信息工具类
- java.util.properties工具类操作properties配置文件
- java 数据库读取工具类(读取config.properties配置文件)[包含线程安全]
- java连接数据库(properties配置文件)
- JDBC链接之读取配置文件properties
- JDBC连接MySQL或Oracle数据库(通过从属性文件jdbc.properties读,用Java的Property类)
- 读取.properties配置文件工具类!!!
- 读取Properties配置文件工具类
- 读取配置文件properties工具类
- 加载properties配置文件工具类
- properties配置文件读取工具类
- 读取properties配置文件工具类
- JavaWeb之JDBC(二)采用读取配置文件方式编写JDBC的工具类,获取数据库的连接
- Chrome开发者工具详解(5)-Application、Security、Audits面板
- animation动画
- UNIX 设计原则
- Win10进不了u盘启动该怎么办?win10无法使用U盘启动的解决方法!
- Source Insight常用配置
- Java之数据库MYSQL、JDBC工具类、properties配置文件
- Android之二维码的生成与识别
- Exploring Qualcomm's TrustZone implementation
- Android初学
- ecjtu-summer training #5 C
- ROS-kinetic 与Arduino-Arduino IDE 安装
- 64位寄存器分配的不同
- css 左右固定,中间自适应的布局
- CodeFroces 830A. Office Keys(二分)