付费节点推荐
免费节点
节点使用教程
下载JDBC数据库驱动程序for mysql(比如:mysql-connector-java-5.1.22-bin.jar)
使用方法: 将此jar包复制到JDK的扩展目录中,比如C:\Program Files (x86)\Java\jdk1.8.0_60\jre\lib\ext
应用程序加载MySql的JDBC数据库驱动程序代码如下:
[cc lang="java"]
Try{
Class.forName(“com.mysql.jdbc.Driver”);
}
Catch(Exception e){}
[/cc]
建立连接
使用Java.sql中DriverManager类的类方法
Connection getConnection(java.lang.String);
此方法会抛出SQLException异常。返回Connection对象。
连接代码如下:
[cc lang="java"]
Connection con;
try{
String url="jdbc:mysql://127.0.0.1/bcoder_db1";
String user="root";
String password="";
con=DriverManager.getConnection(url, user, password);
}
Catch(SQLException e){}
[/cc]
测试
首先打开mysql
net start mysql
测试写好的代码:
[cc lang="java"]
<%@page import="java.sql.SQLException"%>
<%@page import="java.sql.DriverManager"%>
<%@page import="java.sql.ResultSet"%>
<%@page import="java.sql.Statement"%>
<%@page import="java.sql.Connection"%>
<%@ page contentType="text/html; charset=utf-8" %>
<% Connection con; Statement sql; ResultSet rs; try{ Class.forName("com.mysql.jdbc.Driver"); } catch(Exception e){} try{ String url="jdbc:mysql://127.0.0.1/bcoder_db1"; String user="root"; String password=""; con=DriverManager.getConnection(url, user, password); sql=con.createStatement(); rs=sql.executeQuery("SELECT * FROM product"); out.print("
"+"产品号"); out.print(" | "+"名称"); out.print(" | "+"生产日期"); out.print(" | "+"价格"); out.print(" |
---|---|---|---|
"+rs.getString(1)+" | "+rs.getString(2)+" | "+rs.getDate("madeTime")+" | "+rs.getFloat("price")+" |
");
con.close();
}
catch(SQLException e){
out.print(e);
}
%>
[/cc]
查询记录
和数据库建立连接后,就可以使用JDBC提供的api操作数据库了,比如查询,修改,更新数据库表。。。。
查询步骤:
(1)向数据库发送SQL查询语句
声明Statement对象,连接对象con调用createStatement()返回Statement对象。
代码如下:
[cc lang="java"]
Statement sql;
Try{
sql=con.createStatement();
}
catch(SQLException e){
out.print(e);
}
[/cc]
(2)处理查询结果
有了SQL语句对象,就可以调用相应方法使用sql语句。查询结果将放入到ResultSet对象中。
ResultSet rs = sql.executeQuery(“SELECT * FROM tableName”);
遍历数据行next()方法,获取字段值 getXX()方法。
顺序查询
我们可以通过JDBC提供的api,可以在查询数据之前获取表中的各个字段名字和个数等,这样有助于编写可复用代码。
当和数据库建立连接后,使用连接对象con调用getMetaData()方法返回一个DatabaseMetaData对象。
DatabaseMetaData medata = con.getMetaData();
medata对象再调用getColumns()方法可以将表的字段信息以行列的形式存储在一个ResultSet对象中。
ResultSet tableMessage = metadata.getColumns(null,null,”product”,null);
代码示例:
"NewFile.jsp"
[cc lang="html"]
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
[/cc]
"inquire.jsp"
[cc lang="java"]
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib tagdir="/WEB-INF/tags" prefix="inquire"%>
<% String database =request.getParameter("dataBaseName"); String tName=request.getParameter("tableName"); String id=request.getParameter("user"); String secret=request.getParameter("password"); %>
user="<%=id %>"
/>
在<%=biao %>表查询到记录:<%-- biao是tag文件返回的对象--%>
<%=queryResult %> <%--queryResult是tag文件返回的对象 --%>
[/cc]
"QueryTag.tag"
[cc lang="java"]
<%@tag import="java.sql.SQLException"%>
<%@tag import="java.sql.DatabaseMetaData"%>
<%@tag import="java.sql.DriverManager"%>
<%@tag import="java.sql.ResultSet"%>
<%@tag import="java.sql.Statement"%>
<%@tag import="java.sql.Connection"%>
<%@ tag language="java" pageEncoding="UTF-8"%>
<%@ attribute name="dataBaseName" required="true" %>
<%@ attribute name="tableName" required="true" %>
<%@ attribute name="user" required="true" %>
<%@ attribute name="password" required="false" %>
<%@ variable name-given="biao" scope="AT_END" %>
<%@ variable name-given="queryResult" scope="AT_END" %>
<% StringBuffer result=new StringBuffer(); try{ Class.forName("com.mysql.jdbc.Driver"); } catch(Exception e){ } Connection con; Statement sql; ResultSet rs; try{ result.append("
"+clumnName+" |
"+rs.getString(k)+" |
");
con.close();
}
catch(SQLException e){
out.println(e);
}
//返回对象
jspContext.setAttribute("queryResult",new String(result));
jspContext.setAttribute("biao", tableName);
%>
[/cc]
未经允许不得转载:Bcoder资源网 » JDBC连接MySql数据库
评论前必须登录!
登陆 注册