JDBC是MySQL初学者入门需要学习的一类Java API,这篇文章介绍简单的Java连接数据库的方法,首先看看JDBC的概念:
JDBC(Java DataBase Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。
CREATE DATABASE UNIVERSITY CHARACTER SET UTF8;
字段名 | 数据类型 | 数据长度 | 主外键 | 字段说明 |
---|---|---|---|---|
id | int | 10 | 主 | 学生学号 |
name | varchar | 20 | 否 | 学生姓名 |
gender | varchar | 6 | 否 | 学生性别 |
phone | varchar | 20 | 否 | 联系方式 |
CREATE TABLE STUDENTS(
ID INT(10) NOT NULL PRIMARY KEY,
NAME VARCHAR(20) NOT NULL,
GENDER VARCHAR(6) NOT NULL,
PHONE VARCHAR(20) NOT NULL
)ENGINE=INNODB DEFAULT CHARSET=UTF8;
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql://localhost:3306/university?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false
username=root
password=root
其中要注意的是,com.mysql.cj.jdbc.Driver是mysql-connector-java 6中的,所以设置时要注意指定时区serverTimezone
private static String driver;
private static String url;
private static String username;
private static String password;
static {
Properties prop = new Properties();
try {
prop.load(JDBCUtils.class.getClassLoader().getResourceAsStream("mysql.properties"));
} catch (IOException e) {
throw new RuntimeException("Can't find file!");
}
driver = prop.getProperty("driver");
url = prop.getProperty("url");
username = prop.getProperty("username");
password = prop.getProperty("password");
try {
Class.forName(driver);
} catch (ClassNotFoundException e) {
throw new RuntimeException("Can't register driver!");
}
}
编写数据库开启连接与关闭连接代码:
public static Connection getConnection() throws SQLException {
return DriverManager.getConnection(url,username,password);
}
public static void free(ResultSet rs , Statement st , Connection conn){
try {
if(rs!=null)
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}finally {
try {
if(st!=null)
st.close();
}catch (SQLException e){
e.printStackTrace();
}finally {
try {
if(conn!=null)
conn.close();
}catch (SQLException e){
e.printStackTrace();
}
}
}
}
private Connection conn = null;
private Statement st = null;
private ResultSet rs = null;
@Before
public void connConfig() throws SQLException {
conn = JDBCUtils.getConnection();
st = conn.createStatement();
}
@After
public void connClose(){
JDBCUtils.free(rs,st,conn);
}
String sql = "insert into students values (1,'张三','男','15271945221');";
st.execute(sql);
String sql = "update students set name = '李四' where id = 1";
st.executeUpdate(sql);
String sql = "select * from students";
rs = st.executeQuery(sql);
while(rs.next())
System.out.println(rs.getInt("id")+"--"+rs.getString("name")+"--"+rs.getString("gender")+"--"+rs.getString("phone"));
String sql = "delete from students where id = 1";
st.executeUpdate(sql);
作为初步的数据库操作步骤,这里只简单的示范了一下基础部分,JDBC还有很多内容等着我们去深入学习和研究,进一步深入练习也为我们以后学习持久层框架打下坚实的基础。
对世界上的一切学问与知识的掌握也并非难事,只要持之以恒地学习,努力掌握规律,达到熟悉的境地,就能融会贯通,运用自如了。