【JDBC】关于JDBC入门和一些见解

关于JDBC的一些理解和总结

JDBC连接数据库:

​ 刚开始学的时候经常忘记步骤,其实多了几次之后发现完全就是自己没有理解到原理。现在回头看还是挺有意思的。

分为以下几个步骤:

1.注册加载JDBC驱动,把Driver装进JVM

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

com.mysql.jdbc.Driver 是 mysql-connector-java 5中的
com.mysql.cj.jdbc.Driver 是 mysql-connector-java 6中的
在mysql5+的版本中都要加上cj 

2.建立连接

Connection conn = Drivermanager.getConnection(url,user,password);

url: mysql5 是只需要设置Unicode,Encoding和SSL; mysql5+版本则还需要设置serverTimezone的时区,必须设置为所在地区的

String url = "jdbc:mysql://localhost/boke?useUnicode=true&characterEncoding=utf-8&useSSL=false&useSSL=false&serverTimezone=GMT";

3.建立容器,实例化statement

Statement stmt = conn.createStatement();
PreparedStatement ps = conn.prepareStatement(sql);

我把这个视为执行所有操作的容器。

4.创立SQL语句,执行操作

String sql = "sql语句";
ResultSet res = stmt.executeQuery(sql);
//executeQuery()方法会把数据库响应的查询结果存放在ResultSet类对象中供我们使用。由于是封装好了的对象  所以在取值的时候需要对应index
while(res.next()){
   String parameter1 = res.getString(1);
   String parameter2 = res.getString(2);
   String parameter3 = res.getString(3);
   String parameter4 = res.getString(4);
   String parameter5 = res.getString(5);
    
   //打包
   User user = new User();
   user.setName(parameter1);
        。。。。。。。
}

总结

资源关闭

每次调用完成后记得关闭资源

public void close() throws SQLException {
		if (conn != null)
			conn.close();
		if (stmt != null)
			stmt.close();
		if (rs != null)
			rs.close();
	}

JDBC中,PreparedStatement相较于Statement有什么优点?

1)PreparedStatement可以使用预编译的sql,而Statment只能使用静态的sql

2)PreparedStatement可以使用sql缓存区,效率比Statment高

3)PreparedStatement可以有效防止sql注入,而Statment不能防止sql注入。

SQL注入问题:

​ 指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用户输入的数据,致使非法数据侵入系统。

以上为个人的一些见解,欢迎一起讨论。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值