传统JDBC操作数据库
2024-08-24 12:45:51
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);//打印输出查询出来的数据 } }
最新文章
- phpstorm 设置Utf8编码
- iOS AFNetworking中cookie重定向
- BackTrack5-r3安装中文版的firefox火狐浏览器
- Oracle 学习方法
- iOS移动下上传图片失败解决 (上传多图,带其他参数)
- iOS--UISearchBar和UISearchDisplayController
- Python当中的正则表达式支持!
- linux下网络程序遭遇SIGPIPE的解决(转)
- linux ---用uniq实现文件的并集和交集
- jquery 模块拖拽
- 分享一个linux和linux的文件传输【scp无密码传输】
- 16个值得个人站长做的广告联盟[转自cnzz]
- SQLserver创建与主外键的看法
- 数据结构学习:KMP模式匹配算法
- Kindle:自动追更之Calibre2脚本
- UML介绍
- java显示树结构
- db2编目抽取
- 微信小程序tabbar设置样式在哪里改
- Hive高级聚合GROUPING SETS,ROLLUP以及CUBE
热门文章
- 封装EF code first用存储过程的分页方法
- mybatis学习总结(三)——增删查改
- java object monitor
- Java,获取文件的Base64字符串,解码Base64字符串还原文件
- Git检出远程库的分支等相关操作
- Codeforces 126D Fibonacci Sums 求n由随意的Sum(fib)的方法数 dp
- LightOJ1214 Large Division —— 大数求模
- Unable to create Debug Bridge:Unable to start adb server:error:cannot parse version
- hdu 6053(To my boyfriend)
- [BZOJ 1475] 方格取数