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);//打印输出查询出来的数据 } }

最新文章

  1. phpstorm 设置Utf8编码
  2. iOS AFNetworking中cookie重定向
  3. BackTrack5-r3安装中文版的firefox火狐浏览器
  4. Oracle 学习方法
  5. iOS移动下上传图片失败解决 (上传多图,带其他参数)
  6. iOS--UISearchBar和UISearchDisplayController
  7. Python当中的正则表达式支持!
  8. linux下网络程序遭遇SIGPIPE的解决(转)
  9. linux ---用uniq实现文件的并集和交集
  10. jquery 模块拖拽
  11. 分享一个linux和linux的文件传输【scp无密码传输】
  12. 16个值得个人站长做的广告联盟[转自cnzz]
  13. SQLserver创建与主外键的看法
  14. 数据结构学习:KMP模式匹配算法
  15. Kindle:自动追更之Calibre2脚本
  16. UML介绍
  17. java显示树结构
  18. db2编目抽取
  19. 微信小程序tabbar设置样式在哪里改
  20. Hive高级聚合GROUPING SETS,ROLLUP以及CUBE

热门文章

  1. 封装EF code first用存储过程的分页方法
  2. mybatis学习总结(三)——增删查改
  3. java object monitor
  4. Java,获取文件的Base64字符串,解码Base64字符串还原文件
  5. Git检出远程库的分支等相关操作
  6. Codeforces 126D Fibonacci Sums 求n由随意的Sum(fib)的方法数 dp
  7. LightOJ1214 Large Division —— 大数求模
  8. Unable to create Debug Bridge:Unable to start adb server:error:cannot parse version
  9. hdu 6053(To my boyfriend)
  10. [BZOJ 1475] 方格取数