前提:
实际开发中,绝大多数的情况下,都是通过代码来进行操作数据库的,手动操作数据库,只有少数的,调试,测试,验证环境才会涉及到
主流的编程语言,基本都可以来操作数据库,大同小异的~
Java中操作数据库,最基础的方式就是JDBC
数据库,是一个"类别"
1)mysql
2)oracle
3)sql server
4)sqlite
代码操作数据库的前提,是数据库要提供api,我们使用api才能完成操作:
API----->>Application Programming Interface应用程序编程接口,这是一个通用的术语,来编程就需要这个东西来提供api
在api的创建过程中,由于各种数据库要是分别建立一个api,这无疑会增加学习成本,因此,Java站了出来,把这些数据库哥们拉到了一起,我来提供一套api的标准,你们把你们已经搞好的api给我重新包装一下.这个时候,程序员就不需要关注各种数据库api的差异,只需要掌握java这一套即可.
数据库原有的api不变,在这个基础上,加个封装层,适配到JDBC这一套接口上.
后端学的数据库的框架,本质上也是JDBC的封装.
JDBC编程步骤
1)mysql包的导入
首先进入这个网站Maven Repository: Search/Browse/Explore (mvnrepository.com)
这个网站是java的中央仓库,里面有各种jar包
-下来我们在搜索框进行搜索mysql.
选取第二个,点进去
之后往下拉,找到适合自己的版本,点进去.
点进去之后找到这个图标,然后点击,即可下载,下载完成之后,打开文件所在位置,
进行复制
点击,进行ctrl+c复制
然后打开idea
依次点击之后,创建一个lib的文件夹,然后点击,进行ctrl+v粘贴,
选择ok,即可将jar包导入
接下来,
右键导入的包,然后找到最下面的Add as library即可将包解析成功.接下来就可以使用包里的api接口了
代码实例:
import com.mysql.jdbc.jdbc2.optional.MysqlDataSource;
import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class testJDBC {
public static void main(String[] args) throws SQLException {
//1.创建数据源,数据源描述了你要操作的数据库,在哪里.
DataSource dataSource=new MysqlDataSource();
((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java110?characterEncoding=utf8&useSSL=false");
((MysqlDataSource)dataSource).setUser("root");
((MysqlDataSource)dataSource).setPassword("111111");
//2.和数据库服务器,建立连接
Connection connection = dataSource.getConnection();
//3.构造一个SQL
String sql="insert into student values(3,'王五')";
//将sql语句转换成对象.
PreparedStatement statement=connection.prepareStatement(sql);
//4.把构造好的SQL发送给服务器去执行
int n=statement.executeUpdate();
System.out.println("n = "+n);
//5.最后一步,释放必要的资源.
statement.close();
connection.close();
}
}
代码解析
1.首先第一步,
我们得先获取数据源,使用new MysqlDataSource();来进行数据源的创建,然后哟啊进行数据库url的设置,这里简要的介绍一下里面的各个因素:
在dataSource.setUrl里的參数时候,jdbc:mysql:为数据库的类型,//127.0.0.1为主机ip地址:3306为主机给数据库设置的端口号java110为设置的数据库里的database ?characterEncoding=utf8为设置的中文字符编码方式,useSSL=false为加密传输的禁用,为了避免一些机器无法使用加密传输带来的无法正确启动数据库的错误.
然后需要进行账号密码的输入
使用dataSource.setUser()方法来设置用户名,一般都会设为root
使用dataSource.setPassword()来输入密码,这里是自己之前就设置好的密码.
2.第二步
,我们使用dataSource.getConnection()来进行数据库服务器的远程连接
3.第三步,
我们要构建一个sql语句,并且将一个sql语句进行解析,转换成服务器可以直接执行的数据,我们使用PreparedStatement statement=connection.prepareStatement(sql)来进行对sql语句的预解析,这样做可以使得服务器在处理这条数据的时候更快一点.
4.第四步,
我们使用statement.executeUpdate()方法来进行该语句的执行,也就是将他远程发送到服务器上去执行,此处的n为返回值,返回的是改变的行数.
5.第五步
,释放资源,释放和建立的顺序刚好相反,先是语句处理对象的释放,然后是连接对象的释放.
要注意的是
在connection创建,以及后续preparestatement,datasource的创建都要引入java.sql包不是其他包
概念解析:
1.DataSource:
数据源,描述了数据库服务器在哪里
2.connection
连接,需要先建立连接,才能进行通信,基于DataSource构造出来,知道服务器在哪里,才能建立连接
3.prepareStatement语句
,基于连接来生成的,当前语句对象也是要发给服务器的.
executeQuery()//专门负责查询的,返回值为ResultSet,为表的查询结果
executeUpdate()//可以执行增删改表(创建表,删除表...)返回值类型为int,为改变行的数量