几种常见的数据库驱动格式和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 + "]";
}
}