JDBC连接数据库并实现增删查改

JDBC连接数据库并实现数据库操作

package com.thunisoft.yhan.daos;

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 BaseDao {

    protected Connection getConn() {
        String url = "jdbc:ArteryBase://localhost:5432/test?ApplicationName=user&Charset=utf8";
        String username = "sa";
        String password = "test";
        String driver = "com.thunisoft.ArteryBase.Driver";
        //以上部分根据情况自己写,mysql就写mysql的
        try {
            Class.forName(driver);
            Connection conn = DriverManager.getConnection(url, username, password);
            return conn;
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return null;
    }

    protected void closeAll(ResultSet rs, Connection conn, Statement s, PreparedStatement ps) {
        try {
            if (rs != null) {
                rs.close();
            }
            if (conn != null) {
                conn.close();
            }
            if (s != null) {
                s.close();
            }
            if (ps != null) {
                ps.close();
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    /**
     * 封装增删改操作,查操作要返回结果集,所以单独处理,见示例
     * @param sql
     * @param objects
     * @return
     */
    public boolean executeSql(String sql,Object ...objects){
        Connection conn=getConn();
        PreparedStatement ps=null;
        try {
            ps=conn.prepareStatement(sql);
            for(int i=0;i<objects.length;i++){
                ps.setString(i+1, objects[i].toString());
            }
            int result=ps.executeUpdate();
            return result!=0;
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            closeAll(null, conn, null, ps);
        }
        return true;
    }
}

使用方法

假设有一个user类:

package com.thunisoft.yhan.pojos;

public class User {
    private String id;
    private String name;
    private String password;
    private String provinceId;
    public User() {
        super();
        // TODO Auto-generated constructor stub
    }

    public User(String id, String name, String password, String provinceId) {
        super();
        this.id = id;
        this.name = name;
        this.password = password;
        this.provinceId = provinceId;
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }

    public String getProvinceId() {
        return provinceId;
    }

    public void setProvinceId(String provinceId) {
        this.provinceId = provinceId;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Override
    public String toString() {
        return "User [id=" + id + ", name=" + name + ", password=" + password + ", provinceId=" + provinceId + "]";
    }


}

对user的增删查改操作:

package com.thunisoft.yhan.daos;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import com.thunisoft.yhan.pojos.User;

public class UserDao extends BaseDao {

    public boolean add(User user){
        String sql="insert into schema.user(id,name,password,provinceid) values(?,?,?,?)";
        return executeSql(sql, user.getId(),user.getName(),user.getPassword(),user.getProvinceId());
    }

    public boolean update(User newUser){
        String sql="update schema.user set name=?,provinceid=?,password=? where id=?";
        return executeSql(sql, newUser.getName(),newUser.getProvinceId(),newUser.getPassword(),newUser.getId());
    }

    public boolean delete(User user){
        String sql="delete from schema.user where id=?";
        return executeSql(sql, user.getId());
    }

    public User getUserBySql(String sql,Object ...objects){
        Connection conn=getConn();
        PreparedStatement ps=null;
        ResultSet rs=null;
        try {
            ps=conn.prepareStatement(sql);
            for(int i=0;i<objects.length;i++){
                ps.setString(i+1, objects[i].toString());
            }
            rs=ps.executeQuery();
            while(rs.next()){
                User user=new User();
                user.setId(rs.getString("id"));
                user.setName(rs.getString("name"));
                user.setPassword(rs.getString("password"));
                user.setProvinceId(rs.getString("provinceid"));
                return user;
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            closeAll(rs, conn, null, ps);
        }
        return null;
    }

    public User getUserById(String id){
        String sql="select * from schema.user where id=?";
        return getUserBySql(sql, id);
    }

    public List<User> getUsers(){
        List<User> users=new ArrayList<>();
        Connection conn=getConn();
        PreparedStatement ps=null;
        ResultSet rs=null;
        String sql="select * from schema.user";
        try {
            ps=conn.prepareStatement(sql);
            rs=ps.executeQuery();
            while(rs.next()){
                User user=new User();
                user.setId(rs.getString("id"));
                user.setName(rs.getString("name"));
                //不获取密码
                user.setProvinceId(rs.getString("provinceid"));
                users.add(user);
            }
        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }finally{
            closeAll(rs, conn, null, ps);
        }
        return users;
    }

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        UserDao userDao=new UserDao();
        //User u=new User("1","郑","1111","1");
        //userDao.add(u);
        User user=userDao.getUserById("1");
        System.out.println(user);
    }

}
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以为您解答这个问题。 Java中使用JDBC(Java Database Connectivity)来连接数据库实现数据库增删查改操作。下面是一个简单的示例代码: 1. 建立连接 ```java String url = "jdbc:mysql://localhost:3306/test"; String username = "root"; String password = "123456"; Class.forName("com.mysql.jdbc.Driver"); Connection conn = DriverManager.getConnection(url, username, password); ``` 2. 插入数据 ```java Statement stmt = conn.createStatement(); String sql = "insert into student (name, age, sex) values ('Tom', 20, 'male')"; int result = stmt.executeUpdate(sql); if(result > 0){ System.out.println("插入成功!"); } ``` 3. 查询数据 ```java Statement stmt = conn.createStatement(); String sql = "select * from student"; ResultSet rs = stmt.executeQuery(sql); while(rs.next()){ int id = rs.getInt("id"); String name = rs.getString("name"); int age = rs.getInt("age"); String sex = rs.getString("sex"); System.out.println(id + " " + name + " " + age + " " + sex); } ``` 4. 修改数据 ```java Statement stmt = conn.createStatement(); String sql = "update student set age = 22 where id = 1"; int result = stmt.executeUpdate(sql); if(result > 0){ System.out.println("修改成功!"); } ``` 5. 删除数据 ```java Statement stmt = conn.createStatement(); String sql = "delete from student where id = 1"; int result = stmt.executeUpdate(sql); if(result > 0){ System.out.println("删除成功!"); } ``` 以上是一个简单的示例,您可以根据自己的需要进行修改和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值