这里写目录标题
JDBC操作数据库
1.创建java工程
2.编写代码
0.JDBC工程创建
1.JDBC的基本编程流程
- 1.创建DataSourse
-
2创建数据源
2.用JDBC往数据库中增加元素
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;
public class Demo {
public static void main(String[] args) throws SQLException {
Scanner scanner = new Scanner(System.in);
//1.创建好数据源
DataSource dataSource=new MysqlDataSource();
//设置数据库所在的位置
((MysqlDataSource) dataSource).setURL("jdbc:mysql://127.0.0.1:3306/java102?characterEncoding=utf8&useSSL=true");
//设置登录数据库用户名
((MysqlDataSource)dataSource).setUser("root");
//这个设置登录数据的密码
((MysqlDataSource)dataSource).setPassword("1234");
//2.让代码和数据库服务器建立连接 相当于到达了菜鸟驿站
Connection connection = dataSource.getConnection();
//2.5 让用户通过控制台输入下一待插入的数据
System.out.println("请输入一个学号:");
int id = scanner.nextInt();
System.out.println("请输入一个姓名:");
String name = scanner.next();
//3.操作数据库.已插入数据为例
// 关键所在就是构造一个SQL语句
// 在jdbc中构造的sql,不必带上
//;只是在命令行中用来区分不同的语句,现在是直接代码中操作
String sql = "insert into student values(?,?)";
//此处光是一个String类型的sql还不行,需要把这个String包装成一个语句对象
PreparedStatement statement = connection.prepareStatement(sql);
//为了更好的程序交互在这里我们使用替换操作
statement.setInt(1,id);
statement.setString(2,name);
System.out.println("statement: " + statement);
//4.执行SQL ,相当于扫码取件
//SQL里面如果是insert,update,delete,都使用executeUpadate方法
//SQL里面如果是select,则使用executeQuery方法
int ret = statement.executeUpdate();
System.out.println(ret);
//5.此时Sql已经执行完毕,然后还需要释放资源
statement.close();
connection.close();
}
}
3.用JDBC修改数据库中的元素
import java.util.Scanner;
public class testJDBCUpdate {
public static void main(String[] args) throws SQLException {
//1.创建数据源
DataSource dataSource = new MysqlDataSource();
((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/java102?characterEncoding=utf8&useSSL=true");
((MysqlDataSource)dataSource).setUser("root");
((MysqlDataSource)dataSource).setPassword("1234");
//2.建立连接
Connection connection = dataSource.getConnection();
//3.用户输入id
Scanner scanner = new Scanner(System.in);
System.out.println("请输入要修改的id: ");
int id = scanner.nextInt();
System.out.println(" 请输入要修改的name:");
String name = scanner.next();
//4.拼装sql
String sql = "update student set name = ? where id = ?";
PreparedStatement statement = connection.prepareStatement(sql);
statement.setString(1,name);
statement.setInt(2,id);
System.out.println("statement: " + statement);
//5.执行sql
int ret = statement.executeUpdate();
System.out.println(ret);
//6.关闭资源
statement.close();
connection.close();
}
}
4.用JDBC删除数据库中的元素
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Scanner;
public class TestJDBCDelete {
public static void main(String[] args) throws SQLException {
//删除数据库中的记录
//让用户输入一个id,根据id来删除
//1.创建数据源
DataSource dataSource = new MysqlDataSource();
((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/java102?characterEncoding=utf8&useSSL=true");
((MysqlDataSource)dataSource).setUser("root");
((MysqlDataSource)dataSource).setPassword("1234");
//2.建立连接
Connection connection = dataSource.getConnection();
//3.用户输入id
int id = 0;
Scanner scanner = new Scanner(System.in);
System.out.println("请输入一个删除的id:");
id = scanner.nextInt();
//4.拼装sql语句
String sql = "delete from student where id = ?";
PreparedStatement statement = connection.prepareStatement(sql);
statement.setInt(1,id);
System.out.println("statement: " + statement);
//5.执行sql
int ret= statement.executeUpdate();
System.out.println(ret);
//6.回收释放资源
statement.close();
connection.close();
}
}
5.用JDBC查询数据库中的元素
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class TestJDBCSelect {
public static void main(String[] args) throws SQLException {
//1.创建数据源
DataSource dataSource = new MysqlDataSource();
((MysqlDataSource)dataSource).setURL("jdbc:mysql://127.0.0.1:3306/java102?characterEncoding=utf8&useSSL=true");
((MysqlDataSource)dataSource).setUser("root");
((MysqlDataSource)dataSource).setPassword("1234");
//2.建立连接
Connection connection = dataSource.getConnection();
//3.拼装sql
String sql = "select * from student";
PreparedStatement statement = connection.prepareStatement(sql);
//4.执行sql.对于查询操作,就需要使用executeQueryl
// 查询操作返回的不是一个int了,而是一个临时表
// 使用ResultSet表示这个表
ResultSet resultSet = statement.executeQuery();
//5.遍历结果集合(返回的临时表) 先获取到每一行,再获取到这一行中的若干列
//next方法表示获取到一行记录,同时把光标往后移动一行
// 如果遍历到表的结束为止,此处的next直接就返回falsel;
while(resultSet.next()){
//针对当前这一行来获取到其中的列
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
System.out.println("id = " + id + ", name = " + name);
}
//6.释放资源
resultSet.close();
statement.close();
connection.close();
}
}