卿公子 2021-12-05 15:04 采纳率: 60%
浏览 14
已结题

输出的数据库中文变成了其他编码

package user;

public class User {
    private String userName;
    private String password;
    private String phone;
    private String address;
    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 String getPhone() {
        return phone;
    }
    public void setPhone(String phone) {
        this.phone = phone;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }

}

import user.User;

import java.sql.*;
import java.util.ArrayList;
import java.util.List;

public class a {
    public static void PrintUsers(List<User> list) {
        for(User user : list) {
            System.out.println(user);
        }
    }
    public static boolean FindAllUser(Connection con, List<User> list) {

        if (con == null) {
            return false;
        }

        try {
            String sql = "select * from t_user";
            Statement stmt = con.createStatement();
            ResultSet rs = stmt.executeQuery(sql);
            while (rs.next()) {
                User user = new User();
                user.setUserName(rs.getString("userName"));
                user.setPhone(rs.getString("phone"));
                user.setPassword(rs.getString("password"));
                user.setAddress(rs.getString("address"));
                list.add(user);
            }
            rs.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return false;
    }
    public static void AddUser(Connection con,User user) {
        if(con==null) {
            return ;
        }

        try {
            String sql = "insert into t_user(userName,password,phone,address) values(?,?,?,?)";
            PreparedStatement pstmt = con.prepareStatement(sql);
            pstmt.setString(1, user.getUserName());
            pstmt.setString(2, user.getPassword());
            pstmt.setString(3, user.getPhone());
            pstmt.setString(4, user.getAddress());
            pstmt.executeUpdate();

        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }
    public static void DeleteUser(Connection con,String userName) {
        if(con==null) {
            return ;
        }

        try {
            String sql = "delete from t_user where userName=?";
            PreparedStatement pstmt = con.prepareStatement(sql);
            pstmt.setString(1, userName);
            pstmt.executeUpdate();

        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    public static void UpdateUser(Connection con,User user) {
        if(con==null) {
            return ;
        }

        try {
            String sql = "update t_user set password=?,phone=?,address=? where userName=?";
            PreparedStatement pstmt = con.prepareStatement(sql);
            pstmt.setString(1, user.getPassword());
            pstmt.setString(2, user.getPhone());
            pstmt.setString(3, user.getAddress());
            pstmt.setString(4, user.getUserName());

            pstmt.executeUpdate();

        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

    }





    public static void main(String[] args) {

        try {
            Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            System.out.println("数据库驱动成功");
        } catch (ClassNotFoundException e) {
            System.out.println("未找到驱动");
        }
        Connection con = null;
        try {
            String connectDB = "jdbc:sqlserver://127.0.0.1:1433;DatabaseName=test";
            String user = "sa";
            // 这里只要注意用户名密码不要写错即可
            String password = "123456";
            con = DriverManager.getConnection(connectDB, user, password);
            // 连接数据库对象
            System.out.println("连接数据库成功");
        } catch (Exception e) {
            System.out.println("连接数据库失败");
        }
        List<User> list = new ArrayList<User>();
        FindAllUser(con, list);
        PrintUsers(list);
        list.clear();

        User user = new User();
        user.setAddress("浙江丽水");
        user.setPassword("123456");
        user.setPhone("13023669854");
        user.setUserName("陈七");

        AddUser(con, user);
        FindAllUser(con, list);
        PrintUsers(list);
        list.clear();

        user.setAddress("修改");
        UpdateUser(con, user);
        FindAllUser(con, list);
        PrintUsers(list);
        list.clear();

        DeleteUser(con, "陈七");
        FindAllUser(con, list);
        PrintUsers(list);
        list.clear();

    }


}

img

`

  • 写回答

1条回答 默认 最新

  • 未聞花名丶 2021-12-05 15:24
    关注

    和编码没关系,这是对象地址,要查看对象内容重写User toString方法

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 12月13日
  • 已采纳回答 12月5日
  • 创建了问题 12月5日

悬赏问题

  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?