数据库——JDBC编程基础
使用JDBC编程相当于我们是一个客户端,向服务器发送请求,发送请求前需要与数据库服务器相接通。连接和预处理都是需要占用系统资源的,使用完后要记得手动释放关闭。查找操作的1,2,3,5都与上面的操作1,2,3,5相同,(这个时候就可以取出这一行的元素参数了。表中存在指针一开始指向第一行参数名。指针走完了表最后一行就结束了。表的元素是以行为单位存放的。)不同的是发送和接收。
文章目录
JDBC编程步骤
jar驱动包的导入
- 将中央仓库下载的jar驱动包导入到项目中
- 先创建一个名为lib的包

- 先创建一个名为lib的包
- 将jar驱动包复制粘贴到新创建的lib包里面

- 右键lib然后点击add as Library,完成导入。

JDBC的使用——增删改通用
//1.创建数据源头
DataSource dataSource = new MysqlDataSource();//选javax.sql的包
((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java109?characterEncoding=utf8&useSSL=false");
((MysqlDataSource)dataSource).setUser("root");//管理员,root是mysql中默认自带的用户
((MysqlDataSource)dataSource).setPassword("22222");//MySQL服务器的密码
//2.建立和数据库的连接 请求和响应交互
Connection connection = dataSource.getConnection();//异常抛出,Connection 包选sql的
//3.构造sql
String sql = "insert into student values(?,?,?)";//使用问号作为占位符
int id = 0;
String name = null;
int classId = 1;
PreparedStatement statement = connection.prepareStatement(sql);//预处理操作
statement.setInt(1,id);//这种方式比较安全,注意从 "1" 开始算
statement.setString(2,name);
statement.setInt(3,classId);
//4.把sql 发送给服务器
int ret = statement.executeUpdate();//可以视为一个写操作,修改和删除都可以用
System.out.println(ret);//返回的就是多少行受到影响
//5.释放资源,关闭连接
statement.close();
connection.close();//顺序不要错,先申请的后释放
1. 创建数据源头,从哪里来到哪里去
DataSource dataSource = new MysqlDataSource();- DataSource 记得选**javax.sql**的包
- DataSource本身是接口,不能直接实例
- 如果new MysqlDataSource 出现报错,有可能是导入jar出问题。
((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java109?characterEncoding=utf8&useSSL=false");- 设置具体的url 其实就是"网址",以后直接复制粘贴就好了;
- MysqlDataSource mysqlDataSource = new MysqlDataSource(); 为什么不直接这样写?
- 其实这样写也是完全正确的
- 为了降低耦合度才进行向下转型,在需要向下转型的时候进行向下转型,不需要向下转型的时候它就为DataSource类型。
- 这样在未来如果想要转换数据库,比较方便。
- jdbc:mysql:操作mysql
- 127.0.0.1: 3306:本机ip地址和端口号
- java109是数据库名字,复制的时候记得自己更换数据库名字哦
- characterEncoding=utf8:字符集设置
- useSSl=false进行加密,最好选择false
- 找到了mysql服务器了之后,就可以登录用户名密码了
((MysqlDataSource)dataSource).setUser("root");- 管理员,root是mysql中默认自带的管理员用户
((MysqlDataSource)dataSource).setPassword("22222");- MySQL服务器的密码
2. 建立和数据库的连接 请求和响应交互
使用JDBC编程相当于我们是一个客户端,向服务器发送请求,发送请求前需要与数据库服务器相接通
Connection connection = dataSource.getConnection();- Connection 包记得要选择**java.sql**的,然后将异常抛出。
3. 构造sql语句
-
String sql = "insert into student values(?,?,?)";- 使用问号作为占位符,问号可以由自定义内容输入,只需要满足表的各个类型条件即可。
- 直接将(?,?,?)写成(1,‘张三’,5)也是没有问题的,占位符?只是为了不写死内容。
- 不建议使用 字符串+字符串变量+字符串这种方式,一是代码很混乱,二是如果用户恶意使用delete语句可能会造成严重损失,所以建议使用占位符。
- String sql2 = “insert into student values(”+id+“,”+name+“,”+classId+“)”;
-
PreparedStatement statement = connection.prepareStatement(sql);- 准备好的语句/预处理操作,皇上用膳之前会有公公检查食品安全,编译器也会先帮助我们检查语法错误,避免直接发给服务器,减少让服务器报错。
- 可以认为statement是一个等待发出的承载物(食用盘子,用来装食物)
-
int id = 0; -
String name = null; -
int classId = 1; -
statement.setInt(1,id) -
statement.setString(2,name); -
statement.setInt(3,classId);- 将占位符?替换成参数变量,(装盘)
- 注意从 “1” 开始算、可以搭配控制台scanner使用
4. 把sql 发送给服务器
int ret = statement.executeUpdate();System.out.println(ret);- 可以视为一个写操作,插入、修改和删除都可以用.
- 返回类型为int,是修改原表的行数(改变了…行)
5.释放资源,关闭连接
连接和预处理都是需要占用系统资源的,使用完后要记得手动释放关闭。
statement.close();connection.close();- 顺序不要错,先申请的后释放
JDBC的使用——查找
查找操作的1,2,3,5都与上面的操作1,2,3,5相同,(5关闭操作resultset也要释放哦)不同的是发送和接收。
//1.创建数据源头
DataSource dataSource = new MysqlDataSource();
((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java109?characterEncoding=utf8&useSSL=false");
((MysqlDataSource)dataSource).setUser("root");//管理员,root是mysql中默认自带的用户
((MysqlDataSource)dataSource).setPassword("22222");//MySQL服务器的密码
//2.建立和数据库的连接 请求和响应交互
Connection connection = dataSource.getConnection();
//3.构造sql
String sql = "select * from student where id = ?";//占位符
PreparedStatement statement = connection.prepareStatement(sql);
statement.setInt(1,1);//第一个问号,值为1
//4.发送给服务器并且接收响应的结果结合
ResultSet resultSet = statement.executeQuery();//查询的结果集合,它是一个临时表
//5.遍历结果集合,类似迭代器
while (resultSet.next()){
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
int classRoom = resultSet.getInt("classId");
System.out.println("id=" + id+",name="+name);
}
//6.关闭
resultSet.close();
statement.close();
connection.close();
4.1发送给服务器并且接收
ResultSet resultSet = statement.executeQuery();- 返回查询的结果集合,它是一个临时表
4.2取出表中元素并打印
while (resultSet.next()){
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
int classRoom = resultSet.getInt("classId");
System.out.println("id=" + id+",name="+name);
}
-
表的元素是以行为单位存放的
-
表中存在指针一开始指向第一行参数名

-
通过
resultSet.next()语句,移动指针 -
这个时候就可以取出这一行的元素参数了
-
指针走完了表最后一行就结束了

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐
所有评论(0)