您的位置:首页 > 数据库

通过jdbc向数据库中插入数据,并对密码进行加密

2016-04-17 19:15 337 查看
<pre name="code" class="java">

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;

import javax.naming.InitialContext;

public class Test {
private static Connection connection = null;
private static String url = "jdbc:mysql://localhost:3306/jdbc_317";
private static String user = "root";
private static String password = "123456";
private static PreparedStatement pStatement=null;
private static ResultSet result=null;

private static void insertData() {
// TODO Auto-generated method stub
Scanner scanner=new Scanner(System.in);
System.out.println("请输入姓名:");
String name=scanner.nextLine();
System.out.println("请输入密码:");
String password=MD5Util.MD5(scanner.nextLine());
scanner.close();
System.out.println("MD5加密后密码:"+password);
String sql="insert into user(username,password) values(?,?)";
try {
pStatement=connection.prepareStatement(sql);
pStatement.setString(1, name);
pStatement.setString(2, password);

int column = pStatement.executeUpdate();
System.out.println("数据库受影响行数:" + column);
System.out.println("------------");

} catch (SQLException e) {

e.printStackTrace();
}

}

//修改密码
private static void updateData() throws SQLException {

Scanner scanner=new Scanner(System.in);
System.out.println("请输入要修改密码账号姓名:");
String name=scanner.nextLine();
System.out.println("请输入旧密码:");
String oldPassword=MD5Util.MD5(scanner.nextLine());
System.out.println("MD5-->"+oldPassword);
System.out.println("请输入新密码:");
String newPassword=MD5Util.MD5(scanner.nextLine());
System.out.println("MD5-->"+newPassword);
scanner.close();

String sql=
"update user set password=? where username = ? and password = ?";
pStatement=connection.prepareStatement(sql);
pStatement.setString(1, newPassword);
pStatement.setString(2, name);
pStatement.setString(3, oldPassword);

int column = pStatement.executeUpdate();
System.out.println("数据库受影响行数:" + column);
System.out.println("------------");

}

private static void deleteData() throws SQLException {
Scanner scanner=new Scanner(System.in);
System.out.println("请输入要删除账号的姓名:");
String name=scanner.nextLine();
System.out.println("请输入要删除账号的密码:");
String password=MD5Util.MD5(scanner.nextLine());
System.out.println("MD5-->"+password);
scanner.close();

String sql="delete from user where username = ? and password = ?";
pStatement = connection.prepareStatement(sql);
pStatement.setString(1, name);
pStatement.setString(2, password);

int column = pStatement.executeUpdate();
if(column>0){
System.out.println("删除成功");
}else{
System.out.println("无此账号");
}

}

private static void selectData() throws SQLException {
String sql="select * from user";
pStatement=connection.prepareStatement(sql);
result= pStatement.executeQuery();
while (result.next()) {
int id=result.getInt(1);
String name=result.getString("username");
String password=result.getString(3);
System.out.println("id:"+id+"   name:"+name+"   password:"+password);
}

}

public static void main(String[] args) {

try {
connection =DriverManager.getConnection(url, user, password);
System.out.println("数据库连接成功");
//insertData();//插入数据
//updateData(); //修改密码
//deleteData();//删除账号
selectData();//查找所有
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
if(connection!=null){
try {
connection.close();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

}

}


import java.security.MessageDigest;public class MD5Util { public static String MD5(String inStr){ MessageDigest md5 = null; try{ md5 = MessageDigest.getInstance("MD5"); }catch (Exception e){ System.out.println(e.toString()); e.printStackTrace(); return "";
} char[] charArray = inStr.toCharArray(); byte[] byteArray = new byte[charArray.length]; for (int i = 0; i < charArray.length; i++) byteArray[i] = (byte) charArray[i]; byte[] md5Bytes = md5.digest(byteArray); StringBuffer stringBuffer = new StringBuffer();
for (int i = 0; i < md5Bytes.length; i++){ int val = ((int) md5Bytes[i]) & 0xff; if (val < 16) stringBuffer.append("0"); stringBuffer.append(Integer.toHexString(val)); } return stringBuffer.toString(); } }

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: