Java Servlet DAO实践(二)
Java Servlet DAO实践(二)
DAO连接类
package com.seller.servlets.dao;
import java.sql.*;
public class DataBaseConnection {
private final String DBDRIVER = "com.mysql.jdbc.Driver";
private final String DBURL = "jdbc:mysql://localhost:3306/javaweb";
private final String DBUSER = "root";
private final String DBPASSWORD = "toor";
private Connection conn = null;
public DataBaseConnection(){
try{
Class.forName(DBDRIVER);
this.conn = DriverManager.getConnection(DBURL, DBUSER, DBPASSWORD);
}
catch (Exception e){
System.out.println("驱动加载失败");
}
}
public Connection getConnection(){
return conn;
}
public void close(){
try{
conn.close();
}
catch (Exception e){
System.out.println("数据库连接关闭失败");
}
}
}
DAO VO类(对应表字段)
package com.seller.servlets.dao;
public class User {
private int userid;
private String username;
private String password;
public int getUserid(){
return userid;
}
public void setUserid(int userid){
this.userid = userid;
}
public String getUsername(){
return username;
}
public void setUsername(String username){
this.username = username;
}
public String getPassword(){
return password;
}
public void setPassword(String password){
this.password = password;
}
}
DAO 接口类 (CURD操作定义)
package com.seller.servlets.dao;
import java.util.*; public interface UserDAO {
public void insert(User user) throws Exception;
public void update(User user) throws Exception;
public void delete(int userid) throws Exception;
public User queryById(int userid) throws Exception;
public List queryAll() throws Exception;
}
DAO 接口实现类(CURD操作实现)
package com.seller.servlets.dao;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List; public class UserDAOImpl implements UserDAO { // 添加操作
public void insert(User user) throws Exception{
String sql = "INSERT INTO user(username, password) VALUES(?,?)";
PreparedStatement pstmt = null;
DataBaseConnection dbc = null; try{
dbc = new DataBaseConnection();
pstmt = dbc.getConnection().prepareStatement(sql);
pstmt.setString(1, user.getUsername());
pstmt.setString(2, user.getPassword());
pstmt.executeUpdate();
pstmt.close();
}catch (Exception e){
throw new Exception("操作出现异常");
}
finally{
dbc.close();
}
} // 修改操作
public void update(User user) throws Exception{
String sql = "UPDATE user SET username=?, password=? WHERE userid=?";
PreparedStatement pstmt = null;
DataBaseConnection dbc = null; try{
dbc = new DataBaseConnection();
pstmt = dbc.getConnection().prepareStatement(sql);
pstmt.setString(1, user.getUsername());
pstmt.setString(1, user.getPassword());
pstmt.setInt(3, user.getUserid());
pstmt.executeUpdate();
pstmt.close();
}
catch (Exception e){
throw new Exception("操作出现异常");
}
} // 删除操作
public void delete(int userid) throws Exception{
String sql = "DELETE FROM user WHERE userid=?";
PreparedStatement pstmt = null;
DataBaseConnection dbc = null;
try{
dbc = new DataBaseConnection();
pstmt = dbc.getConnection().prepareStatement(sql);
pstmt.setInt(1, userid);
pstmt.executeUpdate();
pstmt.close();
}catch (Exception e){
throw new Exception("操作出现异常");
}
finally{
dbc.close();
}
} // 按ID查询
public User queryById(int userid) throws Exception{
User user = null;
String sql = "SELECT * FROM user WHERE userid=?";
PreparedStatement pstmt = null;
DataBaseConnection dbc = null;
try{
dbc = new DataBaseConnection();
pstmt = dbc.getConnection().prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
if(rs.next()){
user = new User();
user.setUserid(rs.getInt(1));
user.setUsername(rs.getString(2));
user.setPassword(rs.getString(3));
}
rs.close();
pstmt.close();
}catch (Exception e){
throw new Exception("操作出现异常");
}
finally{
dbc.close();
}
return user; } public List<User> queryAll() throws Exception{
List<User> all = new ArrayList<User>();
String sql = "SELECT * FROM user";
PreparedStatement pstmt = null;
DataBaseConnection dbc = null; try{
dbc = new DataBaseConnection();
pstmt = dbc.getConnection().prepareStatement(sql);
ResultSet rs = pstmt.executeQuery();
while(rs.next()){
User user = new User();
user.setUserid(rs.getInt(1));
user.setUsername(rs.getString(2));
user.setPassword(rs.getString(3));
all.add(user);
}
rs.close();
}catch (Exception e){
throw new Exception("操作出现异常");
}
finally{
dbc.close();
}
return all;
} }
DAO工厂类(封装方便调用)
package com.seller.servlets.dao;
public class DAOFactory {
public static UserDAO getUserDAOInstance(){
return new UserDAOImpl();
}
}
Servlet 控制器调用DAO操作
package com.seller.servlets; import java.io.IOException;
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 com.seller.servlets.dao.*; @WebServlet("/addUser")
public class addUser extends HttpServlet {
private static final long serialVersionUID = 1L; public addUser() {
super();
} protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { UserDAO userDAO = DAOFactory.getUserDAOInstance();
User user = new User();
user.setUsername("hello");
user.setPassword("12356");
try {
userDAO.insert(user);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
} } }


