栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JavaWeb Dao层编写实现操作(增删改查)mysql数据库

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JavaWeb Dao层编写实现操作(增删改查)mysql数据库

           1.首先准备一个JavaBean对象

这里我以User为例:

package Bean;

public class User {
    private Integer Id;
    private String UserName;
    private String PassWord;
    private String Email;

    public User(Integer id, String userName, String passWord, String email) {
        Id = id;
        UserName = userName;
        PassWord = passWord;
        Email = email;
    }

    public User() {
    }

    @Override
    public String toString() {
        return "User{" +
                "Id=" + Id +
                ", UserName='" + UserName + ''' +
                ", PassWord=" + PassWord +
                ", Email='" + Email + ''' +
                '}';
    }

    public Integer getId() {
        return Id;
    }

    public void setId(Integer id) {
        Id = id;
    }

    public String getUserName() {
        return UserName;
    }

    public void setUserName(String userName) {
        UserName = userName;
    }

    public String getPassWord() {
        return PassWord;
    }

    public void setPassWord(String passWord) {
        PassWord = passWord;
    }

    public String getEmail() {
        return Email;
    }

    public void setEmail(String email) {
        Email = email;
    }
}

2.编写配置文件

准备配置jdbc.properties文件并编写

url中,3306端口后面那个跟的是要操作的库,我这里是操作的是book库下的users表,固定位到book库。

 

3.导入jar包

所需要jar包有:

4.编写JdbcUtils类(实现获取连接、关闭连接)
package Utils;

import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.pool.DruidDataSourceFactory;

import java.io.InputStream;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Properties;

public class JdbcUtils {

    private static DruidDataSource dataSource;
    static {

        try {
            Properties properties = new Properties();
            //读取配置文件
            InputStream stream = JdbcUtils.class.getClassLoader().getResourceAsStream("jdbc.properties");
            properties.load(stream);
            //创建连接池
             dataSource =(DruidDataSource ) DruidDataSourceFactory.createDataSource(properties);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    //获取连接
    public static Connection getConnection(){
        Connection connection =null;
        try {
             connection =  dataSource.getConnection();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return connection;
    }

    //关闭连接
    public static void close(Connection connection) {
        if (connection != null) {
            try {
                connection.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}
5.编写baseDao类实现通用基础操作
package Dao;

import Utils.JdbcUtils;
import org.apache.commons.dbutils.QueryRunner;
import org.apache.commons.dbutils.handlers.BeanHandler;
import org.apache.commons.dbutils.handlers.BeanListHandler;
import org.apache.commons.dbutils.handlers.ScalarHandler;

import java.sql.Connection;
import java.sql.SQLException;
import java.util.List;

public class baseDao {
    QueryRunner queryRunner = new QueryRunner();

    public int unpdate(String sql,Object...args){
        Connection connection = JdbcUtils.getConnection();
        try {
            return queryRunner.update(connection, sql, args);
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            JdbcUtils.close(connection);
        }
        return -1;
    }

    public  T queryForOne(Class type,String sql,Object...args) {
        Connection connection = JdbcUtils.getConnection();
        try {
            return  queryRunner.query(connection,sql,new BeanHandler(type),args);
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            JdbcUtils.close(connection);
        }
        return null;

    }

    public  List queryForList(Class type, String sql, Object...args) {
        Connection connection = JdbcUtils.getConnection();
        try {
            return  queryRunner.query(connection,sql,new BeanListHandler(type),args);
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            JdbcUtils.close(connection);
        }
        return null;

    }

    public Object queryForSingleList(String sql,Object...args){
        Connection connection = JdbcUtils.getConnection();
        try {
            return queryRunner.query(sql,new ScalarHandler(),args);
        } catch (SQLException e) {
            e.printStackTrace();
        }finally {
            JdbcUtils.close(connection);
        }
        return null;
    }
}
6.编写UserDao实现操作数据库中的Users表
package Dao;

import Bean.User;

import java.util.List;

public class UserDao extends baseDao {
    //增
    public int addUser(User user){
        String sql = "insert into users(`username`,`password`,`email`)values(?,?,?);";
        return update(sql,user.getUserName(),user.getPassWord(),user.getEmail());
    }

    //删
    public int deleteUser(Integer id){
        String sql = "delete from Users where id = ? ";
        return update(sql,id);
    }


    //改
    public int update(User user){
        String sql = "update Users set `UserName`=?,`PassWord`=?,`Email`=? where `id`= ?";
        return update(sql,user.getUserName(),user.getPassWord(),user.getEmail(),user.getId());
    }

    //查
    public User queryById(Integer id){
        String sql = "select `Id`,`UserName`,`Password`,`Email` from Users Where `id` = ?";
        return queryById(id);
    }

    //查多条

    public List queryUsers(){
        String sql = "select `Id`,`UserName`,`Password`,`Email` from Users";
        return queryForList(User.class,sql);
    }

}
 7.测试

以下增删改查我通过单元测试都没问题

package Test;

import Bean.User;
import Dao.UserDao;
import org.junit.Test;

import static org.junit.Assert.*;

public class UserDaoTest {
    private UserDao userDao = new UserDao();
    @Test
    public void addUser() {
        userDao.addUser(new User(null,"喜羊羊","123456","1234@qq.com"));
    }

    @Test
    public void deleteUser() {
        userDao.deleteUser(1);
    }

    @Test
    public void update() {
    }

    @Test
    public void queryById() {
    }

    @Test
    public void queryUsers() {
    }
8.总结

这里只是提供大致思路,具体实现还要看实际项目需求!!!!!!!

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/530529.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号