传统JDBC操作数据库
package com.jdbc.example; import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement; public class JdbcExample { //创建一个数据库的连接
private static Connection getConnection() {
Connection connection = null;
try {
Class.forName("com.mysql.jdbc.Driver");//加载用户驱动
String url = "jdbc:mysql://localhost:3306/mybatis";//连接数据库的地址
String user = "root";//数据库的用户名
String password = "root";//数据库的密码
connection = DriverManager.getConnection(url, user, password);//得到一个数据库的连接
} catch (ClassNotFoundException e) {
// TODO 自动生成的 catch 块
System.out.println(JdbcExample.class.getName() + "数据库驱动包未找到!");
return null;
} catch (SQLException e) {
// TODO 自动生成的 catch 块
System.out.println(JdbcExample.class.getName() + "SQL语句有问题,无法查询成功!");
return null;
}
return connection;//返回该连接
} public User getUser(int id) {
Connection connection = getConnection();//得到该数据库的连接
PreparedStatement ps = null;//声明一个null的预处理的Statement
ResultSet rs = null;//声明一个结果集,用来存放SQL的查询后的结果
try {
ps = connection.prepareStatement("select * from user where id=?");//对查询的User表的SQL进行预处理编译
ps.setInt(1, id);//把参数Id设值到数据的条件中
rs = ps.executeQuery();//执行查询语句。把结果返回到ResultSet结果集中
while (rs.next()) {//遍历从结果集中取数
int user_id = rs.getInt("id");//取出Statement的用户id
String username = rs.getString("username");//取出Statement的用户名
Date birthday = rs.getDate("birthday");//取出Statement的生日
String sex = rs.getString("sex");//取出Statement的性别
String address = rs.getString("address");//取出Statement的用户地址 User user = new User();//创建一个User类的实体对象POJO
user.setId(user_id);//存放在user对象中
user.setUsername(username);
user.setBirthday(birthday);
user.setSex(sex);
user.setAddress(address); return user;
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
this.close(rs, ps, connection);
}
return null;
} //判断数据库是否关闭
/***
*
* @param rs 查看结果集是滞关闭
* @param stmt 预处理SQL是否关闭
* @param conn 数据库连接是否关闭
*/
private void close(ResultSet rs, Statement stmt, Connection conn) { try {
if (rs != null) {
rs.close();
}
} catch (SQLException e) {
System.out.println(JdbcExample.class.getName() + "ResultSet 关闭失败!");
}
try {
if (stmt != null) {
stmt.close();
}
} catch (SQLException e) {
System.out.println(JdbcExample.class.getName() + "Statement 关闭失败!");
}
try {
if (conn != null) {
conn.close();
}
} catch (SQLException e) {
System.out.println(JdbcExample.class.getName() + "Connection 关闭失败!");
}
} public static void main(String[] args) {
User user = new JdbcExample().getUser(1);//我们查询用户的id 为 1 用户
System.out.println(user);//打印输出查询出来的数据 } }
传统JDBC操作数据库的更多相关文章
- 用于JDBC操作数据库的公共类
/* * @(#)CommonSql.java 2011-9-5 * * Copyright 2011 Bianjing,All rights reserved. */ import java.sql ...
- JDBC操作数据库的学习(2)
在上一篇博客<JDBC操作数据库的学习(1)>中通过对例1,我们已经学习了一个Java应用如何在程序中通过JDBC操作数据库的步骤流程,当然我们也说过这样的例子是无法在实际开发中使用的,本 ...
- JDBC操作数据库的学习(1)
单单对数据库的操作,比如说MySQL,我们可以在命令行窗口中执行,但是一般是应用程序要操作数据库,因此我们应该在程序中的代码上体现对数据库的操作,那么使用程序应用如何操作数据库呢?那就要使用到数据库的 ...
- JDBC操作数据库的三种方式比较
JDBC(java Database Connectivity)java数据库连接,是一种用于执行上sql语句的javaAPI,可以为多种关系型数据库提供统一访问接口.我们项目中经常用到的MySQL. ...
- Spark Streaming通过JDBC操作数据库
本文记录了学习使用Spark Streaming通过JDBC操作数据库的过程,源数据从Kafka中读取. Kafka从0.10版本提供了一种新的消费者API,和0.8不同,因此Spark Stream ...
- JDBC操作数据库的基本步骤:
JDBC操作数据库的基本步骤: 1)加载(注册)数据库驱动(到JVM). 2)建立(获取)数据库连接. 3)创建(获取)数据库操作对象. 4)定义操作的SQL语句. 5)执行数据库操作. 6)获取并操 ...
- springboot学习-jdbc操作数据库--yml注意事项--controller接受参数以及参数校验--异常统一管理以及aop的使用---整合mybatis---swagger2构建api文档---jpa访问数据库及page进行分页---整合redis---定时任务
springboot学习-jdbc操作数据库--yml注意事项--controller接受参数以及参数校验-- 异常统一管理以及aop的使用---整合mybatis---swagger2构建api文档 ...
- Spring入门(十五):使用Spring JDBC操作数据库
在本系列的之前博客中,我们从没有讲解过操作数据库的方法,但是在实际的工作中,几乎所有的系统都离不开数据的持久化,所以掌握操作数据库的使用方法就非常重要. 在Spring中,操作数据库有很多种方法,我们 ...
- Java笔记(第七篇 JDBC操作数据库)
JDBC是连接数据库和java程序的桥梁,通过JDBC API可以方便地实现对各种主流数据库的操作.学习java语言,必须学习JDBC技术,因为JDBC技术实在java语言中被广泛使用的一种操作数据库 ...
随机推荐
- WPF自定义Popup和弹出菜单
Popup: <StackPanel Grid.Column="0" Grid.Row="6" Orientation="Horizontal& ...
- 在Windows平台用visual studio编译的可执行文件部署时报:应用程序无法正常启动0xc000007b(跟DirectX9无关的原因)
最近在做EasyDarwin开源流媒体服务器Windows版本编译与部署时发现一个问题,在开发机本机运行都很正常,但是部署到目标机器(未安装vs等开发环境)时,莫名其妙报出了"应用程序无法正 ...
- 基于struts2的学生报道管理系统(附github源码地址)
本项目参考了<java web轻量级开发全体验>,加入了对mysql的支持. 一.基本业务功能 通过struts2框架,结合mysql数据库构建一个学生报到管理系统,来模拟学生报到登记的过 ...
- Protocol_OSPF
Protocol_OSPF 作者:Danbo 2015-7-4 从一个非常概括的角度来看OSPF协议的操作是比较容易理解的 1.宣告OSPF的路由器从所有启动OSPF协议的接口上发出Hello数据包. ...
- Codeforces Round #398 (Div. 2) C. Garland —— DFS
题目链接:http://codeforces.com/contest/767/problem/C 题解:类似于提着一串葡萄,用剪刀剪两条藤,葡萄分成了三串.问怎样剪才能使三串葡萄的质量相等. 首先要做 ...
- nginx-upsync-module安装
1.安装nginx-upsync-module wget https://github.com/weibocom/nginx-upsync-module/archive/master.zip 作用:n ...
- git 合并子分支
1.子分支 $ git status 位于分支 base 无文件要提交,干净的工作区 2.子分支更新 $ git pull origin base 来自 http://106.14.59.204/ji ...
- 手把手教你打造ImageView支持手势放大缩小
写在前面 最近有了新的任务,学习的时间比以前少了不少,Java回炉的文估计是得缓缓了,不过每周一篇尽量保质保量.最近感觉我文写的有点不好,因为我写东西除非必要,不然概念性的东西我基本上都是一笔带过…… ...
- Opencv— — Circle Filter
// define head function #ifndef PS_ALGORITHM_H_INCLUDED #define PS_ALGORITHM_H_INCLUDED #include < ...
- HDU2602(01背包)
Bone Collector Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...