package com.jdbcke;
import java.sql.Connection;
import java.sql.DatabaseMetaData;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import javax.swing.plaf.synth.SynthStyle;
public class ke1 {
public static void main(String[] args) {
try { //访问数据库
//1.加载驱动;加载数据库提供的驱动类
Class.forName("oracle.jdbc.driver.OracleDriver");
//2.获取数据库连接,通过java的驱动管理器
//url——数据库地址;user——用户名;password-密码
//不同的数据库地址写法不一样
Connection conn= DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcltao",
"test0816","123456");
System.out.println("连接成功");
//3.获得操作数据库的声明Statement
Statement st=conn.createStatement();
//4.操作数据,增删改查
//执行操作,增
int i =st.executeUpdate("insert into student (sno,sname,ssex)"+"values('1517','小军','男')");
System.out.println("添加数据成功,返回值="+i);//返回值的意思:该操作影响的数据记录条数。
//改
// int i=st.executeUpdate("update student set ssex='男' where ssex='1'");
// System.out.println("添加数据成功,返回值="+i);
//查ResultSet数据结果集
ResultSet rs= st.executeQuery("select * from student");
//遍历结果集
while(rs.next()) //next() 判断是否存在下一条记录,如果存在,移动指针到一下条记录数据
{
//读取数据
String sno=rs.getString("sno");
String sname=rs.getString("sname");
String ssex=rs.getString("ssex");
System.out.println("sno="+sno+"sname="+sname+"ssex="+ssex);
}
//3.4创建声明与执行PreparedStatement
// String sql="select * from kaihubiao where yhcard=? and cardmm=?";
// PreparedStatement ps= conn.prepareStatement(sql);
// ps.setString(1, cardid);
// ps.setString(2, mm);
// //执行
// ResultSet rs= ps.executeQuery();
// //遍历
// rtn=rs.next();//如果有数据就验证通过
//补充知识
//调用存储过程
// CallableStatement cs=conn.prepareCall("{call 存储过程名(?,?)}");
//获取与数据库相关的信息
DatabaseMetaData dm= conn.getMetaData();
System.out.println("URL="+dm.getURL());
System.out.println("名称="+dm.getUserName());
System.out.println("产品名称="+dm.getDatabaseProductName());
//结果集的元数据 ——可以获得数据库表中的列明
ResultSetMetaData rsmd =rs.getMetaData();
System.out.println("列的数量"+rsmd.getColumnCount());
System.out.println("列的列名"+rsmd.getColumnName(1));
System.out.println("列的数量"+rsmd.getColumnCount());
rs.close();
//关闭声明,释放资源
st.close();
//关闭数据库连接
conn.close();
} catch (ClassNotFoundException | SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}