通过jdbc连接数据库

Java数据库连接

第一节 通过jdbc连接数据库
第二节 通过datasource开源项目连接数据库
第三节 事务控制
第四节 数据库应用程序开发



Java数据库连接的步骤

1.导入相对应版本的数据包
2.通过加载驱动,连接数据库 建立连接
3.创建语句对象,执行语句 执行sql语句
4.创建处理集对象,迭代数 处理结果集
5.关闭连接,释放jdbc的资源


提示:以下是本篇文章正文内容,下面案例可供参考

一、资源包的导入

JDBC

JDBC(Java database connectivity):java访问数据库的标准API
在这里插入图片描述
这些为常用的接口和类

在这里插入图片描述

JDBC相关的API的包再java.sql和javax.sql中,这是需要自己再程序中导入的。
而驱动程序是由数据库厂商来提供的,所以我们下载相应的jar包来和不同的数据库实现连接

jar包的导入

下载对应数据库的jabc架包与驱动
1 .mySQL:https://dev.mysql.com/downloads/connector/
2 .Oracle:http://www.oracle.com/technetwork/database/features/jdbc/jdbc-drivers-12c-download-1958347.html
3 .SQL Server:https://www.microsoft.com/en-us/download/details.aspx?id=55539

以elipse来连接sql数据库为例演示如何导入数据库的jar包
1.下载完mysql_connection_java.jar
2.将jar文件直接复制到工程文件夹下面
3.为jar文件来配置路径:右键单击jar文件,选择build path->add to build path
完成

二、连接数据库

1.加载驱动

代码如下(示例):

String password = "0927";
		String username = "root";
//		加载驱动 
		Class.forName("com.mysql.cj.jdbc.Driver");
//		创建jdbc url来确定查找所需要的连接的对象
		String url = "jdbc:mysql://localhost:3306/mysql?serverTimeZone=UTC";
//		创建连接对象
		try {
			Connection c = DriverManager.getConnection(url,username,password);
//			注意 : connection 不是要利用new方法来创建,他是利用成员方法来创建的
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

2.执行mysql语句

执行MySQL语句首先要创建语句对象,然后再执行语句

connection相当于索道将数据库与java程序连接起来,而语句对象statement和其子类对象相当与缆车。为数据库传输mysql语句,并将结果返回给程序

常见的mysql语句及statement的方法

在这里插入图片描述

代码如下(示例):

try {
//			创建statement对象
			Statement stm = c.createStatement();
			
//			想执行的mysql语句
			String sqlString = "SELECT \r\n"
					+ "  `id`,\r\n"
					+ "  `name`,\r\n"
					+ "  `gender`,\r\n"
					+ "  `score` \r\n"
					+ "FROM\r\n"
					+ " `student` ";
			ResultSet rs = stm.executeQuery(sqlString);
			while(rs.next()) {
				System.out.println(rs.getInt(1));
				System.out.println(rs.getString(2));
				System.out.println(rs.getString(3));
				System.out.println(rs.getInt(4));
//				注意 这其中的序号数是从1开始的
			}
			rs.close();
			stm.close();
			c.close();
			
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}

另外也可以用prepareStatement 来进行编译预处理,来防止sql攻击和避免字符串拼接时的繁琐。

prepareStatement 采用占位符的形式来编写sql语句
具体要利用setXxx(num,"")来将占位符填充

注意两者创建方式和执行sql语句的差别

具体代码如下

	String psqlString = "SELECT * FROM student where name = ?";
//			创建prepareStatement预处理对象
			PreparedStatement ptst = c.prepareStatement(psqlString);
			ptst.setString(1,"zs");
ResultSet prs = ptst.executeQuery();
while(rs.next()) {
				System.out.println(rs.getInt(1));
				System.out.println(rs.getString(2));
				System.out.println(rs.getString(3));
				System.out.println(rs.getInt(4));
//				注意 这其中的序号数是从1开始的
			}

相关补充

在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值