package test;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;

public class JDBCCon {

/**
* @param args
* @throws SQLException
*/
public static void main(String[] args) {
// 数据库连接地址,字符编码一般设置UTF-8根据实际情况而定
String url = "jdbc:mysql://127.0.0.1:3306/bdpf?useUnicode=true&characterEncoding=utf-8";
// 创建数据库连接
Connection conn = null;
// 创建一个Statement实例
Statement st = null;
// 结果集
ResultSet rs = null;
// 数据库用户名
final String userName = "root";
// 数据库密码
final String password = "root";
try {
// 加载数据库驱动
Class.forName("com.mysql.jdbc.Driver");
// 根据地址、用户名、密码获取数据库连接
conn = DriverManager.getConnection(url,userName,password);
// 创建以个Statement
st = conn.createStatement();
// 执行查询语句
rs = st.executeQuery("select * from tbl_base_info");
// 获取查询结果数据,循环打印出列名
ResultSetMetaData rmd = rs.getMetaData();
for (int index = 1;index<rmd.getColumnCount()+1;index++) {
System.out.println(rmd.getColumnName(index));
}
} catch (Exception e) {
// TODO Auto-generated catch block

e.printStackTrace();
} finally{
try {
// 如果结果集实例不为空最后要关闭
if(rs!=null){
rs.close();
}
// 如果Statement实例不为空最后要关闭
if(st!=null){
st.close();
}
// 如果数据库连接仍然存在最后要关闭
if(st!=null){
conn.close();
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}

/*知识点扩展:
1.本人是以mysql最为例子写的代码需要引入mysql的jar包

2.String url = "jdbc:mysql://127.0.0.1:3306/bdpf?useUnicode=true&characterEncoding=utf-8";
useUnicode=true 说明要使用Unicode编码,如果要指定characterEncoding 那么useUnicode值必须为true

3.Statement 有三种执行sql语句的方法
executeQuery 、executeUpdate 和 execute
其中executeQuery执行查询语句,返回结果集
executeUpdate,执行INSERT,DELETE,UPDATE等语句,返回值是受影响的行数
execute 用于执行返回多个结果集、多个更新计数或二者组合的 sql语句,方法返回值为boolean
示例:
ResultSet rs = stmt.executeQuery("select * from ...") ;
int rows = stmt.executeUpdate("update tableName ...") ;
boolean flag = stmt.execute(String sql) ;

4.要关闭JDBC对象
结果集
声明
和连接
创建时的顺序为 连接、声明、结果集
关闭时的顺序为 结果集 、声明、连接
关闭的最佳时机应该为finally代码内
以保证在try过程中抛出异常,最后finally内的代码仍能执行,避免连接消耗
*/

最新文章

  1. Ubantu【第一篇】:Ubantu中openssh连接
  2. win7Java开发环境配置
  3. linux下安装7z命令及7z命令的使用
  4. 13.python中的字典
  5. BZOJ 1610 连线游戏
  6. 【转】(DT系列三)系统启动时, dts 是怎么被加载的
  7. android实现文本复制到剪切板功能(ClipboardManager)
  8. android开发之 包含EditText组件 禁止自动获取焦点弹出输入法
  9. replace() 所有单词首字母大写
  10. 小程序之hover-class
  11. NVM 安装 nodejs
  12. QML用Qt.labs.settings实现保存用户设置
  13. call,apply和bind的区别
  14. MySQL数据库下载、安装
  15. [python] 使用Jieba工具中文分词及文本聚类概念
  16. 自己动手实现java数据结构(一) 向量
  17. extjs使用笔记-21
  18. DOM笔记(十):JavaScript正則表達式
  19. Python - Django - 登录页面
  20. JS基础,课堂作业,计算器

热门文章

  1. 转!!负载均衡器技术Nginx和F5的优缺点对比
  2. 【High-Speed and Accurate Laser Scan Matching Using Classified Features】
  3. 数据挖掘算法(四)Apriori算法
  4. Sql Server R2还有备份数据库错误
  5. 20145218 GDB调试汇编堆栈过程分析
  6. forever让nodejs应用后台执行
  7. 使用robot frame selenium中遇到的问题汇总
  8. [原创]在Docker上部署mongodb分片副本集群。
  9. ORACLE 自定义聚合函数
  10. HttpHandler