首先知道连接数据库的四个要素,这是连接数据库必须的
这四个要素可以这样形象的理解,数据库驱动相当于一辆车,URL地址相当于目的地,账号密码相当于车钥匙,这样才能去往数据库
//一、加载数据库驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//二、数据库的URL地址
String url = "jdbc:mysql://127.0.0.1:3306/chat_db?characterEncoding=utf8&useSSL=false&serverTimezone=UTC";
//三、数据库的账号
String user = "root";
//四、数据库的密码
String password = "111";
//用驱动管理器获取连接返回连接对象
Connection connection = DriverManager.getConnection(url,user,passworg);
至此数据库就连接成功了,我们只要记住连接数据库的四要素就好
因为增删改没有返回值,所以可以归为一类,下面给出操作步骤
//步骤一:获取数据库连接
Connection connection = DriverManager.getConnection(url,user,passworg);
//要执行的SQL语句,关键部分用问号表示,比如说给Student表插入一条数据
String sql = "insert into student(id,name,sex) vaules(?,?,?)";
//步骤二:预编译SQL语句,并返回对象
PreparedStatement ps = connection.prepareStatement(sql);
//步骤三:填充占位符
ps.setObject(1,2);
ps.setObject(2,"张三");
ps,setObject(3."男");
//步骤四:执行
ps.execute();
以上就是一套最简单的插入语句,我们可以将以上代码提取出来,编写一个通用的增删改操作
我们需要将什么参数传入该方法呢?
SQL语句、SQL语句里面的占位符
但是占位符的个数是不确定的,怎么确定参数的个数呢?这里就用到了可变参数的形参
public void update(String sql, Object...args){
//获取数据库连接
Connection connection = DriverManager.getConnection(url,user,passworg);
//传入形参SQL,预编译SQL语句,返回对象
PreparedStatement ps = connection.prepareStatement(sql);
//填充占位符,一次传入形参
for (int i = 0; i < args.length; i++) {
ps.setObject(i + 1, args[i]);
}
//执行
ps.execute();
}
查询单列出来的原因是,会返回结果,我们要想办法拿到数据
ResultSet 返回的实际上就是一张数据表。有一个指针指向数据表的第一条记录的前面。
//获取数据库连接
Connection connection = DriverManager.getConnection(url,user,passworg);
//查询学生表id等于几的一条数据
String sql = "select * from student where id = ?";
//预编译SQL语句,并返回prepareStatement对象
PreparedStatement ps = connection.prepareStatement(sql);
//执行查询,返回结果(其实结果已经在这个结果集里了,现在只考虑怎么用这些数据就行了)
ResultSet set = ps.executeQuery();
//用while循环取数据,如果next()有下一条数据,就进入循环,一列一列的获取值
while (set.next()){
int id = set.getInt(stu_id);
String name = set.getString(stu_name);
String sex = set.getString(stu_sex);
}