JDBC (Java Data Base Connection):是通过Java访问数据库
为项目导入mysql-jdbc的jar包
- 使用j2se项目
- 放在j2se\lib目录下
- Build Path
初始化驱动
- Class.forName("com.mysql.jdbc.Driver");
- Class.forName是把这个类加载到JVM中,加载的时候,就会执行其中的静态初始化块,完成驱动的初始化
package jdbc;
public class TestJDBC {
public static void main(String[] args) {
try {
Class.forName("com.mysql.jdbc.Driver");
System.out.println("数据库驱动加载成功 !");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
建立与数据库的连接
Connection c = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/how2java?characterEncoding=UTF-8", "root", "admin");
创建Statement
- Statement是用于执行SQL语句的,比如增加,删除
Statement s = c.createStatement();
执行SQL语句
- 准备SQL语句,字符串要用单引号'
- hero表必须存在
关闭连接
- 数据库的连接是有限资源,操作结束后养成关闭数据库连接的好习惯
- 先关闭Statement,后关闭Connection
使用try-with-resource的方式自动关闭连接
- Connection和Statement都实现了AutoCloseable接口
练习-一次性插入100条数据
public static void main(String[] args) {
// demo1();
// 加载数据库驱动
try {
Class.forName("com.mysql.jdbc.Driver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//建立连接
try (
Connection c = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/how2java?characterEncoding=UTF-8", "root", "admin");
Statement s = c.createStatement();
)
{
for (int i = 0; i < 100; i++) {
String sql = "insert into hero values(null, "+"'英雄"+i+"'"+","+313.0f+","+50+")";
s.execute(sql);
}
}
catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}