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使用setintstatement.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();}}