欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

专题——Java数据库程序设计

程序员文章站 2022-07-13 16:11:05
...

Java数据库程序设计

专题——Java数据库程序设计

一.关系型数据库系统

1.数据库系统的结构
专题——Java数据库程序设计
2.关系型数据库系统

在关系型数据库系统中,一行是一个元组,一列表示一个属性

专题——Java数据库程序设计

二.SQL

1.首先在命令行中进入MySQL文件所在的bin目录

专题——Java数据库程序设计
2.使用root权限登录数据库

专题——Java数据库程序设计
2.查看有哪些数据库,其中MySql和Test是必有的,MySql用于存储服务器信息和其他用户信息的表格;用于创建用户,授予权限,撤销用户,为管理员而创建;Test数据库用于存储数据或创建新的数据库。
专题——Java数据库程序设计
3.创建用户名为“Bob”,密码为“123” 的用户
专题——Java数据库程序设计
4.赋予权限
专题——Java数据库程序设计
5.授予从任意IP访问的特权
专题——Java数据库程序设计
6.授予从特定IP远程访问的特权
专题——Java数据库程序设计
7.使用Bob用户登录
专题——Java数据库程序设计
其他常见MySql命令:

exit//退出

net stop mysql;//停止mysql服务
net start mtsql;//开启mysql服务

source script.sql;//运行sql脚本文件

\c //退出当前命令,重新输入

show grants;//查看权限

三.JDBC

1.JDBC是访问关系型数据库的API,提供访问和操纵数据库的接口。

专题——Java数据库程序设计
2.Java开发数据库应用需要用到的四个接口:

Driver//加载一个合适的驱动

Connection//连接到数据库

Statement//创建和运行SQL语句

ResultSet//处理结果

四.访问数据库的典型步骤

【扩展】将mysql jar包添加至EclipseIDE中,可以访问将jar包导入eclipse

1.加载合适的驱动
本人使用的数据库是mySql,所以加载MySql数据库驱动

	public static void main(String[] args) {
		try {
			//第一步:加载合适的驱动
			Class.forName("com.mysql.jdbc.Driver");
			//下面打印语句测试驱动是否加载成功,可选择性添加
			System.out.println("驱动加载成功!");
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}

2.创建连接

			//第二步:建立连接
			Connection connection=DriverManager.getConnection("jdbc:mysql://192.168.0.103/javabook","Bob","123");
			//Javabook数据库是登录Bob用户新创建的

【扩展】

数据库 URL模式
Access jdbc:odbc:dataSource
MySql jdbc:mysql://hostname/dbname
Oracle jdbc:oracle:thin:@hostname:port#:oracleDBSID

3.创建SQL语句

不带参数:Statement接口

    //第三步:创建SQL语句
    Statement statement=connection.createStatement();

带参数或不带参数都可以使用:PreparedStatement接口

PreparedStatement ps=connection.prepareStatement("select firstName,lastName from student where ssn=?");

【注意】使用PreparedStatement接口必须要写好SQL语句,?(问号)代表占位符,通过setter修改器传值

ps.setString(1,"444111110");//1代表传给第几个参数,后面的代表传的内容

用于执行SQL的存储过程:CallableStatement接口

    CallableStatement cs=connection.prepareCall("{call samplePrepare (?,?,?)}");///三个?代表转义语句;samplrPrepare是已经创建好的存储过程

执行语句:Result Set接口

    ResultSet rs=ps.executeQuery();//执行查询语句
	ResultSet rs2=ps.executeUpdate();//执行更新语句

处理结果

方法:当前初始位置是null,通过next方法移动

    while(rs.next()){
		System.out.println(rs.getString(1)+" "+rs.getString(2));//分别是firstName和lastName
			}

最终运行结果
专题——Java数据库程序设计

五.获取元数据

  • DatabaseMetaData接口:获取数据库范围的信息
    DatabaseMetaData dmd=connection.getMetaData();

结果:
不止可以获取这两个信息,只要是数据库范围内的信息都可以
专题——Java数据库程序设计

  • ResultSetMetaData接口:获取结果集元数据
ResultSetMetaData rsmd=rs.getMetaData();
			for(int i=1;i<=rsmd.getColumnCount();i++){
				System.out.printf("%-10s\t",rsmd.getColumnName(i));
			}

结果:
专题——Java数据库程序设计
【补充】

  • Java6不需要显式加载驱动
  • split方法分割“.”时需要转义

加油!

相关标签: 进阶