JDBC*

发布时间:2024年01月06日

*JDBC数据库连接步骤
? ? ? 1.将JDBC驱动的jar添加到项目的依赖中。
? ? ? 2.加载JDBC驱动
? ? ? 例如: Class.forName("com.mysql.jdbc.Driver");
? ? ? 3.连接数据库
? ? ? 例如:
? ? ? Connection con = DriverManager.getConnection(URL,username,password);
? ? ? 4.获取Statement【PreparedStatement】对象,执行SQL语句
? ? ? 例如:
? ? ? String sql = "SELECT * FROM `stu`";
? ? ? Statement stm = ?con.createStatement();
? ? ? ResultSet rs= stm.executeQuery(sql);
? ? ? 例如:
? ? ? ?String sql = "SELECT * FROM `user` WHERE `username` = ?? AND `password` = ?";
? ? ? ?PreparedStatement pstm = con.prepareStatement(sql);
? ? ? ?pstm.setObject(1,username);
? ? ? ?pstm.setObject(2,password);
? ? ? ?ResultSet rs= pstm.executeQuery();
? ? ? 5.处理结果
? ? ? 例如:List<Student> studentList = new ArrayList<>();
? ? ? ? while(rs.next()){
? ? ? ? ? ? Student student = new Student();
? ? ? ? ? ? student.setSid(rs.getString("sid"));
? ? ? ? ? ? student.setSname(rs.getString("sname"));
? ? ? ? ? ? student.setAge(rs.getInt("age"));
? ? ? ? ? ? student.setGender(rs.getString("gender"));
? ? ? ? ? ? studentList.add(student);
? ? ? }
? ? ? 6.释放资源
? ? ? 注意:SQL对象资源如IO对象资源一样,不会被垃圾回收器回收。

*JDBC-API
? ?- ?DriverManger(驱动管理器)的作用有两个:
? ?> 1. 注册驱动:这可以让JDBC知道要使用的是哪个驱动;
? ?> 2. 获取Connection:如果可以获取到Connection,那么说明已经与数据库连接上了。

? ?- Connection对象表示连接,与数据库的通讯都是通过这个对象展开的.
? ?> 1.负责Java程序与Mysql数据库之间的数据传输(通讯)

? ?-- Statement是用来向数据库发送SQL语句的,这样数据库就会执行发送过来的SQL语句:
? ?>1. int executeUpdate(String sql):执行更新操作(insert、update、delete等);
? ?>2. ResultSet executeQuery(String sql):执行查询操作,数据库在执行查询后会把查询结果,查询结果就是ResultSet;

? ?- ?ResultSet对象表示查询结果集,只有在执行查询操作后才会有结果集的产生。
? ?结果集是一个二维的表格,有行有列。操作结果集要学习移动ResultSet内部的“行光标”,
? ?以及获取当前行上的每一列上的数据:
? ?>1. boolean next():使“行光标”移动到下一行,并返回移动后的行是否存在;
? ?>2. XXX getXXX(int col):获取当前行指定列上的值,参数就是列数,列数从1开始,而不是0。


? -PreparedStatement的使用
? ?>1. 使用Connection的prepareStatement(String sql):即创建它时就让它与一条SQL模板绑定;
? ?>2. 调用PreparedStatement的setXXX()系列方法为问号设置值
? ?>3. 调用executeUpdate()或executeQuery()方法,但要注意,调用没有参数的方法;
? ?优点:
? ?- 防止SQL攻击;
? ?- 提高代码的可读性,以可维护性;
? ?- 提高效率。
? ??
?

文章来源:https://blog.csdn.net/m0_62840476/article/details/135425716
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。