JDBC
- Java DataBase Connectivity
快速入门
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| package com.test.jdbc;
import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement;
public class JDBCDemo { public static void main(String[] args) throws Exception { Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://127.0.0.1:3306/world"; String username = "root"; String password = "password"; Connection conn = DriverManager.getConnection(url,username,password); String sql = "update city set Population = 178 where ID = 1"; Statement stmt = conn.createStatement(); int count = stmt.executeUpdate(sql); System.out.println(count); stmt.close(); conn.close(); } }
|
API详解
DriverManager
1
| Class.forName("com.mysql.jdbc.Driver");
|
- 实质上Driver类的静态代码块中已经执行了
DriverManager
对象的 registerDriver()
方法进行驱动的注册了,那么我们只需要加载 Driver
类,该静态代码块就会执行。
Mysql5之后版本可省略注册驱动步骤
- 连接数据库
- url语法:jdbc:mysql://ip地址(域名):端口号/数据库名称?参数键值对1&参数键值对2…
- 本地服务器简写:
jdbc:mysql:///3306/databasename?....
- useSSL=false 参数,禁用安全连接方式,解决警告提示
Connection conn = DriverManager.getConnection(url, username, password);
Connection
1 2 3 4
| Statement stmt = conn.createStatement();
PreparedStatement ptmt = conn.prepareStatement(sql);
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| Statement stmt = conn.createStatement(); try { conn.setAutoCommit(false); int count1 = stmt.executeUpdate(sql1); System.out.println(count1); <!--int i = 3/0;--> int count2 = stmt.executeUpdate(sql2); System.out.println(count2);
conn.commit(); } catch (Exception e) { conn.rollback(); e.printStackTrace(); }
|
Statement
int count = stmt.executeUpdate(sql);
ResultSet rs = stmt.executeQuery(sql);
ResultSet
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| ResultSet rs = stmt.executeQuery(sql);
while (rs.next()){ int id = rs.getInt("id"); String name = rs.getString("name"); double money = rs.getDouble("money");
System.out.println(id); System.out.println(name); System.out.println(money);
System.out.println("--------------"); }
|
PreparedStatement
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| String sql = "select * from tb_user where username = ? and password = ?"; PreparedStatement pstmt = conn.prepareStatement(sql); pstmt.setString(1,name); pstmt.setString(2,pwd); ResultSet rs = pstmt.executeQuery(); if(rs.next()){ System.out.println("登录成功~"); }else{ System.out.println("登录失败~"); }
|
数据库连接池
Druid
导入jar包 druid-1.1.12.jar
定义配置文件
加载配置文件
获取数据库连接池对象
获取连接
1 2 3 4 5 6 7 8 9 10 11
| driverClassName=com.mysql.jdbc.Driver url=jdbc:mysql: username=root password=1234 # 初始化连接数量 initialSize=5 # 最大连接数 maxActive=10 # 最大等待时间 maxWait=3000
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
public class DruidDemo {
public static void main(String[] args) throws Exception { Properties prop = new Properties(); prop.load(new FileInputStream("jdbc-demo/src/druid.properties")); DataSource dataSource = DruidDataSourceFactory.createDataSource(prop);
Connection connection = dataSource.getConnection(); System.out.println(connection);
|