标题
JDBC使用方式
1. 导入驱动包
2. JDBC中常用的类和接口
DriverManager(类):
作用:驱动管理类,主要负责初始化信息及创建连接
Connection接口:
作用:连接,如果连接成功,就可以进行增删改查操作、
Statement(接口):
作用:SQL的发送载体,编译载体
PreparedStatement(接口):
作用:SQL的发送载体,预编译SQL
ResultSet(接口):
作用:结果集,SQL查询后返回的一个对象(特殊的集合)
3.代码
package com.office.test;
import com.office.entity.Student;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
public class TestJDBC {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//加载驱动,将驱动类交给DriverManager来管理
try {
Class.forName("com.mysql.jdbc.Driver");
String url="jdbc:mysql://localhost:3306/cz_school?useUnicode=true&characterEncoding=UTF-8";
String userName="root";
String password="root";
Connection conn;
try {
conn = DriverManager.getConnection(url, userName, password);
//查询操作
String sql="select * from student";
//编译SQL语句并发送至数据库
Statement state=conn.createStatement();
ResultSet rs= state.executeQuery(sql);
//解析结果集
List<Student> list=new ArrayList<Student>();
while(rs.next()){
Student stu=new Student();
stu.setSid(rs.getInt("sid"));
stu.setSname(rs.getString("sname"));
stu.setSex(rs.getInt("sex"));
stu.setAge(rs.getInt("age"));
list.add(stu);
}
//新增操作
String sqlForInsert="insert into student(sname,sex,age,cid)"+"values('周冬雨','0','24','1')";
//新增操作返回值是受影响的行数
int rows=state.executeUpdate(sqlForInsert);
System.out.println(rows);
//删除操作
String sqlForDelete="delete from student where sid=20";
int rowsForDelete=state.executeUpdate(sqlForDelete);
System.out.println(rowsForDelete);
//修改操作
String sqlForUpdate="update student set age=30 where sid=12";
int rowsForUpdate=state.executeUpdate(sqlForUpdate);
System.out.println(rowsForUpdate);
//资源释放,谁最后使用,谁最先关
rs.close();
state.close();
conn.close();
//
for(Student stu:list){
System.out.println(stu.getSname());
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}