宁愿辛苦一阵子,不要辛苦一辈子
小弟的目录
JDBC
什么是JDBC?
Java Database Connectivity:java连接数据库
JDBC是代表一组API,一个独立于特定数据库管理系统,通用的SQL数据库存取和操作的公共接口(一组API).
SUN公司为了使java代码可以跨数据库,既是指数据库换了,我们JDBC的代码不改变(或少改变)设计了一组公共的接口(标准),规定了所有操作数据库的代码,应使用哪些类型,哪些方法
这些操作数据库的具体代码由数据库厂商来实现,这些实现类,我们称之为数据库驱动,这就意味着,你要连接和操作数据库,就必须加载数据库的驱动程序
那么java代码就可以通过接口+驱动+标准的SQL语句实现java代码和各种数据库的连接和操作.
JDBC新手(实现最普通功能的JDBC)
操作步骤详解:
1.加载数据库驱动和注册驱动
有两种方式:
(1)是直接在源码库中引入,相当于绝对路径,但是是引入型的,将项目打包时,并不会打包驱动的jar文件(占得内存小,但是打包时,会丢失驱动)
(2)创建文件,导入型,在项目中创建目录并导入,这是相当于把jar驱动复制在了项目中,打包时会携带(不会丢失驱动,但是占的内存比较大)
注册驱动:
Class.forName("com.mysql.jdbc.Driver");
2.获取连接
url = "jdbc:mysql://localhost:3306/test";
主协议 协议 主机名 端口号 数据库名
user = "数据库账号";
password = "数据库密码";
Connection ct = DriverManger.getConnection(url,user,password);
3.执行sql语句:
sql = "insert into dept values(6,'张三',15)";
Statement st = ct.createStatement();
int len = st.executeUpdate(sql);
System.out.println(len>0?"添加成功":"添加失败");
如上是添加数据,凡是添加,删除,修改都是修改操作,都调用executeUpdate()方法,方法的参数是sql语句,返回值是len(int类型),凡是select语句都调用executeQuery()方法,遍历查询,返回值是一个set,要用ResultSet接受
4.关闭连接
st.close();
ct.close();
分开代码,各位客官可能不容易记忆和查看
整体代码:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;
/**
*
* 1.注册驱动,加载驱动类到内存中,即内存中有驱动类对象
* 2.获取连接,即登录
* 3.执行sql
* (1)编写sql语句
* (2)创建Statement对象
* (3)用Statement来执行sql操作,并接受结果
* 4.关闭连接
*
* API:
* java.sql.Connection;接口,代表连接
* java.sql.DriverManager, 代表类,驱动管理类
* java.sql.Statement;
*
*协议,主机地址,端口号,路径(查询字串)
* 用java添加一个人到test1库中dept(id,name,money)表中
*/
public class dome1 {
//先导入驱动数据库驱动
public static void main(String[] args) throws Exception {
//1.注册驱动,加载驱动类到内存中,即内存中有驱动类对象
//Class.forName("org.git.mm.mysql.Driver");//旧版驱动注册方式
Class.forName("com.mysql.jdbc.Driver");//新版驱动注册方式
//2.获取连接
String url = "jdbc:mysql://localhost:3306/test1";
String user = "root";
String password = "123456";
//驱动已经加载了,现在用驱动管理类DriverManager
Connection connection = DriverManager.getConnection(url,user,password);
//3.执行sql语句
//3.1编写sql语句
String sql = "insert into dept values(6,'雷',15)";
//要把sql语句发给服务器端执行,并接受他返回的结果
//3.2创建Statement对象
Statement statement = connection.createStatement();
//3.3用Statement来执行sql操作,并接受结果
//凡是insert,delete,update语句都是更新数据库
//凡是select都是查询query
int len =statement.executeUpdate(sql);//返回一个整数,表示多少行收到影响
System.out.println(len>0?"添加成功":"添加失败");
//4.关闭连接
statement.close();
connection.close();
}
}
JDBC强者(对普通JDBC优化)
强者就是能一次干到多个敌人(sql语句),先讲个开胃菜,和优化无关,但是我没放到基础里面,怕让新手感到恐惧(其实我多想了,大家都是很强的)
关键的方法"摘"出来(有些方法,我感觉必须得对数据库事务有些了解,才能食用)
- commit()提交事务
- rollback()回滚事务
- setAutoCommit() 参数为false时为手动提交模式,为true时当然是自动提交sql代码模式
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;