JDBC技术--驱动与具体实现

来源:互联网 发布:经传证券炒股软件 编辑:程序博客网 时间:2024/06/06 07:31

几种常见的数据库驱动格式和URL格式
    1、    驱动格式

a)  MySQL:   com.mysql.jdbc.Driver 

或者org.gjt.mm.mysql.Driver

b)  SQL Server:

 com.miscrosoft.sqlserver.jdbc.SQLServerDriver

c)  Oracle: oracle.jdbc.driver.OracleDriver

 

2、    URL格式

a)  MySQL:

jdbc:mysql://localhost:3306/数据库名

b)  SQL Server:

jdbc:sqlserver://127.0.0.1:1433;databaseName=数据库名

c)  Oracle:

jdbc:oracle:thin:@localhost:1521:数据库名

 

 

JDBC开发步骤

1、创建Java项目,并加入数据库jar包

    (1)在项目上创建一个文件夹,名称为lib

    (2)把相应的jar包复制到此文件夹中

    (3)右击jar包-->Build Path-->add too Build Path

 

2、加载数据库驱动

    Class.forName("org.gjt.mm.mysql.Driver")

    Class.forName("com.mysql.jdbc.Driver")

   

3、获得数据库连接

    Connectionconnect = DriverManager.getConnection(url, 用户名, 密码)

    url表示数据库连接协议:jdbc:mysql://localhost:3306/数据库名

       jdbc:mysql://-->数据库协议

       localhost-->表示数据库服务的ip地址

       3306-->表示数据库服务的端口号

    用户名:root

    密码:123456

   

4、创建会话

    Statementstate = connect.createStatement();

   

5、执行sql语句

    state.executeUpdate(sql);//增删改

    ResultSetset = state.executeQuery(sql);//查

   

6、关闭会话以及数据库连接

    state.close();

    connect.close();

 

   

JDBC具体实现操作

 

import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;

import java.util.ArrayList;

import java.util.List;

import java.util.Scanner;

 

public class MyJDBC {

    // 静态代码块:类被加载就执行,并且只执行一次

    static{

       try{

           //2、加载驱动

           Class.forName("com.mysql.jdbc.Driver");

       }catch (ClassNotFoundException e) {

           e.printStackTrace();

       }

    }

 

   // 创建表

    publicstatic void createTable() throws SQLException {

       //3、获得数据库连接

       Connectionconnect =DriverManager.getConnection("jdbc:mysql://localhost:3306/myjdbc", // 连接数据库的url地址

              "root",// 数据库服务的用户名

              "123456");//数据库服务的密码

 

       //4、创建会话

       Statementstate = connect.createStatement();

 

       //5、执行SQL语句

       Stringsql = "create table student(id int primary key auto_increment, " +"name char(10), " + "sex char, "

              +"age int);";

       state.execute(sql);

       System.out.println("student表创建成功");

 

       //6、关闭

       state.close();

       connect.close();

    }

 

   // 增加数据

    publicstatic void insertData() throws SQLException {

       Connectionconnect = null;

       Statementstate = null;

 

       try{

           //3、获得数据库连接

           connect= DriverManager.getConnection("jdbc:mysql://localhost:3306/myjdbc",// 连接数据库的url地址

                  "root",// 数据库服务的用户名

                  "123456");//数据库服务的密码

 

           //4、创建会话

           state= connect.createStatement();

 

           /*

            * 方式1 //5、执行SQL语句 for(int i = 0; i < 5; i++) { //写定数据添加 String sql

            * = "insert into student(name, sex, age)values('小明', '男', 20)";

            * state.executeUpdate(sql); }

            */

 

           /*

            * 方式2 //准备数组资源 String[] name = {"张三","李四","王二麻子","赵六","铁柱"};

            * String[] sex = {"男", "女"};int[] age = {10,11,12,14,15};

            *

            * //5、执行SQL语句 for (int i = 0; i < 5; i++) { int a= (int)

            * (Math.random()*2);//获得0~2之间的随机整数 //从数组中获取数据依次添加 String sql =

            * "insert into student(name, sex, age)values('" + name[i] + "', '"

            * +sex[a]+"', " + age[i] +")";

            *

            * state.executeUpdate(sql); }

            */

 

           //方式3

           //通过键盘输入添加数据

           Scannersc = new Scanner(System.in);// 获取键盘输入

           while(true) {

              System.out.println("请输入名字:");

              Stringname = sc.next();

              System.out.println("请输入性别:男或女");

              Stringsex = sc.next();

              System.out.println("请输入年龄");

              intage = sc.nextInt();

 

              Stringsql = "insert into student(name, sex, age) values('" + name +"', '" + sex + "', " + age + ");";

 

              state.executeUpdate(sql);

           }

       }catch (Exception e) {

           e.printStackTrace();

       }finally {

           //关闭

           state.close();

           connect.close();

       }

    }

 

