JDBC四大对象
作者:互联网
DriverManger:驱动管理对象
功能
1,注册驱动
static void registerDriver(Driver driver)
Class.forName("com.mysql.jdbc.Driver")代码实现
com.mysql.jdbc.Driver类中存在静态代码块
注意:mysql5之后的jar包可以省略注册驱动的过程
2,获取数据库连接
url:指定连接的路径
语法:jdbc:mysql://ip地址(域名):端口号/数据库名称
user:用户名
password:密码
如果连接的是localhost 则ip端口号可以不写
Connection:数据库连接对象
功能
1,获取执行sql对象
createStatement()
2,管理事务
开启事务
提交事务
回滚事务
Statement:执行sql对象
执行sql
executeUpdate执行DML语句(增删改)DDL语句
返回值:影响的行数 返回值大于0 成功
executeQuery 执行DQL语句
ResultSet:结果集对象,封装查询结果
next()游标(指向表头)向下移动一行
getXxx(参数):获取数据 Xxx代表数据类型 例如getInt 返回值int
参数:
Int:代表列的编号 从1开始 getString(1)
String:代表列名称 getDouble("id")
**定义一个方法,查询emp表的数据将其封装为对象,然后装载集合,返回、
1,定义Emp类
2,定义方法 public list<Emp> findAll{}
3, 实现方法 select * from emp;
PreparedStatement:执行sql对象
SQL注入问题 在拼接sql时,有一些SQL的关键字参与字符串拼接。会造成安全性问题
1,输入用户随便,输入密码a' or 'a'='a
2,解决SQL注入问题:使用PreparedStatment对象来解决
3,预编译SQL:参数使用?作为占位符
1,导入驱动jar包
2,注册驱动
3,获取数据库连接对象 Connection
4,定义sql
5,获取执行sql语句对象 PreparedStatement connection.prepareStatement(String sql)
6, 方法:setXxx(参数1,参数2)
*?的位置编号从1开始
*参数2 值
7, 执行sql,接收返回结果
8,处理结果
9,释放资源
public boolean login(String username,String password){
if(username==null||password==null)
return false;
Connection connection = null;
// Statement statement=null;
ResultSet resultSet1=null;
PreparedStatement preparedStatement =null;
try {
connection = Jdbcutils.getConnection();
// statement = connection.createStatement();
String sql= "select * from user where username = ? and password = ?";
preparedStatement = connection.prepareStatement(sql);
//给?赋值
preparedStatement.setString(1,username);
preparedStatement.setString(2,password);
resultSet1 = preparedStatement.executeQuery();
// resultSet1 = statement.executeQuery(sql);
return resultSet1.next();
} catch (SQLException throwables) {
throwables.printStackTrace();
}finally {
Jdbcutils.close(resultSet1,preparedStatement,connection);
}
** 注意 后期都会使用PreparedStatement来完成增删改查的所有操作
1,可以防止SQL注入
2,效率更高
web项目下需要将驱动jar包
*复制mysql-connector-java-5.1.37-bin.jar到Tomcat服务器的lib文件夹下
标签:password,JDBC,对象,connection,preparedStatement,四大,sql,null 来源: https://blog.csdn.net/qq_50352386/article/details/120400612