1.JDBC
JDBC,JAVA Database Connectivity,Java数据库连接。是一种用于执行SQL语句的JAVA API,是Java中的数据库连接规范,这个API由java.sql.*,javax.sql.*包中的一些类和接口组成,为JAVA开发人员操作数据库提供了一个标准的API,为多种关系数据库提供统一访问方式
JDBC编程通过JAVA代码操作mysql数据库,数据库服务器提供一些API供程序员调用,不同数据库提供的原生api不同
2.Java数据库连接(JDBC)
1)准备数据库驱动包,添加到项目依赖中
要想在程序中操作mysql就需要安装mysql的驱动包,并把驱动包引入到项目里
(软件,厂商提供的驱动程序类似转接头,把不同数据库的原生api和JDBC的api对接上)
可以在官网,中央仓库下载到驱动包
选择第二个 ,选择相应的版本,mysql5驱动包也要使用5系列
点击jar下载
然后将jar引入项目中
1)把jar复制到当前的项目目录中
创建一个新的项目->创建一个目录
把下载好的jar包放在新创建的lib目录中
2)把目录标记成库
点击确定即可
2)建立数据库连接
a.创建一个类
URL表示网络上的资源位置(网址)
mysql是一个客户端 服务器程序,通过网络进行交互
java1217是数据库名字,jdbc:mysq jdbc操做mysql,可以换成其他数据库的名字;127.0.0.1是ip地址,确定服务器在哪一个主机,描述网络上一个主机所在的位置,(127.0.0.1是一个特殊的ip地址,环回ip,自己把数据发给自己)因为我们的jdbc程序和mysql服务器在同一个主机上,所以使用环回ip;3306端口号确定主机上的哪个应用程序(服务器程序是哪一个程序)useSSL表示是否要进行加密;?后面表示访问资源时需要哪些参数
3)创建操作指令
4)执行SQL语句
5)处理结果集
6)释放资源
方法注解
executeQuery()常用于select sql 语句(写操作),executeUpdate()常用于 insert update delect sql语句(读操作)
3.结果+完整代码
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
import javax.sql.DataSource;
import java.sql.*;
public class test1 {
//通过代码在数据的表中插入一行记录
public static void main(String[] args) throws SQLException {
//1.创建DataSource(数据源)描述数据源头(数据库服务器所在位置)
//MysqlDataSource来自于刚刚导入的驱动包
//MysqlDataSource mysqlDataSource=new MysqlDataSource();
//mysqlDataSource.setUrl();
DataSource dataSource=new MysqlDataSource();
((MysqlDataSource) dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java1217?characterEncoding=utf8&useSSL=false");
//设置用户和密码
((MysqlDataSource) dataSource).setUser("root");
((MysqlDataSource) dataSource).setPassword("111111");
//建立数据库和服务器之间的连接
Connection connection = dataSource.getConnection();
//构造sql
//String sql="delete from student where id =1";
//String sal="update student set name='李四' where id =1";
String sql="insert into student values(1,'张三')";
//把字符串格式sql发送给服务器
//准备好的语句 (先预先检查sql语句是否有错)把解析好的结构化数据发送给服务器
PreparedStatement statement=connection.prepareStatement(sql);
//把sql发给服务器 返回值整数表示影响到的行数
int n=statement.executeUpdate();
System.out.println("n ="+ n);
//关闭连接释放资源 后获取到的资源先释放
statement.close();
connection.close();
}
}
4.输入的方式执行sql语句
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
import javax.sql.DataSource;
import java.sql.*;
import java.util.Scanner;
public class test1 {
public static void main(String[] args) throws SQLException {
Scanner scanner=new Scanner(System.in);
System.out.println("请输入学号:");
int id=scanner.nextInt();
System.out.println("请输入姓名:");
String name=scanner.next();
DataSource dataSource=new MysqlDataSource();
((MysqlDataSource) dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java1217?characterEncoding=utf8&useSSL=false");
//设置用户和密码
((MysqlDataSource) dataSource).setUser("root");
((MysqlDataSource) dataSource).setPassword("111111");
//建立数据库和服务器之间的连接
Connection connection = dataSource.getConnection();
//构造sql
//使用?作为占位符
/// String sql="insert into student values("+ id +",'"+ name +"')";
String sql="insert into student values(?,?)";
PreparedStatement statement=connection.prepareStatement(sql);
//对应第一个?,id是结果集的列名,替换int使用setint
statement.setInt(1,id);
//对应第二个问号
statement.setString(2,name);
System.out.println("sql="+statement);
int n=statement.executeUpdate();
System.out.println("n ="+ n);
//关闭连接释放资源 后获取到的资源先释放
statement.close();
connection.close();
}
}