数据库连接

来源:互联网 发布:java 整型转二进制 编辑:程序博客网 时间:2024/06/06 01:45
1:注册驱动,任何数据库的加载驱动的标准步骤

此处用的是多态   接口对象指向实现类的对象

DriverManager这个用的java的接口
Driver用的是mysql的实现类
DriverManager.registerDriver(new Driver());

注意:mysql实现的DriverManager接口中的 方法时  这个注册驱动的功能 是静态的也就是说只要类加载
那么就会注册驱动   那么上述语句 就会注册两个
只要加载类就可以注册驱动那么下面语句就可以注册驱动
Class.forName("com.mysql.jdbc.Driver");

2.创建和数据库的连接
用getConnection方法   返回的永远是java.sql.Connection的实现类
多态
url的格式:
协议名:子协议://ip地址:端口号/数据库名
如果写的是本机的地址 那么没有网的情况下 本机也访问不到本机  因为只要不是localhost那么就是走的网络路线,所以访问不到
String url="jdbc:mysql://localhost:3306/myfirstdb";
三种方式都可以获取数据库连接对象  也就是利用了方法的重载   方法重载时,参数的顺序不同也就是对应的类型不同那么也是重载
第一种:参数有三个
Connection conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/myfirstdb","root","123456");
第二种:参数有一个
Connection conn=DriverManager.getConnection(url+"?user=root&password=123456");
第三种:两个参数的重载

3。创建可以执行sql语句的对象
Statement statement=conn.createStatement();

4.使用statement对象执行sql语句
ResultSet rs=statement.executeQuery("select * from student");

5.取数据
while(rs.next()){
Object s1 = rs.getObject(1);
Object s2 = rs.getObject(2);
Object s3 = rs.getObject(3);
Object s4 = rs.getObject(4);
System.out.println(s1+"\t\t"+s2+"\t\t"+s3+"\t\t"+s4);
}

6关闭资源
conn.close();
statement.close();
rs.close();


当然还得创建一个配置文件





现在开始从配置文件中读出出来需要使用的值步骤如下:
获取这个类对象
ResourceBundle bundle = ResourceBundle.getBundle("zzhdbconfig");
ResourceBundle bundle = ResourceBundle.getBundle("zzhdbconfig");
然后类似map中获取健值那样 获取对应的值
String driverClass = bundle.getString("driverClass");
String url = bundle.getString("url");
String user = bundle.getString("user");
String password = bundle.getString("password");
老一套和创建连接
Class.forName(driverClass);
Connection conn = DriverManager.getConnection(url,user,password);
Statement st = conn.createStatement();
String sql = "select * from student";
String sql2 = "insert into student values(13,'赵六',33,'女博士')";
ResultSet rs = st.executeQuery(sql);
while(rs.next()){
System.out.println(rs.getObject(1));
}
关于rs的各种功能的类 例如 获取 例的个数  获取行的个数  获取列名 。。。。可以在jdk中查找
结果集有多少列
int line = rs.getMetaData().getColumnCount();
ResultSetMetaData getMetaData() 
        获取此 ResultSet 对象的列的编号、类型和属性 
for(int i = 1;i <= line;i++){
System.out.print(rs.getMetaData().getColumnName(i)+"\t\t");
}
System.out.println();
while(rs.next()){
for(int i = 1;i <= line;i++){
System.out.print(rs.getObject(i) + "\t\t");
}
System.out.println();
}

原创粉丝点击