JDBC在做项目初期连接数据库常用到,如果不把步骤和原理弄懂,在接触mybatis或者hibernate框架操作数据库时会对其操作原理十分懵。
主要原因是:不弄懂步骤老是写jdbc时便要网上查步骤,这就很烦。
于是笔者便查API文档把它注释了一下,方便大家理解流程,做了一个插入数据的例子(在javaweb中表单上获取数据插入数据库,用的是servlet的doGet()方法)
import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.sql.*; public class FirstServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub String username = request.getParameter("username"); String password = request.getParameter("password"); //**只要jdbc连接操作的看下面代码就行** final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; final String DB_URL = "jdbc:mysql://localhost:3306/sqldb"; //'sqldb'这个参数 为你所要连接的数据库名,这4个final String是连接你的数据库所需参数 final String USER = "root"; final String PWD = ""; Connection conn = null; //Connection接口 -与特定数据库的连接(会话)。在连接上下文中执行 SQL 语句并返回结果。 Statement stmt = null; //接口 Statement-用于执行静态 SQL 语句并返回它所生成结果的对象。 try { Class.forName("com.mysql.jdbc.Driver"); conn = DriverManager.getConnection(DB_URL,USER,PWD); //DriverManager类 管理一组 JDBC 驱动程序的基本服务 getConnection()试图建立到给定数据库 URL 的连接。 String sql = "insert into user " + "values('" + username + "','" + password + "')"; //输入自己的sql语句 System.out.println(sql); stmt = conn.createStatement(); /* createStatement,创建一个 Statement 对象,不带参数的 SQL 语句通常使用 Statement 对象执行。 * 如果多次执行相同的 SQL 语句,使用 PreparedStatement对象可能更有效。 * 这里也可以创建一个 PreparedStatement 对象来将参数化的 SQL 语句发送到数据库。 * 带有 IN 参数或不带有 IN 参数的 SQL 语句都可以被预编译并存储在 PreparedStatement 对象中。 * 然后可以有效地使用此对象来多次执行该语句。 */ stmt.executeUpdate(sql); /* *执行给定 SQL 语句,该语句可能为 INSERT、 UPDATE 或 DELETE 语句 *查询操作该用executeQuery,该语句返回单个 ResultSet 对象,可以用此对象进行遍历查询结果 */ System.out.println("插入语句操作。。"); } catch(Exception e){ e.printStackTrace(); }finally{ //关闭资源 try{ if(stmt!=null) stmt.close(); }catch(SQLException se2){ try{ if(conn!=null) conn.close(); }catch(SQLException se){ se.printStackTrace(); } } } } }
说明;我在表单中传的数据为username=xc ,password=123
form表单代码:
<form action="../FirstServlet" method="get"> 用户名:<input type="text" name="username"> <br> 密码:<input type="password" name="password"><br> <input type="submit" name="登录"> </form>
数据库中查询user表(插入数据的表)