目录
1.连接mysql数据库
连接mysql需要导入mysql-connector-java.jar的包,通过这个可以实现链接到mysql数据库中

package cn.tedu.jdbc;
import java.sql.*;
public class demo1 {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//1.注册数据库驱动
Class.forName("com.mysql.jdbc.Driver");
加载Driver类,此类中会执行static静态代码块,在静态代码块中会注册驱动
//获取链接,如果是本地可以使用///,如果是异地的话可以使用//ip:端口/数据库名.Connection对象代表数据库链接的对象,客户端与数据库的所有交互都是通过Connection对象完成的.createStatement():创建传输器,用于发送sql和返回结果
Connection conn= DriverManager.getConnection("jdbc:mysql:///mydb","root","root");
//创建传输器
Statement对象用于向数据库发送SQL语句的方法,
executeQuery(String sql):执行查询操作,返回结果集
executeUpdate(String sql):执行增删改操作,返回的是被影响的行数
Statement stat=conn.createStatement();
//利用传输器发送sql,返回结果
ResultSet对象
此对象用于封装查询结果,封装时类似于表格的方法,ResultSet中维护了一个游标,初始位置在第一行之前,调用next()方法,调用next()方法,游标向下移动一行
操作游标的方法:
next():移动到下一行,有数据返回true,没有返回false
previous():移动到上一行
absolute(int row):移动到第一行的前面
afterLast():移动到最后一行的后面
获取数据的方法:
getInt(String col_name)
getString(String col_name)
getDouble(String col_name)
getObject(String col_name)
ResultSet rs=stat.executeQuery("select * from exam");
//处理结果
while (rs.next()){
int id=rs.getInt("id");
String name=rs.getString("name");
double chinese=rs.getDouble("chinese");
System.out.println(id+" "+name+" "+chinese);
}
//关闭资源,jdbc程序运行完后,需要释放创建的ResultSet,Statement,Connection这些对象特别是Connection是非常稀有的资源,用完后需要马上释放,Connection的使用原则,就是尽量晚创建,尽量晚释放.
注意:为了保证资源一定可以被释放,释放资源的代码要写到finally
rs.close();
stat.close();
conn.close();
}
}
JDBC的curb
实现:nsert into exam values (null,'liubei',66,77,88)
MariaDB [mydb]> select * from exam;
+------+--------+---------+------+---------+
| id | name | chinese | math | english |
+------+--------+---------+------+---------+
| 1 | ?? | 85 | 76 | 70 |
| 2 | ?? | 70 | 75 | 70 |
| 3 | ?? | 90 | 65 |

本文介绍了如何使用JDBC连接MySQL数据库,实现CRUD操作,并讲解了SQL注入问题及其预防措施,如使用PreparedStatement。此外,文章还讨论了连接池的概念,特别是c3p0连接池的使用方法,强调了它在提高程序效率中的作用。

1001

被折叠的 条评论
为什么被折叠?



