JavaWeb最全JDBC连接mysql实现增删改查功能代码示例

阅读: 评论:0

JavaWeb最全JDBC连接mysql实现增删改查功能代码示例

JavaWeb最全JDBC连接mysql实现增删改查功能代码示例

JavaWeb最全JDBC实现增删改查——重构(一)

JavaWeb最全JDBC实现(CRUD)增删改查——重构,之所以用重构其实就是对重复使用的代码抽取为相关工具类和方法实现复用,也是高内聚低耦合的思想,这也使得代码更好维护和增加可读性。
包与类关系图

目录结构图

需要jar包都在下面,
如果你的数据库版本是5的话就用mysql5的jar,如果是8.0的话就用对应版本jar


关注微信关注公众号"一颗剽悍的种子"回复:“编程资源”——会有百度云链接提供下载,几个m大小下载非常快哦φ(* ̄0 ̄)

记得要建一个resource包放数据库资源文件的配置db.properties

配置db.properties这里要注意啦

  1. 第一个driverClassName的sql.cj.jdbc.Driver里面有还有一个cj看到了吗,
    这个是连接8.0数据库的驱动的,如果是5.0的sql.jdbc.Driver直接这样就好了。
  2. url连接的是mysql数据库和mysql的端口一般是3306后面是连接你mysql的库
  3. username和password要用自己连接数据库库的名和密码。

代码示例:

pojo包里的User实体类

package pojo;
import java.util.Date;
public class User {private int id;private String username;private String password;private Date newdate;public int getId() {return id;}public void setId(int id) {this.id = id;}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;}public Date getNewdate() {return newdate;}public void setNewdate(Date newdate) {wdate = newdate;}@Overridepublic String toString() {return "User{" +"id=" + id +", username='" + username + ''' +", password='" + password + ''' +", newdate=" + newdate +'}';}
}

dao包里的UserDao接口

package dao;
import pojo.User;
import java.util.Date;
import java.util.List;
public interface UserDao {//添加用户int addUser (String username,String password,Date newdate);//根据id用户int deleteUser (int id);//根据id修改用户int updateUser (String username,String password,int id);//根据id查找用户User queryUser (int id);//查询所有用户List<User> queryAllUser();
}

dao包UserDaoImpl类继承UserDao接口

package dao.impl;
import dao.UserDao;
import pojo.User;
import util.CrudUtil;
import java.util.Date;
import java.util.List;public class UserDaoImpl implements UserDao{@Overridepublic int addUser(String username,String password,Date newdate) {String sql = "insert into user(username,password,newdate) value(?,?,?)";uteDML(sql,username,password,newdate);}@Overridepublic int deleteUser(int id) {String sql = "delete from user where id = ?";uteDML(sql,id);}@Overridepublic int updateUser(String username,String password,int id) {//update多个参数用逗号隔开而不是用andString sql = "update user set username = ? , password = ? where id = ?";uteDML(sql,username,password,id);}@Overridepublic User queryUser(int id) {String sql = "select * from user where = ?";List<User> list = uteDQL(sql,id);return list.size() != 1 ? null : (0);}@Overridepublic List<User> queryAllUser() {String sql = "select * from user";uteDQL(sql);}}

util包JdbcUtil类

package util;
import org.apachemons.dbcp.BasicDataSourceFactory;
import javax.sql.DataSource;
import java.io.FileInputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Properties;public class JdbcUtil {private static DataSource ds = null;static {try {//1.加载配置文件Properties p = new Properties();//这里我把properties文件放在resource里FileInputStream in = new FileInputStream("resource/db.properties");p.load(in);//这里我用的是DBCP,如果你想换成Druid的也可以,//换一下注释就好了//但是要注意导包//ds = ateDataSource(p);ds = ateDataSource(p);}catch(Exception e) {e.printStackTrace();}}public static Connection getConn() {try {//2.连接数据库Connection();}catch(Exception e) {e.printStackTrace();}return null;}//3.关闭资源public static void close(Connection conn,Statement st,ResultSet rs) {if(rs != null) {try {rs.close();}catch(SQLException e) {e.printStackTrace();}}if(st != null) {try {st.close();}catch(SQLException e) {e.printStackTrace();}}if(conn != null) {try {conn.close();} catch (SQLException e) {e.printStackTrace();}}}
}

util包CrudUtil类

package util;
import pojo.User;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;public class CrudUtil {private static Connection conn = Conn();private static PreparedStatement ps = null;public static int executeDML(String Params){try {//1.加载驱动//2.连接数据库//3.创建语句ps = conn.prepareStatement(sql);for(int i = 0;i<Params.length;i++) {ps.setObject(i+1,Params[i]);}// 4.执行语句uteUpdate();}catch (Exception e) {e.printStackTrace();}finally {//5.释放资源JdbcUtil.close(conn,ps,null);}return 1;}public static List<User> executeDQL(String Params){ResultSet rs = null;List list = new ArrayList<User>();try {// 1.加载驱动// 2.连接数据库ps = conn.prepareStatement(sql);for(int i = 0; i < Params.length;i++) {ps.setObject(i + 1, Params[i]);}// 4.执行语句rs = ps.executeQuery();()) {User user = new User();user.String("username"));user.String("password"));user.Date("newdate"));list.add(user);}}catch(Exception e) {e.printStackTrace();}finally {//5.释放资源JdbcUtil.close(conn, ps, rs);}return list;}
}

JDBC增删改查运行效果图:

我这里用的是@Test是junit4的单元测试(要用junt4的话直接敲入@Test导入包就好了,在eclipse还是在IDEA都一样),这里用junit只不过更好的对每一个模块进行测试而已,当然你也可以在main来运行看效果。
添加操作

删除操作

修改操作

根据id查找操作

查询所有用户操作
如果以上还有不懂的话,可以关注微信关注公众号"一颗剽悍的种子"里面加杨shu提问或探讨关于编程技术,一起学习,如果顺便帮到了你,那我也是会很开心的,哈哈哈…

本文发布于:2024-01-29 18:52:38,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170652556317540.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:最全   示例   代码   功能   JavaWeb
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23