JDBC--mysql

1.基础介绍:

Jdbc接口:DriverManager:数据库驱动管理类。
Connectiion:接口,建立数据库连接的一个接口。
Statement:接口,向数据库中发送sql,并且得到数据库返回的信息。
ResultSet:结果集,Statement执行完sql–select之后,会返回结果,结果给了Resultset。

url介绍:指定一个具体的数据库
localhost==127.0.0.1 代表的是本机

2.常用数据库URL地址的写法:

1.orcale写法:jdbc:orcale:thin:@localhoat:1521:sid
2.Mysql写法:jdbc:mysql://localhoat:3306/sid
3.Mysql的url地址简写形式:jdbc:mysql:///sid
4.常用属性:useUnicode=true&characterEcoding=UTF-8
实例:Mysql写法:String url = “jdbc:mysql://localhost:3306/helloword?useUnicode=true&characterEncoding=utf-8”;
可以识别汉字
使用jar包:C:\Users\Administrator\Desktop\mysql-connector-java-5.1.44-bin.jar

3.Jdbc实例流程:

Connection conn = null;
Statement state = null;
ResultSet rs = null;

String url = "jdbc:mysql://localhost:3306/helloword?useUnicode=true&characterEncoding=utf-8";

String userName ="root";
String passWord = "root";
Class.forName("org.gjt.mm.mysql.Driver");//jar包下的Driver类的全类名  **加载驱动**

//创建一个连接
conn = DriverManager.getConnection(url, userName, passWord);
//根据连接创建一个接口
state = conn.createStatement();
String sql = "select * from student";
//接收对数据库操作后的结果
rs = state.executeQuery(sql);
//遍历结果 
while(rs.next()) {
	System.out.println(rs.getInt(1)+"\t"+rs.getString(3)+"\t"+rs.getString(4));
}
//关闭,从内到外;
if(rs!=null) {
	rs.close();
}
if(state!=null) {
	state.close();
}
if(conn!=null) {
	conn.close();
}

4.使用Junit测试

只有无返回值和参数的情况下才能使用Junit,
在方法前面添加 @Test
鼠标右键Run as
在这里插入图片描述

5.sql注入

sql注入:用字符粗串拼接篡改sql
String sql = “select * from user u where u.userName=userName and u.passWord=’’ or ‘1’=‘1’”;
解决:用preparedStatement
在这里插入图片描述
PreparedStatement是Statement的子接口,它的实例对象可以通过调用Connection.prepareStatement(sql)获得,相对于Statement对象来说
1.PreparedStatement可以避免sql注入问题
2.Statement会实时数据库频繁变异SQL,可能造成数据库缓冲区溢出。PreparedStatement可对SQL进行预编译,从而提高数据库的执行效率
3.并且PrepareStatement对于SQL中的参数允许使用占位符的形式进行替换,简化SQL语句的编写,方便阅读,使代码的可读性更高

6.JDBC批处理

JDBC批处理·两种方式
1.Statement
2.PreparedStatement
两者都是通过对象的
addBatch(sql);state.executeBatch();state.clearBatch();

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值