原生JDBC连接数据库案例教学
2023-02-18 16:42:09 时间
前言:
我们在刚刚接触后端开发时,有没有思考过,怎么才能后java代码和数据库进行交互的呢?
正轨:
今天就带大家一起学习一下原生JDBC连接数据库
里面解析结果集说了两种:一种需要导入maven依赖:
<dependency>
<groupId>commons-dbutils</groupId>
<artifactId>commons-dbutils</artifactId>
<version>1.6</version>
</dependency>
直接上代码:
public static void main(String args[]){
Connection con = null;
Statement sta = null;
ResultSet rs = null;
try {
//1.注册驱动==》告诉指挥部有哪些造桥人可以调遣
Class.forName("com.mysql.cj.jdbc.Driver");
//这里是mysql为例 oracle的url ---"jdbc:oracle:thin:@localhost:1521:orcl"
String url = "jdbc:mysql://127.0.0.1:3306/test_1.0";
String user = "root";
String pwd = "root";
//2.获得链接==》指挥部根据传入类型 调遣不同的造桥的人造桥
con = DriverManager.getConnection(url,user,pwd);
//3.创建Statement对象===》造车
sta = con.createStatement();
//4.执行SQL ==》运行SQL 有结果返回
String sql="select * from user";
rs = sta.executeQuery(sql);
//5.处理结果
while(rs.next()){
int id = rs.getInt("id");
String name = rs.getString("name");
int age = rs.getInt("age");
//String code = rs.getString("");
System.out.println(id+"\t"+name+"\t"+age+"\t");
}
System.out.println("----------------华丽分割线------------------");
//第五步处理结果还可以引入Dbutils工具包来解析结果
QueryRunner queryRunner = new QueryRunner();
List<User> list = queryRunner.query(con, sql, new BeanListHandler<>(User.class));
list.forEach(x-> System.out.println(x));
} catch (ClassNotFoundException | SQLException e) {
e.printStackTrace();
}finally {
//6.关闭资源
close(con,sta,rs);
}
}
其中,在结束时要关闭资源,防止资源浪费,这里封装了一个关闭资源方法,代码如下:
public static void close(Connection con , Statement sta , ResultSet rs){
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
try {
sta.close();
} catch (SQLException e) {
e.printStackTrace();
}
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
运行结果展示,代码如下:
/**
* 运行结果展示:
* 解析ResultSet结果
* 1 df 222
* 2 wang 22
* ----------------华丽分割线------------------
* 使用Dbutils来拿取数据库结果展示
* User(id=1, name=df, age=222)
* User(id=2, name=wang, age=22)
*/
结语:
这样就和数据库建立了连接,当然对于数据库的url,账号密码可以写在配置文件中,这样方便修改,本博客目的是讲一下原生JDBC怎么与数据库建立连接的,有什么问题留言呦!!有时间写一下Dbutils工具包QueryRuunner的常用方法.
相关文章
- 数字孪生万物可视 | 联接现实世界与数字空间
- 云图说丨华为云区块链引擎服务:高安全的区块链技术服务平台,轻松部署,快速上链
- AI全流程开发难题破解之钥
- 零代码修改,教你Spring Cloud应用轻松接入CSE
- KubeEdge发布云原生边缘计算威胁模型及安全防护技术白皮书
- 循序渐进VUE+Element 前端应用开发(29)--- 高级查询条件的界面设计
- ABP框架中一对多,多对多关系的处理以及功能界面的处理(2)
- 电商商品数据库的设计和功能界面的处理
- ABP框架中一对多,多对多关系的处理以及功能界面的处理(1)
- 循序渐进VUE+Element 前端应用开发(26)--- 各种界面组件的使用(2)
- 循序渐进VUE+Element 前端应用开发(25)--- 各种界面组件的使用(1)
- 循序渐进VUE+Element 前端应用开发(24)--- 修改密码的前端界面和ABP后端设置处理
- 循序渐进VUE+Element 前端应用开发(22)--- 简化main.js处理代码,抽取过滤器、全局界面函数、组件注册等处理逻辑到不同的文件中
- 在Winform程序中使用Spire.Pdf实现页面添加印章处理
- 循序渐进VUE+Element 前端应用开发(20)--- 使用组件封装简化界面代码
- 使用代码生成工具快速生成基于ABP框架的Vue+Element的前端界面
- 循序渐进VUE+Element 前端应用开发(14)--- 根据ABP后端接口实现前端界面展示
- 循序渐进VUE+Element 前端应用开发(9)--- 界面语言国际化的处理
- 循序渐进VUE+Element 前端应用开发(6)--- 常规Element 界面组件的使用
- 循序渐进VUE+Element 前端应用开发(5)--- 表格列表页面的查询,列表展示和字段转义处理