Java Servlet DAO实践(二)的更多相关文章
- Java开发最佳实践(二) ——《Java开发手册》之"异常处理、MySQL 数据库"
二.异常日志 (一) 异常处理 (二) 日志规约 三.单元测试 四.安全规约 五.MySQL数据库 (一) 建表规约 (二) 索引规约 (三) SQL语句 (四) ORM映射 六.工程结构 七.设计规 ...
- Java秒杀简单设计二:数据库表和Dao层设计
Java秒杀简单设计二:数据库表Dao层设计 上一篇中搭建springboot项目环境和设计数据库表 https://www.cnblogs.com/taiguyiba/p/9791431.html ...
- 20155235 《Java程序设计》 实验二 实验三 敏捷开发与XP实践
20155235 <Java程序设计> 实验二 实验三 敏捷开发与XP实践 实验内容 XP基础 XP核心实践 相关工具 实验内容 没有Linux基础的同学建议先学习<Linux基础入 ...
- 最重要的 Java EE 最佳实践
參考:IBM WebSphere 开发人员技术期刊: 最重要的 Java EE 最佳实践 IBM WebSphere 开发人员技术期刊: 最重要的 Java EE 最佳实践 2004 年 IBM® W ...
- Java 理论与实践: 处理 InterruptedException
捕捉到它,然后怎么处理它? 很多 Java™ 语言方法,例如 Thread.sleep() 和 Object.wait(),都可以抛出InterruptedException.您不能忽略这个异常,因为 ...
- java servlet+mysql全过程(原创)
前段时间写过一篇 servlet+oracle的文章,但是那是因为公司有可能接那么一个项目,然后我当时也比较闲,所以随便学了下,那玩意是白去研究了,因为公司后面并没接到那项目. 这次学servlet用 ...
- java servlet+oracle 新手可看
最近公司领导告诉接下去接的一个产品,可能会涉及到oracle数据库,以前用得最多的是mssql,前些时间学了下mysql也算少许用过.oracle没接触过.应为我之前做过.net开发,所以数据访问接口 ...
- Servlet基础(二) Servlet的生命周期
Servlet基础(二) Servlet的生命周期 Servlet的生命周期可以分为三个阶段: 1.初始化阶段 2.响应客户请求阶段 3.终止阶段 Servlet的初始化阶段 在下列时刻Servlet ...
- Java Servlet系列之Servlet生命周期
Servlet生命周期定义了一个Servlet如何被加载.初始化,以及它怎样接收请求.响应请求,提供服务.在讨论Servlet生命周期之前,先让我们来看一下这几个方法: 1. init()方法 在Se ...
随机推荐
- Linux Centos7 Apache 訪问 You don't have permission to access / on this server.
折腾了非常久,今天才找到了最正确的答案.感言真不easy. 百度出来的99%都是採集的内容.全都是错误的. You don't have permission to access / on this ...
- Cookies 初识 Dotnetspider EF 6.x、EF Core实现dynamic动态查询和EF Core注入多个上下文实例池你知道有什么问题? EntityFramework Core 运行dotnet ef命令迁移背后本质是什么?(EF Core迁移原理)
Cookies 1.创建HttpCookies Cookie=new HttpCookies("CookieName");2.添加内容Cookie.Values.Add(&qu ...
- Woody的逻辑游戏--怎样换轮胎
题目:有一个做长途运输的司机要出发了,他用作运输的车是三轮车.轮胎的寿命是2万里,如今他要进行5万里的长途运输.计划用8个轮胎完毕运输任务,如何才干做到呢? 首先将轮胎从1-8依次编号,然后例如以下所 ...
- js 返回顶部
<script> window.onload = function(){ var oTop = document.getElementById("to_top"); v ...
- 通过uri呼起本地app
1.在Android本地app清单文件里配置 <activity android:name="com.mdj.ui.WelcomeActivity" android:scre ...
- HDU4403 A very hard Aoshu problem DFS
A very hard Aoshu problem Time Limit: 2000/1000 MS (Java/Others) Memory ...
- html5 canvas程序演示--P1197 [JSOI2008]星球大战
html5 canvas程序演示--P1197 [JSOI2008]星球大战 <!doctype html> <html> <head> <meta char ...
- 【HDU 1588】 Gauss Fibonacci
[题目链接] 点击打开链接 [算法] 要求 f(g(0)) + f(g(1)) + f(g(2)) + ... + f(g(n-1)) 因为g(i) = k * i + b 所以原式 = f(b) + ...
- dubbo作者讲编码原则
刚看到梁飞谈到dubbo为保证代码质量开发人员必须要注意的,其实也是开发人员应该做的. 1. 防止空指针和下标越界 这是我最不喜欢看到的异常,尤其在核心框架中,我更愿看到信息详细的参数不合法异常, 这 ...
- fck 属性配置大全
优化FCKeditor文件夹和文件: 下载FCKeditor并解压之后,会产生_samples和 editor两个文件夹和几个文件,全部删除以_开头的文件夹和文件,因为这些都是FCKeditor的一些 ...