java中的jdbc连接数据库方法及应用

时间:2021-02-19 19:10:21
jdbc连接数据库的口诀: 猪脸特直观
 
import java.sql.Connection;
import java.sql.Driver;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
 
public class Demo03 {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//口诀:猪脸特直观
//注册
Class.forName("com.mysql.jdbc.Driver");
 
//连接
Connection connention = DriverManager.getConnection("jdbc:mysql://localhost:3306/test3", "root", "ms");
String sql = "SELECT * FROM student"; //准备sql语句
//获取Statement对象(简称:特)
Statement statement = connention.createStatement();
//执行
ResultSet resultSet = statement.executeQuery(sql);
while(resultSet.next()){
//ResultSet里面的get相关方法列号是从1开始的,切记。 System.out.println(resultSet.getInt(1)+","+resultSet.getString(2)+","+resultSet.getInt(3)+","+resultSet.getString(4));
}
//关闭(倒关)
resultSet.close();
statement.close();
connention.close();
}
}
  1. 注册有三种方法
  • 方法一:Class.forName("com.mysql.jdbc.Driver");
  • 方法二:Driver driver = new com.mysql.jdbc.Driver();
//注册
DriverManager.registerDriver(driver);
Connection Connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test3", "root", "ms");
  • 方法三:DriverManager.registerDriver(new com.mysql.jdbc.Driver()); //匿名对象注册
Connection Connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test3", "root", "ms");
  1. 连接有三种方法
  • 方法一:Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test3", "root", "ms");
  • 方法二:Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/test3?user=root&password=ms");
  • 方法三:String url = "jdbc:mysql://localhost:3306/test3";
Properties prop = new Properties();
prop.setProperty("user", "root");
prop.setProperty("password", "ms");
Connection connection = DriverManager.getConnection(url, prop);
 
 
接口
  • Driver中的java.sql类 DriverManager
常见的方法有:getConnection(String url, String user, String password) 
试图建立到给定数据库 URL 的连接。
  • Connection接口:与特定数据库的连接(会话)。在连接上下文中执行 SQL 语句并返回结果。
常见的方法有
close() 
立即释放此 Connection 对象的数据库和 JDBC 资源,而不是等待它们被自动释放。
createStatement()
创建一个 Statement 对象来将 SQL 语句发送到数据库。
prepareStatement(String sql) 
创建一个 PreparedStatement 对象来将参数化的 SQL 语句发送到数据库。
  • Statement接口:用于执行静态 SQL 语句并返回它所生成结果的对象。
常见的方法有:
close() 
立即释放此 Statement 对象的数据库和 JDBC 资源,而不是等待该对象自动关闭时发生此操作。
executeQuery(String sql) 
执行给定的 SQL 语句,该语句返回单个 ResultSet 对象
executeUpdate(String sql) 
执行给定 SQL 语句,该语句可能为 INSERT、UPDATE 或 DELETE 语句,或者不返回任何内容的 SQL 语句(如 SQL DDL 语句)。
  • PreparedStatement接口
extends Statement
表示预编译的 SQL 语句的对象。
SQL 语句被预编译并存储在 PreparedStatement 对象中。然后可以使用此对象多次高效地执行该语句。
  • ResultSet接口:表示数据库结果集的数据表,通常通过执行查询数据库的语句生成。
常见的方法有:
close() 
立即释放此 ResultSet 对象的数据库和 JDBC 资源,而不是等待该对象自动关闭时发生此操作。
next() 
将光标从当前位置向前移一行。
getInt(int columnIndex) 
以 Java 编程语言中 int 的形式获取此 ResultSet 对象的当前行中指定列的值。
同样的还有getByte,getString,getLong,getDouble,getBoolen,getObject等等
java.sql.statement 类 throws SQL Exception
  • createStatement()
创建一个 Statement 对象来将 SQL 语句发送到数据库。不带参数的 SQL 语句通常使用 Statement 对象执行。如果多次执行相同的 SQL 语句,使用 PreparedStatement 对象可能更有效。
例如:适用于select查询中
Statement statement = connention.createStatement();
ResultSet resultSet = statement.executeQuery(sql);
  • prepareStatement(String sql)