   // 删除数据

    publicstatic void deleteData() throws SQLException {

 

       //3、获得数据库连接

       Connectionconnect =DriverManager.getConnection("jdbc:mysql://localhost:3306/myjdbc", // 连接数据库的url地址

              "root",// 数据库服务的用户名

              "123456");//数据库服务的密码

 

       //4、创建会话

       Statementstate = connect.createStatement();

 

       //执行SQL语句

       Scannersc = new Scanner(System.in);

       System.out.println("请输入要删除的记录的id号:");

       intid = sc.nextInt();

       Stringsql = "delete from student where id=" + id + ";";

       state.executeUpdate(sql);

 

       System.err.println("数据删除成功");

 

       //关闭

       state.close();

       connect.close();

       sc.close();

 

    }

 

   // 更改数据

    publicstatic void updateData() throws SQLException {

 

       //3、获得数据库连接

       Connectionconnect =DriverManager.getConnection("jdbc:mysql://localhost:3306/myjdbc", // 连接数据库的url地址

              "root",// 数据库服务的用户名

              "123456");//数据库服务的密码

 

       //4、创建会话

       Statementstate = connect.createStatement();

 

       //执行SQL语句

       Scannersc = new Scanner(System.in);

       System.out.println("请输入要删除的记录的id号:");

       intid = sc.nextInt();

       Stringsql = "update student set name='小红', sex='女' where id=" + id +";";

       state.executeUpdate(sql);

 

       System.err.println("数据更改成功");

 

       //关闭

       state.close();

       connect.close();

       sc.close();

 

    }

 

   // 查询数据

    publicstatic List<Student> selectData() throws SQLException {

       List<Student>list = new ArrayList<>();

      

 

       //3、获得数据库连接

       Connectionconnect =DriverManager.getConnection("jdbc:mysql://localhost:3306/myjdbc", // 连接数据库的url地址

              "root",// 数据库服务的用户名

              "123456");//数据库服务的密码

 

       //4、创建会话

       Statementstate = connect.createStatement();

      

 

       //执行SQL语句

       Stringsql = "select * from student where id in(1,3,5,7,9)";

       ResultSetset = state.executeQuery(sql);

       while(set.next()){

//         intid = set.getInt(1);//根据id字段的列标获取字段的值

           intid = set.getInt("id");

           Stringname = set.getString("name");

           Stringsex = set.getString("sex");

           intage = set.getInt("age");

          

           Studentstu = new Student(id, name, sex, age);

          

           list.add(stu);

       }

 

       //关闭

       state.close();

       connect.close();

      

       returnlist;

    }

 

    publicstatic void main(String[] args) throws SQLException {

       //MyJDBC.createTable();

       //MyJDBC.insertData();

       //MyJDBC.deleteData();

//     MyJDBC.updateData();

      

       List<Student>list = MyJDBC.selectData();

       for(Student student : list) {

           System.out.println(student);

       }

 

    }

 

}

 

//javaBean

public class Student {

    privateint id;

    privateString name;

    privateString sex;

    privateint age;

 

    publicStudent(int id, String name, String sex, int age) {

       super();

       this.id= id;

       this.name= name;

       this.sex= sex;

       this.age= age;

    }

 

    publicStudent() {

       super();

    }

 

    publicint getId() {

       returnid;

    }

 

    publicvoid setId(int id) {

       this.id= id;

    }

 

    publicString getName() {

       returnname;

    }

 

    publicvoid setName(String name) {

       this.name= name;

    }

 

    publicString getSex() {

       returnsex;

    }

 

    publicvoid setSex(String sex) {

       this.sex= sex;

    }

 

    publicint getAge() {

       returnage;

    }

 

    publicvoid setAge(int age) {

       this.age= age;

    }

 

    @Override

    publicString toString() {

       return"Student [id=" + id + ", name=" + name + ", sex="+ sex + ", age=" + age + "]";

    }

 

}

 

原创粉丝点击