JDBC(java database connectivity),简称jdbc,也就是 Java 数据库连接。
JDBC作用:
是一种标准Java应用编程接口,用来连接 Java 编程语言和广泛的数据库。可以通过jdbc代码实现对数据库的操作。
具体连接步骤如下:
1.导入驱动jar包
- 在你的web-INF目录下创建一个lib包,专门放置jar包
- 将jar包复制到lib路径下
2.加载驱动
Class.forName("com.mysql.jdbc.Driver");
3.建立连接
Connection connection = DriverManager.getConnection(url, username, password);
//Connection是sql类的包
4.创建statement对象
Statement statement = connection.createStatement();
5.执行sql语句
ResultSet resultset= statement.executeQuery("SELECT * FROM dish");
//此处是将查询到的结果放在一个集合中
6.创建JSON对象和JSON数组
JSONArray jsonArr=new JSONArray();
JSONObject jsonObj=new JSONObject();
7.循环结果集
while(rs.next()){
jsonObj.put("id",rs.getString("id")); //以键值对的形式存放在json对象中
jsonObj.put("name",rs.getString("name"));
.....
jsonArr.add(jsonObj);
}
8.返回结果
PrintWriter out= response.getWriter(); //获取out对象
out.print(jsonArr);
9.关闭连接(从下往上依次关闭)
resultset.close();
statement.close();
connection.close();
实例:
package response;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
/**
* Servlet implementation class News
*/
@WebServlet("/News") //注解
public class News extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public News() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.setContentType("text/json;charset=UTF-8"); //设置响应类型
PrintWriter out= response.getWriter(); //获取out对象
//JDBC,连接数据库
try {
//1.加载驱动
Class.forName("com.mysql.jdbc.Driver");
//输入自己要连接的数据库及用户名和密码
String url="jdbc:mysql://localhost/reggie?user=&password=";
//2.建立连接
Connection con=DriverManager.getConnection(url);
//3.创建statement
Statement st=con.createStatement();
//4.执行sql
ResultSet rs= st.executeQuery("SELECT * FROM dish");
//5.循环结果集
//6.创建JSON对象和JSON数组
JSONArray jsonArr=new JSONArray();
JSONObject jsonObj=new JSONObject();
while(rs.next()){
jsonObj.put("id",rs.getString("id"));
jsonObj.put("name",rs.getString("name"));
jsonObj.put("price",rs.getString("price"));
jsonObj.put("image",rs.getString("image"));
jsonObj.put("Ctime",rs.getString("create_time"));
jsonArr.add(jsonObj);
}
//7.返回结果
out.print(jsonArr);
//8.关闭连接
rs.close();
st.close();
con.close();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response); //调用doget方法
}
}