创建一个 PreparedStatement 对象来将参数化的 SQL 语句发送到数据库。
带有 IN 参数或不带有 IN 参数的 SQL 语句都可以被预编译并存储在 PreparedStatement 对象中。然后可以有效地使用此对象来多次执行该语句。
参数:
sql - 可能包含一个或多个 '?' IN 参数占位符的 SQL 语句
java中的jdbc连接数据库方法及应用
以下方法中需要建立相关数据库才能得出正确结果
例如:java 中创建类的方法,在数据库中插入数据
public class AccountDaoImpl implements IAccountDao{
@Override
public Integer addAccount(AccountModel account) {
String sql = "INSERT INTO student VALUES(NULL,?,?)";
Connection conn = null;
PreparedStatement pstmt = null;
Integer result = null;
try {
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test8","root","ms");
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, account.getname());
pstmt.setDouble(2, account.getage());
result = pstmt.executeUpdate();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println("新增失败!");
} finally {
try {
DBUtil.close(pstmt, conn);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
return result;
}
java EE中连接数据库的方法,在数据库中插入数据
java中的jdbc连接数据库方法及应用
以下内容请在servlet类中进行填写,并且需要创建相关数据库,最后在webcontant文件夹中建立HTML文件,并且运行填入数据。html文件如下
java中的jdbc连接数据库方法及应用
//设置字符编码几格式
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("text/html");
 
//连接数据库
String name=request.getParameter("name");
String ageString= request.getParameter("age");
double age=Double.parseDouble(ageString);
 
Connection conn=null;
PreparedStatement pstmt=null;
int result=0;
try {
conn= DriverManager.getConnection("jdbc:mysql://localhost:3306/test8","root","ms");
String sql="INSERT INTO student(name,age) VALUES(?,?)";
pstmt=conn.prepareStatement(sql);
pstmt.setString(1, name);
pstmt.setDouble(2, age);
result=pstmt.executeUpdate();
if(result>0){
response.getWriter().println("提交成功,谢谢!");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
pstmt.close();
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
 
 
java EE中连接数据库的方法,在数据库中查询数据
//设置字符编码及文本格式
request.setCharacterEncoding("utf-8");
response.setCharacterEncoding("utf-8");
response.setContentType("text/html");
 
//连接数据库
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
 
try {
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test1", "root", "ms");
stmt = conn.createStatement();
rs = stmt.executeQuery("SELECT sname,score FROM `program_score`");
PrintWriter pw = response.getWriter();
pw.println("<table border='2px solid'>");
while(rs.next()){
pw.println("<tr><td>"+rs.getString("sname")+"</td><td>"+rs.getString("score")+"</td></tr>");
}
pw.println("</table>");
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
try {
rs.close();
stmt.close();
conn.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
 
  1. 查找select 用.executeQuery(String sql);
ResultSet resultSet = statement.executeQuery( String sql);
增加insert、删除delete、改变update 用executeUpdate()
int result=PreparedStatement.executeUpdate();
 
executeQuery
ResultSet executeQuery( String sql) throws SQLException
执行给定的 SQL 语句,该语句返回单个 ResultSet 对象。
参数:
sql - 要发送给数据库的 SQL 语句,通常为静态 SQL SELECT 语句
返回:
包含给定查询所生成数据的 ResultSet 对象;永远不能为 null
抛出:
SQLException - 如果发生数据库访问错误,在已关闭的 Statement 上调用此方法,或者给定 SQL 语句生成单个 ResultSet 对象之外的任何其他内容
 
executeUpdate
int executeUpdate( String sql) throws SQLException
执行给定 SQL 语句,该语句可能为 INSERT、UPDATE 或 DELETE 语句,或者不返回任何内容的 SQL 语句(如 SQL DDL 语句)。
参数:
sql - SQL 数据操作语言(Data Manipulation Language,DML)语句,如 INSERT、UPDATE 或 DELETE;或者不返回任何内容的 SQL 语句,如 DDL 语句。
返回:
(1) 对于 SQL 数据操作语言 (DML) 语句,返回行计数 (2) 对于什么都不返回的 SQL 语句,返回 0
抛出:
SQLException - 如果发生数据库访问错误,在已关闭的 Statement 上调用此方法,或者给定的 SQL 语句生成 ResultSet 对象