工作了很久对一些基本的都忘记了,重温下
JDBC概念:
JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API。JDBC是JAVA平台操作数据的高度抽象,其提供一套标准接口,具体实现是由各数据库厂商根据JDBC标准接口实现。
Driver api:
connect方法获取连接对象
acceptsURL判断通信协议是否符合该驱动数据库
DriverManager api
getConnection获取连接对象
registerDriver注册驱动,把驱动托DriverManager 管理
使用(以MYSQL为例):
1.加载驱动
Class.forName("com.mysql.jdbc.Driver");
mysql中加载驱动类会在com.mysql.cj.jdbc.Driver的静态代码块中向DriverManager注册驱动
2.获取连接
第一种:Connection conn = DriverManager.getConnection("jdbc:mysql://host:port/database", "user", "password");
第二种:Driver driver = (Driver) Class.forName("com.mysql.jdbc.Driver").newInstance();
Connection connection = driver.connect(url, props);
3.创建SQL语句的statement对象(放置sql注入使用 预编译PreparedStatement)
PreparedStatement的方法
1:executeQuery():在此PreparedStatement对象中执行SQL语句,并返回该查询生成的ResultSet对象。
2:executeUpdate():在此PreparedStatement对象中执行SQL语句,该语句必须是一个SQL数据操作语言(Date Manipulation Language,DML)语句,比如insert、update、delete语句;或者是无返内容的SQL语句,比如DDL语句。
3:execute():在此PreparedStatement对象中执行SQL语句,该语句可以是任何种类的SQL语句。
String sql = "insert into t_test values(?,?,?)";4.执行语句并处理结果(ResultSet)
String sql = "select * from t_test";
PreparedStatement statement = conn.prepareStatement(sql);
ResultSet result = statement.executeQuery();
while(result.next()){
Long id = result.getLong(1);//注意下标从1开始
String userName = result.getString(2);
String password = result.getString(3);
System.out.println("id="+id+" userName="+userName+" password="+password);
}
5.释放资源
result.close();
conn.close();