package com.jdbc;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JdbcTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//先加载需要连接的数据库驱动到jvm
//加载成功后,会将Driver类注册到DriverManager
try{
Class.forName("com.mysql.jdbc.Driver");
}catch(Exception e){
System.out.println("数据库驱动加载失败");
e.printStackTrace();
}
//连接jdbc的url
//url书写形式--协议:子协议:数据源
//协议:JDBC中总是以jdbc开始
//子协议:是桥连接的数据驱动名或者数据库管理系统名称
//数据源:数据的来源地址和接口
String url = "jdbc:mysql://localhost:3306/gzy?useUnicode=true&characterEncoding=utf-8";
//创建数据库的连接
//要连接数据库,需要向java.sql.DriverManager请求一个Connection对象,该对象代表一个数据库连接
Connection conn = null;
try{
conn = DriverManager.getConnection(url, "root", "111111");
}catch(Exception e){
System.out.println("数据库连接获取失败");
e.printStackTrace();
}
//创建一个statement,java.sql.stateMent其实例分为一下三种类型
//1、statement:执行静态sql;2、preparedStatement:执行动态sql;3、CallableStatement:执行存储过程
//PreparedStatement psm = null;
//CallableStatement csm = null;
Statement st = null;
try{
//psm = conn.prepareStatement(null);
//csm = conn.prepareCall(null);
st = conn.createStatement();
}catch(Exception e){
System.out.println("创建Statement失败");
e.printStackTrace();
}
//执行sql语句
//Statement提供三个方法:execute()返回boolean型;executeQuery()返回ResultSet;executeUpdate()返回int
ResultSet rs = null;
try{
rs = st.executeQuery("select * from user");
}catch(Exception e){
System.out.println("执行sql出错");
e.printStackTrace();
}
//处理结果数据
try{
while(rs.next()){
System.out.println(rs.getString(2));
}
}catch(SQLException e){
System.out.println("处理数据出错");
e.printStackTrace();
}
//关闭jdbc对象
if(rs != null){
try{
rs.close();
}catch(Exception e){
e.printStackTrace();
System.out.println("结果集关闭出错");
}
}
if(st != null){
try{
st.close();
}catch(Exception e){
e.printStackTrace();
System.out.println("声明关闭出错");
}
}
if(conn != null){
try{
conn.close();
}catch(Exception e){
e.printStackTrace();
System.out.println("数据库连接关闭出错");
}
}
}
}