已移至为知——2014-09-16 周三-JDBC连数据库

来源:互联网 发布:红警的兵种数据 编辑:程序博客网 时间:2024/06/06 00:14

一、JDBC连数据库

1、jdbc连数据库

  1. sql:
    create database day14 character set utf8 collate utf8_general_ci;use day14;create table user(id int primary key auto_increment,name varchar(40),password varchar(40),email varchar(60),birthday date)character set utf8 collate utf8_general_ci;insert into user(name,password,email,birthday) values('zs','123456','zs@sina.com','1980-12-04');insert into user(name,password,email,birthday) values('lisi','123456','lisi@sina.com','1981-12-04');insert into user(name,password,email,birthday) values('wangwu','123456','wangwu@sina.com','1979-12-04');
    Demo1.java:
    package cn.itcast.demo;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;class Demo1 {public static void main(String[] args) throws SQLException {//1、加载驱动。在工程里新建一个lib文件夹,把mysql-connector-java-5.1.26-bin.jar复制到lib文件夹下,再Build Path一下。DriverManager.registerDriver(new com.mysql.jdbc.Driver());//2、连接数据库String url = "jdbc:mysql://localhost:3306/day14";Connection conn = DriverManager.getConnection(url, "root", "root");//3、创建statementStatement st = conn.createStatement();//4、发送sql语句String sql = "select id, name, password, email, birthday from user";ResultSet rs = st.executeQuery(sql);//5、取出ResultSet集合while(rs.next()) {System.out.println("id=" + rs.getObject("id"));System.out.println("name=" + rs.getObject("name"));System.out.println("password=" + rs.getObject("password"));System.out.println("email=" + rs.getObject("email"));System.out.println("birthday=" + rs.getObject("birthday"));}//6、关闭资源。倒着向上关闭。rs.close();st.close();conn.close();}}
    注意:在实际开发中并不推荐采用registerDriver方法注册驱动。原因有二:
    1、查看Driver的源代码可以看到,如果采用此种方式,会导致驱动程序注册两次,也就是在内存中会有两个Driver对象。
    2、程序依赖mysql的api,脱离mysql的jar包,程序将无法编译,将来程序切换底层数据库将会非常麻烦。
  2. 推荐方式:
    Class.forName("com.mysql.jdbc.Driver");
    采用此种方式不会导致驱动对象在内存中重复出现,并且采用此种方式,程序仅仅只需要一个字符串,不需要依赖具体的驱动,使程序的灵活性更高。

2、数据库URL

  1. jdbc:mysql:[]//localhost:3306/test ?参数名:参数值
    常用数据库URL地址的写法:
    Oracle写法:jdbc:oracle:thin:@localhost:1521:sid
    SqlServer—jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=sid
    MySql—jdbc:mysql://localhost:3306/sid
    Mysql的url地址的简写形式: jdbc:mysql:///sid (//省略了localhost:3306/库名)
    常用属性:useUnicode=true&characterEncoding=UTF-8




0 0