获取数据库连接是java操作数据库的第一步。在将mysql等数据库的驱动加载到libraries中之后,就可以连接数据库了。
数据库的连接分为以下6个步骤:
- 注册驱动
- 获取连接Connection
- 得到执行SQL语句的Statement
- 执行SQL语句,并且得到返回结果
- 处理结果
- 关闭资源
它们分别对应的代码为
/***注册驱动
Class.forName("com.mysql.jdbc.Driver")
/***获取连接Connection,url为数据库链接,username为用户名,password为密码
Connection conn=DriveManager.getConnection(url,username,password)
/***得到执行SQL语句的Statement
Statement stmt=conn.createStatement();
/***执行SQL语句,得到返回结果
ResultSet rs=stmt.excuteQuery(sql);
/***处理rs
/***关闭资源
rs.close();
stmt.close();
conn.close();
示例代码
import java.sql.*;
/**
* 步骤:
* 1、注册驱动
* 2、获取连接Connection
* 3、得到执行SQL语句的statement
* 4、执行sql语句,并返回结果
* 5、处理结果
* 6、关闭资源
*/
public class JDBCTest01 {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
// Class.forName("com.mysql.cj.jdbc.Driver");
// Connection conn= DriverManager.getConnection("jdbc:mysql://localhost:3306/spiders","root","123456");
// Statement stmt=conn.createStatement();
// ResultSet rs=stmt.executeQuery("select * from t_user");
// System.out.println("id name password email ");
// while (rs.next())
// {
// System.out.println(rs.getObject("id").toString()+" "+
// rs.getObject("name")+" "+
// rs.getObject("password")+" "+
// rs.getObject("email"));
// }
// rs.close();
// stmt.close();
// conn.close();
String driver="com.mysql.cj.jdbc.Driver",url="jdbc:mysql://localhost:3306/spiders",username="root",password="123456";
JDBCTest01 jdbcTest01=new JDBCTest01();
Connection connection=jdbcTest01.OpenConnection(driver,url,username,password);
jdbcTest01.add(connection,"Siri","123657","Siri@apple.com");
}
public Connection OpenConnection(String driver,String url,String username,String password)
{
try {
Class.forName(driver);
return DriverManager.getConnection(url,username,password);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return null;
}
public void add(Connection conn,String name,String password,String email) throws SQLException {
String sql="insert into t_user(name,password,email) values ('Siri','13214','sfddg@apple.com')";
// String sql="insert into t_user(name,password,email) values ( \""+name+"\",\""+password+"\",\""+email+"\"";
// String sql="insert into t_user(name,password,email) values ("+name+","+password+","+email+")";
try
{
Statement stmt=conn.createStatement();
//设置自动提交为false
conn.setAutoCommit(false);
stmt.executeUpdate(sql);
conn.commit();
}catch (SQLException e)
{
e.printStackTrace();
/**
* 如果出现异常就回滚
*/
try {
conn.rollback();
}catch (SQLException e)
{
e.printStackTrace();
}
}finally {
conn.close();
}
}
}