什么是JDBC?
JDBC(Java DataBase Connectivity)就是Java数据库连接,说白了就是用Java语言来操作数据库。原来我们操作数据库是在控制台使用SQL语句来操作数据库,JDBC是用Java语言向数据库发送SQL语句的一种技术手段。
JDBC核心类(接口)介绍
DriverManager:用于注册驱动
Connection: 表示与数据库创建的连接
Statement: 操作数据库sql语句的对象
ResultSet: 结果集或一张虚拟表
程序步骤
步骤1:创建一个普通Java工程
步骤2:准备Mysql驱动包
步骤3:将Mysql驱动包变为小奶瓶
选中mysql驱动包右键→Bulid Path→Add xxx
步骤4:编写JDBC程序代码
查询的方法
package cn.jdbc.test;
import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
public class Test {
public static void main(String[] args) throws Exception {
// 1.通过反射加载驱动
Class.forName("com.mysql.jdbc.Driver");// 从奶瓶中找到Driver.class.复制路径,class不要
// 2.获取连接
String url = "jdbc:mysql://localhost:3306/dada?/useUnicode=true&characterEncoding=utf-8";// 数据库路径名字,test是数据库的名字,localhost:3306本地端口
String user = "root";// user是用户名
String password = "";// 密码是空给双引号,有密码则写密码
Connection connection = DriverManager.getConnection(url, user, password);
// 3.获取向数据库发送sql语句的对象
String sql = "select *from dada_table";//输入sql语句
Statement statement = connection.createStatement();
// 4.向数据库发送sql语句
ResultSet rs = statement.executeQuery(sql);
// 5.获取返回值
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
String sex = rs.getString("sex");
Date birthday = rs.getDate("birthday");
System.out.println("id:"+id+",name:"+name+",sex:"+sex+",birthday:"+birthday);
}
// 6.释放资源
rs.close();
statement.close();
connection.close();
}
}
增删改的方法,跟上面的基本一样,区别在于连接和发送的代码不同
// 3.获取向数据库发送sql语句的对象
String sql = "insert into dada_table(name,sex,birthday)values('杜甫','男','1565-7-7')";
Statement statement = connection.createStatement();
// 4.向数据库发送sql语句
int in = statement.executeUpdate(sql);
// 5.获取返回值
if(in>0) {
System.out.println("操作成功!");
}
// 6.释放资源
statement.close();
connection.close();
完整的代码如下
public static void main(String[] args) throws Exception {
// 1.通过反射加载驱动
Class.forName("com.mysql.jdbc.Driver");// 从奶瓶中找到Driver.class.复制路径,class不要
// 2.获取连接
String url = "jdbc:mysql://localhost:3306/dada?/useUnicode=true&characterEncoding=utf-8";// 数据库路径名字,test是数据库的名字,localhost:3306本地端口
String user = "root";// user是用户名
String password = "";// 密码是空给双引号,有密码则写密码
Connection connection = DriverManager.getConnection(url, user, password);
// 3.获取向数据库发送sql语句的对象
String sql = "insert into dada_table(name,sex,birthday)values('杜甫','男','1565-7-7')";
Statement statement = connection.createStatement();
// 4.向数据库发送sql语句
int in = statement.executeUpdate(sql);//返回数据库操作的行数
// 5.获取返回值
if(in>0) {
System.out.println("操作成功!");
}
// 6.释放资源
statement.close();
connection.close();
}
注意:如果出现乱码,有可能是下面这段话写错或者没有写dada?/useUnicode=true&characterEncoding=utf-8
意思是跟数据库匹配utf-8格式
String url = "jdbc:mysql://localhost:3306/dada?/useUnicode=true&characterEncoding=utf-8";