JDBC(一):使用statement方法连接数据库

JDBC(一):Statement和PreparedStatement连接数据库

背景介绍:本文以Java连接Mysql,IDEA:eclipse为前提。

public class demo {

public static void main(String[] args) {
	Connection conn = null;
	// --1.加载数据库驱动
	try {
		Class.forName("com.mysql.jdbc.Driver");
	} catch (ClassNotFoundException e) {
		e.printStackTrace();
	}
	// --2.通过驱动管理器建立连接对象
	String url = "jdbc:mysql://localhost:3306/mydatabase";
	String user = "root";
	String password = "root";
	try {
		conn = DriverManager.getConnection(url, user, password);
		// --3.通过驱动管理器建立操作对象
		Statement statement = conn.createStatement();
		// --4.获取执行sql语句
		String sql = "SELECT hiredate FROM emp WHERE ename = 'SMITH'";
		// --5.遍历结果集(对于查询)或者得到执行反馈(对于增删改)
		ResultSet rs = statement.executeQuery(sql);
		boolean b = statement.execute(sql);
		System.out.println(b);
		while (rs.next()) {
			System.out.println(rs.getString(1));
		}
		// --6.关闭连接通道
		conn.close();

	} catch (SQLException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
}

}

需要注意点:
一:第一步操作的提前准备工作步骤:
1.新建lib文件夹
在项目包文件夹下——>>左键选中,右键菜单项里面——>>选择Folder,在Folde name 里面填入lib。
2.数据库连接语言安装包的下载
maven仓库下载一个你用的数据库XXX连接你用的编程语言YYY的安装包,例如本人就下载mysql-connector-java-5.1.6-bin.jar安装包(其中5.1.6是版本号,任何版本号都可以,选择一个下载量多的即可)。
3.安装包的导入
将上一步下载好的安装包(一定不要解压)复制到lib文件夹下——>>右键安装包,选择Build Path——>>选择Add to build path。
4.驱动路径的选择
Class.forName(“com.mysql.jdbc.Driver”)中双引号的内容即是驱动路径。每种数据库对应的路径都是固定的,如要自己去查询,那么路径查找方法如下:
在项目中找到,Referenced Libraries文件夹——>>mysql-connector-java-5.1.6-bin.jar——>>XXX.mysql.jdbc——>>找到Driver.class——>>右键菜单项中选择copy QualifiedName
结果为com.mysql.jdbc.Driver.class,去掉尾部的.class即是双引号里面需要填写的结果。
二:第二步中参数的选择
1.url =“jdbc:mysql://localhost:3306/mydatabase”。
其中mysql是使用的数据库名称,如果你用的是Oracle,那么填写oracle;
//localhost:3306/表示的是本地ip地址且端口为3306(也可以用///代替);mydatabase表示的是你用的数据库的名称。
2.user=“root”中root表示mysql的用户登录账户名称。
3.password=“root”中root表示mysql的用户登录密码。
三:第五步中
1.execute() ,返回值 boolean,可用于增删改查。
执行此 PreparedStatement对象中的SQL语句,这可能是任何类型的SQL语句。
2.executeUpdate() 返回值:int,只能用于增删改。
执行在该SQL语句PreparedStatement对象,它必须是一个SQL数据操纵语言
(DML)语句,如INSERT , UPDATE或DELETE ; 或不返回任何内容的SQL语句,例如DDL语句。
3.executeQuery() 返回值:ResultSet,只能用于查询。
执行此 PreparedStatement对象中的SQL查询, 并返回查询 PreparedStatement的 ResultSet对象。
四:加载类的API全部都要是sql里面的。如
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
五:Statement无法防御注入式攻击
如在用户输入密码登录的时候随便输入一个密码然后,后面加上’or’1’='1那么随便一个账户和密码都能够查询出来;更有甚者还用注入式攻击方法获取sql的权限进行一些破坏,后果十分严重。
为了防范注入式攻击,PreparedStatement方法脱颖而出。

如果本文对你有用,麻烦点个赞!
需要mysql-connector-java-5.1.6-bin.jar安装包的可以点加我某鹅号:23D786B9(十六进制转化成十进制即可),送与有缘人!

下一章要总结防范注入式攻击PreparedStatement类的使用方法。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值