實踐出真知看實例:
步驟
1.首先建庫建表爲連接做準備
2.建web項目導入sqlServer jar包
3.創建Util工具類根據表新建javabean
4.編寫查詢方法
5.整合代碼
詳解 ⬇⬇⬇⬇⬇⬇
1.建庫建表爲連接做準備
--建庫
create database Demo
on(
name='StuMessage',
filename ='D:\Demo.mdf',
size=10mb,
filegrowth=10%
)
--建表
use Demo
create table users(
id int,
name varchar(36),
sex varchar(8)
)
2.jar包
3.創建Util工具類根據表新建javabean
1.創建Util工具類
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class Util {
/**
* 獲取Connection
* @return
*/
public Connection getConn(){
Connection conn = null;
try {
//驅動包位置
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
System.out.println("驅動加載失敗");
e.printStackTrace();
}
try {
//sqlServer連接和數據庫名
String url ="jdbc:sqlserver://localhost:1433;databaseName=Demo";
String user ="sa";//數據庫賬號
String pwd = "1";//數據庫密碼
conn=DriverManager.getConnection(url,user,pwd);
} catch (SQLException e) {
System.out.println("數據庫連接失敗");
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("連接成功");
return conn;
}
/**
* 關閉資源
* @param conn
* @param st
* @param rs
*/
public void close(Connection conn , PreparedStatement st ,ResultSet rs){
try {
if(conn!=null){conn.close();}
if(st!=null){st.close();}
if(rs!=null){rs.close();}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
2.根據表創建javaBean
public class Users {
private int id ;
private String name ;
private String sex ;
public Users() {
super();
// TODO Auto-generated constructor stub
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
}
4.編寫增刪改查類
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import cn.msg.bean.Users;
import cn.msg.util.Util;
public class UserServers {
private PreparedStatement ps = null;
private Connection conn = null;
private ResultSet rs = null;
private Util util = new Util();
/**
* 獲取一條信息
* @param id
* @return Users
*/
public Users getUser(int id){
String sql = "select * from Users Where id = ? ";
conn = util.getConn();
try {
ps = conn.prepareStatement(sql);
ps.setInt(1, id);
rs=ps.executeQuery();
if(rs.next()){
Users user = new Users();
user.setId(rs.getInt(1));
user.setName(rs.getString(2));
user.setSex(rs.getString(3));
return user;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
util.close(conn, ps, rs);
}
Users user = new Users();
user.setId(0);
user.setName("無此條信息");
user.setSex("無此條信息");
return user;
}
/**
* 獲取Users表
* @param table
* @return ArrayList<Users>
*/
public ArrayList<Users> getUsers(){
ArrayList<Users> list = new ArrayList<Users>();
String sql = "select * from users";
conn=util.getConn();
try {
ps=conn.prepareStatement(sql);
//ps.setString(1, table);
rs=ps.executeQuery();
while(rs.next()){
Users user = new Users();
user.setId(rs.getInt(1));
user.setName(rs.getString(2));
user.setSex(rs.getString(3));
list.add(user);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
util.close(conn, ps, rs);
}
//若表中沒有信息
if(list.size()==0){
Users user = new Users();
user.setId(-1);
user.setName("表中無信息");
user.setSex("表中無信息");
list.add(user);
}
return list;
}
/**
*添加一條信息
* @param id
* @param name
* @param sex
* @return返回true添加成功false添加失敗
*/
public Boolean insert(int id , String name , String sex){
String sql = "insert into users values(?,?,?)";
conn = util.getConn();
try {
ps=conn.prepareStatement(sql);
ps.setInt(1, id);
ps.setString(2, name);
ps.setString(3, sex);
if(ps.executeUpdate()>0){
return true;
}else{
return false;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
util.close(conn, ps, rs);
}
return null;
}
/**
* 根據id刪除一條信息
* @param id
* @return
*/
public Boolean delete(int id){
String sql = "delete from users where id=?";
conn = util.getConn();
try {
ps = conn.prepareStatement(sql);
ps.setInt(1, id);
if(ps.executeUpdate()>0){
return true;
}else{
return false;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
util.close(conn, ps, rs);
}
return null;
}
/**
* 根據id更新數據
* @param id
* @param name
* @param sex
* @return
*/
public Boolean update(int id , String name , String sex){
String sql = "update users set name = ?,sex = ? where id = ?";
conn = util.getConn();
try {
ps=conn.prepareStatement(sql);
ps.setString(1, name);
ps.setString(2, sex);
ps.setInt(3, id);
if(ps.executeUpdate()>0){
return true;
}else{
return false;
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
util.close(conn, ps, rs);
}
return null;
}
}
5.整合代碼
1.jsp頁面代碼
<body>
<%
UserServers stu = new UserServers();
ArrayList<Users> list = new ArrayList<Users>();
list = stu.getUsers();
%>
<h1>數據庫增刪改查</h1>
<br>
添加信息:
<form action="servlet/insert">
id:<input type="number" name="id">
name:<input type="text" name = "name">
sex:<input type = "text" name = "sex">
<button>確認</button><br>
</form>
更新信息(根據id更新):
<form action="servlet/update">
id:<input type="number" name="id">
name:<input type="text" name = "name">
sex:<input type = "text" name = "sex">
<button>確認</button><br>
</form>
根據ID刪除信息:
<form action="servlet/delete">
<input type="number" name="delete"><button onclick="">確認</button><br>
</form>
<h1>信息顯示</h1>
<table>
<tr><th>ID</th><th>Name</th><th>Sex</th></tr>
<%for(Users user : list){
%>
<tr>
<td><%=user.getId() %></td>
<td><%=user.getName() %></td>
<td><%=user.getSex() %></td>
<%
} %>
</table>
</body>
由jsp代碼可以看出做不同的操作需要用不同的servlet做後臺處理輸入的信息
2.對添加信息做支持的Servlet
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import cn.msg.servers.UserServers;
public class insert extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");//防止亂碼
response.setContentType("text/html");
PrintWriter out = response.getWriter();
UserServers stu = new UserServers();//實例化剛剛編寫的查詢方法
//獲取傳值
int id = Integer.parseInt(request.getParameter("id"));
String name = new String(request.getParameter("name").getBytes("ISO-8859-1"),"utf-8");
String sex = new String(request.getParameter("sex").getBytes("ISO-8859-1"),"utf-8");
//調用插入信息的方法
stu.insert(id, name, sex);
//重定向到主頁面
response.sendRedirect("http://127.0.0.1:8080/Demo10.15/");
out.flush();
out.close();
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
3.對更新信息做支持的Servlet
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import cn.msg.servers.UserServers;
public class update extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("text/html");
PrintWriter out = response.getWriter();
UserServers stu = new UserServers();//實例化剛剛編寫的查詢方法類
//接收傳值
int id = Integer.parseInt(request.getParameter("id"));
String name = new String(request.getParameter("name").getBytes("ISO-8859-1"),"utf-8");
String sex = new String(request.getParameter("sex").getBytes("ISO-8859-1"),"utf-8");
//調用更新方法
stu.update(id, name, sex);
//重定向到主頁面
response.sendRedirect("http://127.0.0.1:8080/Demo10.15/");
out.flush();
out.close();
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}
4.對刪除信息做支持的Servlet
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import cn.msg.servers.UserServers;
public class delete extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html");
PrintWriter out = response.getWriter();
UserServers stu = new UserServers();
int id = Integer.parseInt(request.getParameter("delete"));
System.out.println(id);
stu.delete(id);
response.sendRedirect("http://127.0.0.1:8080/Demo10.15/");
out.flush();
out.close();
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doGet(request, response);
}
}