JDBC(java连接数据库或者java语言操作数据库)本质:其实是官方(sun公司)定义的一套操作所有关系数据库的规则,即接口。各个数据库厂商去实现这套接口提供数据库驱动jar包。我们可以使用这套接口编程,真正执行的代码是驱动jar包中的实现类。
//使用步骤
创建工程,导入对应驱动jar包
//1.注册驱动,mysql5之后可省略
Class.forName("com.mysql.jdbc.Driver");
//2.获取连接对象
String url="jdbc:mysql://127.0.0.1:3306/db1?useSSL=false";
String username ="root";
String password ="1234";
Connection conn = DriverManager.getConnection(url, username, password);
//3.定义sql
String sql = "update account set money = 2000 where id = 1";
//4.获取执行sql的对象
Statement stmt =conn.createStatement();
//5.执行sql
int count = stmt.executeUpdate(sql);
//6.处理结果
System.out.println(count)
//7.释放资源
stmt.close();
conn.close();
//对使用步骤中的对象做大概了解
DriverManager(驱动管理类)作用:
1.注册驱动 2.获取数据库连接
1.url:连接路径
语法:jdbc:mysql://ip地址(域名):端口号/数据库名称?参数键值对1&参数键值对2…
示例:jdbc:mysql://127.0.0.1:3306/db1
细节:
如果连接的是本机mysql服务器,并且mysql服务默认端口是3306,则url可以简写为:jdbc;mysql:///db1
配置 useSSL=false 参数,禁用安全连接方式,解决警告提示
Connection(数据库连接对象)作用:
1.获取执行sql对象 2.管理事务
Statement作用:
1.执行SQL语句
int executeUpdate(sql):执行DML、DDL语句
返回值:(1)DML语句影响的行数(2)DDL语句执行后,执行成功也可能返回0
ResultSet executeQuery(sql)执行DQL 语句
返回值:ResultSet结果集对象
//4.获取执行sql对象
Statement stmt=conn.createStatement();
//5.执行sql
ResultSet rs=stmt.executeQuery(sql);
//处理结果,遍历rs中的所有数据
while (rs.next()){
//获取数据 getXxx()方法
int id = rs.getInt(columnindex: 1);
String name =rs.getstring(columnindex:2); double money = rs.getDouble( columnindex: 3)
//columnindex也可改名称
system.out.println(id); System.out.println(name); System.out.println(money);
System.out.println("--------------");
}
//释放资源 ,结果集对象资源也要释放
rs.close();
stmt.close();
conn.close();
更常用的一种处理方式 ,把获取到的数据存入集合中 。
//创建集合
List<Account> list =new ArrayList<>();
while (rs.next()){
//创建Account类对象 ,这个类拿来存数据
Account account = new Account( );
//获取数据:
int id = rs.getInt( "id");
String name = rs.getstring( "name");
double money = rs.getDouble( "money");
//赋值
account.setId(id);
account.setName(name);
account.setMoney(money);
//存入集合
list.add(account);
```
//了解关于SQL注入的解决方法
```
// 定义sql
String sql = "select * from tb_user where username =? and password = ?"
//获pstmt对象
Preparedstatement pstmt=conn.preparestatement(sql);
//设置?的值
pstmt.setstring(1,name); pstmt.setstring(2,pwd)
//执行sql
ResultSetrs=pstmt.executeQuery();
数据库连接池简介
数据库连接池是个容器,负责分配、管理数据库连接(Connection)
它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个;
释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏
数据库连接池实现
标准接口:DataSource
官方(SUN)提供的数据库连接池标准接口,由第三方组织实现此接口。·功能:获取连接
Connection getConnection()
常见的数据库连接池:
DBCP、 C3PO、Druid。
Druid(德鲁伊)连接池是阿里巴巴开源的数据库连接池项目。功能强大,性能优秀,是Java语言最好的数据库连接池之一
步骤 Driud使用步骤
1.导jar包druid-1112.jar
2. 定义配置文件
3.加载配置文件
4 获取数据库连接池对象
5.获取连接